All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_jose.c:55,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:56,1
    - Dst: oidc_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:57,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:59,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:59,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - pool
    - s
    - jwk
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - oidc_jwk_t**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: _jose_test_jwk_parse
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_json_decref
    - oidc_jwk_parse
    - json_loads
    - ck_assert_msg
    - oidc_jose_e2s
    linkageType: ''
    returnType: void
    signature: void _jose_test_jwk_parse(apr_pool_t *pool, const char *s, oidc_jwk_t
      **jwk, oidc_jose_error_t *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_jws_supported_algorithms
      Src: /src/mod_auth_openidc/test/test_jose.c:67,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:67,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - oidc_test_pool_get
    - oidc_jose_jws_supported_algorithms
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_jose_jws_supported_algorithms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_jws_algorithm_is_supported
      Src: /src/mod_auth_openidc/test/test_jose.c:74,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:74,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:75,1
    - Dst: oidc_jose_jws_algorithm_is_supported
      Src: /src/mod_auth_openidc/test/test_jose.c:76,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:76,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:77,1
    - Dst: oidc_jose_jws_algorithm_is_supported
      Src: /src/mod_auth_openidc/test/test_jose.c:79,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:79,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_jws_algorithm_is_supported
    - ck_assert_msg
    - oidc_test_pool_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_jws_algorithm_is_supported)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_jwe_supported_algorithms
      Src: /src/mod_auth_openidc/test/test_jose.c:87,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:87,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_jwe_supported_algorithms
    - ck_assert_msg
    - oidc_test_pool_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_jwe_supported_algorithms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_jwe_algorithm_is_supported
      Src: /src/mod_auth_openidc/test/test_jose.c:94,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:94,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - oidc_test_pool_get
    - oidc_jose_jwe_algorithm_is_supported
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_jwe_algorithm_is_supported)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_jwe_supported_encryptions
      Src: /src/mod_auth_openidc/test/test_jose.c:101,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:101,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - oidc_jose_jwe_supported_encryptions
    - oidc_test_pool_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_jwe_supported_encryptions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_jwe_encryption_is_supported
      Src: /src/mod_auth_openidc/test/test_jose.c:108,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:108,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:109,1
    - Dst: oidc_jose_jwe_encryption_is_supported
      Src: /src/mod_auth_openidc/test/test_jose.c:111,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:111,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_jwe_encryption_is_supported
    - ck_assert_msg
    - oidc_test_pool_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_jwe_encryption_is_supported)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:118,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:123,1
    - Dst: oidc_jose_hash_string
      Src: /src/mod_auth_openidc/test/test_jose.c:123,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:125,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:126,1
    - Dst: oidc_jose_hash_length
      Src: /src/mod_auth_openidc/test/test_jose.c:126,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:129,1
    - Dst: oidc_jose_hash_and_base64url_encode
      Src: /src/mod_auth_openidc/test/test_jose.c:129,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:131,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_test_pool_get
    - oidc_jose_hash_length
    - oidc_jose_hash_and_base64url_encode
    - ck_assert_msg
    - ck_assert_str_eq
    - oidc_jose_hash_string
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_hash_and_base64_and_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:137,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/test/test_jose.c:138,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:139,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_jose.c:139,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:140,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_jose.c:140,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:141,1
    - Dst: json_real
      Src: /src/mod_auth_openidc/test/test_jose.c:141,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:145,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/test/test_jose.c:145,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:147,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_jose.c:147,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:150,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/test/test_jose.c:150,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:154,1
    - Dst: oidc_jose_get_timestamp
      Src: /src/mod_auth_openidc/test/test_jose.c:154,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:156,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:159,1
    - Dst: oidc_jose_get_timestamp
      Src: /src/mod_auth_openidc/test/test_jose.c:159,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 163
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_jose_get_string
    - oidc_json_decref
    - oidc_test_pool_get
    - oidc_json_object
    - json_real
    - ck_assert_msg
    - oidc_jose_get_timestamp
    - oidc_json_string
    - oidc_json_integer
    - _oidc_strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_get_string_and_timestamps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:168,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:175,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:176,1
    - Dst: oidc_jose_uncompress
      Src: /src/mod_auth_openidc/test/test_jose.c:176,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:178,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:179,1
    - Dst: memcmp
      Src: /src/mod_auth_openidc/test/test_jose.c:179,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_jose.c:182,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:186,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:189,1
    - Dst: oidc_jose_compress
      Src: /src/mod_auth_openidc/test/test_jose.c:189,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:192,1
    - Dst: oidc_jose_uncompress
      Src: /src/mod_auth_openidc/test/test_jose.c:192,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:193,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:194,1
    - Dst: memcmp
      Src: /src/mod_auth_openidc/test/test_jose.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 195
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_uncompress
    - _oidc_strlen
    - oidc_test_pool_get
    - oidc_jose_compress
    - ck_assert_msg
    - ck_assert_int_eq
    - memcmp
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_uncompress_detects_uncompressed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:200,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:205,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:209,1
    - Dst: oidc_jose_uncompress
      Src: /src/mod_auth_openidc/test/test_jose.c:209,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:210,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:211,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:212,1
    - Dst: memcmp
      Src: /src/mod_auth_openidc/test/test_jose.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 213
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_uncompress
    - _oidc_strlen
    - oidc_test_pool_get
    - ck_assert_msg
    - oidc_jose_e2s
    - ck_assert_int_eq
    - memcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_uncompress_zlib_lookalike_passes_through)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:217,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:219,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:223,1
    - Dst: oidc_jose_compress
      Src: /src/mod_auth_openidc/test/test_jose.c:223,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:224,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:228,1
    - Dst: oidc_jose_uncompress
      Src: /src/mod_auth_openidc/test/test_jose.c:228,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:229,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:230,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:231,1
    - Dst: memcmp
      Src: /src/mod_auth_openidc/test/test_jose.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 232
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_uncompress
    - _oidc_strlen
    - oidc_test_pool_get
    - oidc_jose_compress
    - ck_assert_msg
    - memcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_compress_uncompress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:239,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:246,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:247,1
    - Dst: oidc_jose_compress
      Src: /src/mod_auth_openidc/test/test_jose.c:247,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:248,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:252,1
    - Dst: oidc_jose_uncompress
      Src: /src/mod_auth_openidc/test/test_jose.c:252,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:253,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:254,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:255,1
    - Dst: memcmp
      Src: /src/mod_auth_openidc/test/test_jose.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 257
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_jose_uncompress
    - oidc_test_pool_get
    - oidc_jose_compress
    - ck_assert_msg
    - oidc_jose_e2s
    - ck_assert_int_eq
    - memcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_compress_uncompress_tiny)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:264,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_jose.c:270,1
    - Dst: memset
      Src: /src/mod_auth_openidc/test/test_jose.c:271,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:273,1
    - Dst: oidc_jose_compress
      Src: /src/mod_auth_openidc/test/test_jose.c:273,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:274,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:275,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:277,1
    - Dst: oidc_jose_uncompress
      Src: /src/mod_auth_openidc/test/test_jose.c:277,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:278,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:279,1
    - Dst: ck_assert_mem_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 281
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_uncompress
    - ck_assert_mem_eq
    - oidc_test_pool_get
    - oidc_jose_compress
    - ck_assert_msg
    - oidc_jose_e2s
    - ck_assert_int_eq
    - memset
    - apr_palloc
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_jose_uncompress_brotli_high_ratio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:290,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_jose.c:296,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:303,1
    - Dst: oidc_jose_compress
      Src: /src/mod_auth_openidc/test/test_jose.c:303,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:304,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:305,1
    - Dst: oidc_jose_uncompress
      Src: /src/mod_auth_openidc/test/test_jose.c:305,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:306,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:307,1
    - Dst: ck_assert_mem_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 309
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_uncompress
    - ck_assert_mem_eq
    - oidc_test_pool_get
    - oidc_jose_compress
    - ck_assert_msg
    - oidc_jose_e2s
    - ck_assert_int_eq
    - apr_palloc
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_jose_uncompress_grows_beyond_one_chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:313,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_jose.c:321,1
    - Dst: memset
      Src: /src/mod_auth_openidc/test/test_jose.c:322,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:324,1
    - Dst: oidc_jose_compress
      Src: /src/mod_auth_openidc/test/test_jose.c:324,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:325,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:326,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:328,1
    - Dst: oidc_jose_uncompress
      Src: /src/mod_auth_openidc/test/test_jose.c:328,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:330,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_jose.c:330,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 331
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_uncompress
    - oidc_test_pool_get
    - _oidc_strstr
    - oidc_jose_compress
    - ck_assert_msg
    - apr_pcalloc
    - oidc_jose_e2s
    - memset
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_uncompress_refuses_beyond_the_cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:336,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:339,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:343,1
    - Dst: oidc_jose_compress
      Src: /src/mod_auth_openidc/test/test_jose.c:343,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:344,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_jose.c:346,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:348,1
    - Dst: oidc_jose_uncompress
      Src: /src/mod_auth_openidc/test/test_jose.c:348,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:349,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:350,1
    - Dst: ck_assert_mem_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 352
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_jose_uncompress
    - ck_assert_mem_eq
    - ck_assert_int_gt
    - oidc_test_pool_get
    - oidc_jose_compress
    - ck_assert_msg
    - oidc_jose_e2s
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_uncompress_truncated_stream_passes_through)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:358,1
    - Dst: strrchr
      Src: /src/mod_auth_openidc/test/test_jose.c:362,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/test/test_jose.c:364,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:366,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:367,1
    - Dst: oidc_jwk_parse_pem_public_key
      Src: /src/mod_auth_openidc/test/test_jose.c:370,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:371,1
    - Dst: ck_abort_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:372,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:374,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:375,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:378,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test_jose.c:378,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:379,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:380,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_jose.c:382,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:383,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_jose.c:384,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:385,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:386,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/test/test_jose.c:391,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:392,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:393,1
    - Dst: oidc_jwk_copy
      Src: /src/mod_auth_openidc/test/test_jose.c:395,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:396,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:397,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:398,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/test_jose.c:400,1
    - Dst: oidc_jwk_list_copy
      Src: /src/mod_auth_openidc/test/test_jose.c:402,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:403,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:404,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:406,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:407,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_jose.c:408,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:409,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_jose.c:409,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:411,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 413
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - apr_hash_set
    - oidc_jwk_list_copy
    - oidc_jwk_parse_pem_public_key
    - oidc_test_pool_get
    - oidc_jwk_list_destroy
    - ck_abort_msg
    - oidc_jwk_to_json
    - ck_assert_msg
    - oidc_jwk_copy
    - oidc_jwk_destroy
    - strrchr
    - ck_assert_ptr_nonnull
    - oidc_json_decref
    - oidc_jwk_list_destroy_hash
    - oidc_jose_e2s
    - apr_pstrdup
    - apr_pstrndup
    - apr_hash_make
    - oidc_json_object_get
    - ck_assert_int_eq
    - json_loads
    - apr_hash_count
    - apr_psprintf
    - apr_array_make
    - oidc_jwk_create_symmetric_key
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_jwk_and_json_and_copy_lists)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:417,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:421,1
    - Dst: oidc_jwe_decrypt
      Src: /src/mod_auth_openidc/test/test_jose.c:421,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:423,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:424,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:424,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:425,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_jose.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 426
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_pool_get
    - oidc_jwe_decrypt
    - _oidc_strcmp
    - ck_assert_msg
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_jwe_decrypt_plaintext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:435,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/test/test_jose.c:440,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:441,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_jose.c:443,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:445,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_jose.c:446,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:447,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_jose.c:448,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:449,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:451,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_jose.c:451,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:452,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_jose.c:453,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:454,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:455,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:457,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:458,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:462,1
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:462,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:466,1
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:466,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:467,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:468,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:469,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_jose.c:469,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_jose.c:469,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:471,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 474
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_hash_set
    - oidc_test_pool_get
    - oidc_jose_jwt_serialize
    - oidc_json_string_value
    - ck_assert_msg
    - ck_assert_str_eq
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - ck_assert_ptr_nonnull
    - oidc_jose_e2s
    - oidc_json_string
    - oidc_jwt_parse
    - apr_pstrdup
    - apr_hash_make
    - oidc_json_object_get
    - oidc_jwt_destroy
    - ck_assert_int_eq
    - oidc_jwk_create_symmetric_key
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwt_sign_parse_compressed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:482,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:501,1
    - Dst: oidc_json_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:501,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_jose.c:503,1
    - Dst: oidc_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:503,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 506
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_json_decref
    - oidc_jwk_parse
    - oidc_test_pool_get
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_json_parse
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_parse_x5c_malformed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/test_jose.c:521,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:521,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_jose.c:524,1
    - Dst: apr_snprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:526,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_jose.c:527,1
    - Dst: apr_snprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:529,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:531,1
    - Dst: oidc_json_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:531,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_jose.c:532,1
    - Dst: oidc_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:532,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:533,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 536
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - _oidc_memset
    - apr_snprintf
    - apr_pool_create
    - oidc_json_decref
    - oidc_jwk_parse
    - oidc_test_pool_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - apr_pool_destroy
    - apr_palloc
    - oidc_json_parse
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_parse_x5c_oversized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:540,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_jose.c:542,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:544,1
    - Dst: oidc_jwt_hdr_set_json
      Src: /src/mod_auth_openidc/test/test_jose.c:544,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 547
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_jwt_hdr_set_json
    - oidc_test_pool_get
    - oidc_jwt_destroy
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwt_hdr_set_json_malformed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:551,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:556,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:558,1
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:558,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 561
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_pool_get
    - oidc_jwt_destroy
    - oidc_jwt_parse
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwt_parse_payload_not_object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:565,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/test/test_jose.c:570,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:571,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_jose.c:573,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:574,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_jose.c:574,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:575,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:578,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:579,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_jose.c:579,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:581,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:582,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:584,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:584,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:586,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 588
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_pstrdup
    - apr_hash_set
    - oidc_jwt_verify
    - apr_hash_make
    - ck_assert_int_eq
    - oidc_test_pool_get
    - oidc_jwt_destroy
    - oidc_jwk_create_symmetric_key
    - ck_assert_msg
    - oidc_json_string
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwt_verify_kid_not_found)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:592,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/test/test_jose.c:597,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:598,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_jose.c:600,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:601,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_jose.c:601,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:602,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:603,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:604,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_jose.c:604,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_jose.c:607,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:610,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:611,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:613,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:613,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:615,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 617
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_pstrdup
    - apr_hash_set
    - oidc_jwt_verify
    - apr_hash_make
    - ck_assert_int_eq
    - oidc_test_pool_get
    - oidc_jwt_destroy
    - oidc_jwk_create_symmetric_key
    - ck_assert_msg
    - apr_pcalloc
    - oidc_json_string
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwt_verify_kty_mismatch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:621,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/test/test_jose.c:626,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:627,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_jose.c:629,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:630,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_jose.c:630,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:631,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:633,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_jose.c:633,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:634,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:636,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:637,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:638,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:638,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:640,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:641,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_jose.c:643,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:644,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_jose.c:644,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:645,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_jose.c:646,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:647,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:648,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/test_jose.c:650,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:651,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/test/test_jose.c:653,1
    - Dst: cjose_base64url_decode
      Src: /src/mod_auth_openidc/test/test_jose.c:657,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:657,1
    - Dst: ck_abort_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:658,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/test_jose.c:660,1
    - Dst: cjose_get_dealloc
      Src: /src/mod_auth_openidc/test/test_jose.c:661,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_jose.c:663,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:664,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_jose.c:665,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:666,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:667,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/test/test_jose.c:667,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_jose.c:667,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_jose.c:667,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:669,1
    - Dst: strrchr
      Src: /src/mod_auth_openidc/test/test_jose.c:673,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/test/test_jose.c:675,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:677,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:678,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:679,1
    - Dst: oidc_jwk_parse_pem_public_key
      Src: /src/mod_auth_openidc/test/test_jose.c:682,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:683,1
    - Dst: ck_abort_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:684,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:686,1
    - Dst: oidc_jwk_parse_pem_private_key
      Src: /src/mod_auth_openidc/test/test_jose.c:688,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:689,1
    - Dst: ck_abort_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:690,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:692,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_jose.c:694,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:695,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:696,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:697,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:701,1
    - Dst: oidc_jwt_encrypt
      Src: /src/mod_auth_openidc/test/test_jose.c:701,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:701,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:703,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:704,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:705,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:707,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:708,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:711,1
    - Dst: oidc_jwe_decrypt
      Src: /src/mod_auth_openidc/test/test_jose.c:711,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:713,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:713,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:714,1
    - Dst: memcmp
      Src: /src/mod_auth_openidc/test/test_jose.c:714,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_jose.c:716,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 717
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_hash_set
    - cjose_base64url_decode
    - oidc_jwk_parse_pem_public_key
    - oidc_test_pool_get
    - oidc_jose_jwt_serialize
    - oidc_json_string_value
    - strchr
    - ck_abort_msg
    - oidc_jwk_parse_pem_private_key
    - ck_assert_msg
    - apr_pstrmemdup
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - strrchr
    - ck_assert_ptr_nonnull
    - _oidc_strlen
    - oidc_json_decref
    - oidc_jwk_list_destroy_hash
    - _oidc_strcmp
    - oidc_jose_e2s
    - oidc_json_string
    - cjose_get_dealloc
    - apr_pstrdup
    - apr_pstrndup
    - oidc_jwt_encrypt
    - oidc_jwt_verify
    - apr_hash_make
    - oidc_json_object_get
    - json_loads
    - oidc_jwt_destroy
    - oidc_json_is_string
    - oidc_jwe_decrypt
    - apr_psprintf
    - memcmp
    - oidc_jwk_create_symmetric_key
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwt_sign_verify_and_encrypt_decrypt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/mod_auth_openidc/test/test_jose.c:726,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/test/test_jose.c:728,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:730,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:731,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:732,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:735,1
    - Dst: oidc_jwk_parse_pem_public_key
      Src: /src/mod_auth_openidc/test/test_jose.c:735,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:738,1
    - Dst: oidc_jwk_parse_pem_private_key
      Src: /src/mod_auth_openidc/test/test_jose.c:738,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_jose.c:741,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:742,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:743,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:744,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:748,1
    - Dst: oidc_jwt_encrypt
      Src: /src/mod_auth_openidc/test/test_jose.c:748,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:748,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:750,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - pool
    - out_pub
    - out_priv
    argTypes:
    - apr_pool_t*
    - oidc_jwk_t**
    - oidc_jwk_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 756
    functionName: _jose_test_build_jwe
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - apr_pstrndup
    - oidc_jwk_parse_pem_private_key
    - oidc_jwt_new
    - oidc_jwt_encrypt
    - _oidc_strlen
    - oidc_jwk_parse_pem_public_key
    - oidc_jwt_destroy
    - ck_assert_msg
    - apr_psprintf
    - oidc_jwk_destroy
    - strrchr
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *_jose_test_build_jwe(apr_pool_t *pool, oidc_jwk_t **out_pub,
      oidc_jwk_t **out_priv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:759,1
    - Dst: _jose_test_build_jwe
      Src: /src/mod_auth_openidc/test/test_jose.c:762,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:764,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:765,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:768,1
    - Dst: oidc_jwe_decrypt
      Src: /src/mod_auth_openidc/test/test_jose.c:768,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_jose.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 771
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - apr_hash_set
    - _jose_test_build_jwe
    - apr_hash_make
    - oidc_jwk_list_destroy_hash
    - oidc_test_pool_get
    - oidc_jwe_decrypt
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_jwe_decrypt_kid_not_found)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:775,1
    - Dst: _jose_test_build_jwe
      Src: /src/mod_auth_openidc/test/test_jose.c:778,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_jose.c:781,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:783,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:784,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:787,1
    - Dst: oidc_jwe_decrypt
      Src: /src/mod_auth_openidc/test/test_jose.c:787,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 790
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - apr_hash_set
    - _jose_test_build_jwe
    - apr_hash_make
    - oidc_test_pool_get
    - oidc_jwe_decrypt
    - apr_pcalloc
    - ck_assert_int_eq
    - oidc_jwk_destroy
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwe_decrypt_kty_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:794,1
    - Dst: _jose_test_build_jwe
      Src: /src/mod_auth_openidc/test/test_jose.c:797,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:799,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:800,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:801,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:804,1
    - Dst: oidc_jwe_decrypt
      Src: /src/mod_auth_openidc/test/test_jose.c:804,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_jose.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 807
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - apr_hash_set
    - _jose_test_build_jwe
    - apr_hash_make
    - oidc_jwk_list_destroy_hash
    - oidc_test_pool_get
    - oidc_jwe_decrypt
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwe_decrypt_use_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:811,1
    - Dst: _jose_test_build_jwe
      Src: /src/mod_auth_openidc/test/test_jose.c:814,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:818,1
    - Dst: oidc_jwe_decrypt
      Src: /src/mod_auth_openidc/test/test_jose.c:818,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:820,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:823,1
    - Dst: oidc_jwe_decrypt
      Src: /src/mod_auth_openidc/test/test_jose.c:823,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 826
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - _jose_test_build_jwe
    - apr_hash_make
    - oidc_test_pool_get
    - oidc_jwe_decrypt
    - ck_assert_int_eq
    - oidc_jwk_destroy
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwe_decrypt_no_keys_configured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:830,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:835,1
    - Dst: oidc_jose_hash_bytes
      Src: /src/mod_auth_openidc/test/test_jose.c:835,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:838,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:839,1
    - Dst: oidc_jose_hash_length
      Src: /src/mod_auth_openidc/test/test_jose.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 840
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_hash_length
    - ck_assert_msg
    - oidc_test_pool_get
    - oidc_jose_hash_bytes
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_hash_bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:844,1
    - Dst: strrchr
      Src: /src/mod_auth_openidc/test/test_jose.c:848,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/test/test_jose.c:850,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:852,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:853,1
    - Dst: oidc_jwk_parse_pem_public_key
      Src: /src/mod_auth_openidc/test/test_jose.c:856,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:857,1
    - Dst: ck_abort_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:858,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:860,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:863,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test_jose.c:863,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:864,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_jose.c:866,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:867,1
    - Dst: oidc_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:869,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:870,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:871,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:872,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:874,1
    - Dst: oidc_is_jwk
      Src: /src/mod_auth_openidc/test/test_jose.c:874,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/test/test_jose.c:876,1
    - Dst: oidc_json_array
      Src: /src/mod_auth_openidc/test/test_jose.c:877,1
    - Dst: oidc_json_array_append_new
      Src: /src/mod_auth_openidc/test/test_jose.c:878,1
    - Dst: oidc_json_deep_copy
      Src: /src/mod_auth_openidc/test/test_jose.c:878,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:879,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:881,1
    - Dst: oidc_jwks_parse_json
      Src: /src/mod_auth_openidc/test/test_jose.c:881,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:882,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:883,1
    - Dst: oidc_is_jwks
      Src: /src/mod_auth_openidc/test/test_jose.c:883,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:885,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:886,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 888
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_jwk_parse_pem_public_key
    - oidc_json_deep_copy
    - oidc_test_pool_get
    - oidc_jwk_list_destroy
    - oidc_jwks_parse_json
    - oidc_is_jwks
    - ck_abort_msg
    - oidc_jwk_to_json
    - ck_assert_msg
    - oidc_is_jwk
    - oidc_jwk_destroy
    - strrchr
    - ck_assert_ptr_nonnull
    - oidc_json_decref
    - oidc_jwk_parse
    - oidc_json_array
    - oidc_json_object
    - oidc_jose_e2s
    - apr_pstrdup
    - apr_pstrndup
    - json_loads
    - apr_psprintf
    - oidc_json_array_append_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_json_parse_and_jwks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:892,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_jose.c:914,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:915,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:916,1
    - Dst: oidc_is_jwk
      Src: /src/mod_auth_openidc/test/test_jose.c:916,1
    - Dst: oidc_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:918,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:919,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:919,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:920,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:921,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:923,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 925
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_json_decref
    - oidc_jwk_parse
    - json_loads
    - oidc_test_pool_get
    - oidc_is_jwk
    - ck_assert_msg
    - oidc_jose_e2s
    - ck_assert_int_eq
    - oidc_jwk_destroy
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_json_x5c_parse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:929,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_jose.c:939,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_jose.c:939,1
    - Dst: snprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:940,1
    - Dst: snprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:941,1
    - Dst: snprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:942,1
    - Dst: BIO_new
      Src: /src/mod_auth_openidc/test/test_jose.c:944,1
    - Dst: BIO_s_file
      Src: /src/mod_auth_openidc/test/test_jose.c:944,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:945,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:946,1
    - Dst: BIO_read_filename
      Src: /src/mod_auth_openidc/test/test_jose.c:946,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:947,1
    - Dst: oidc_jwk_pem_bio_to_jwk
      Src: /src/mod_auth_openidc/test/test_jose.c:947,1
    - Dst: BIO_free
      Src: /src/mod_auth_openidc/test/test_jose.c:948,1
    - Dst: BIO_new
      Src: /src/mod_auth_openidc/test/test_jose.c:950,1
    - Dst: BIO_s_file
      Src: /src/mod_auth_openidc/test/test_jose.c:950,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:951,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:952,1
    - Dst: BIO_read_filename
      Src: /src/mod_auth_openidc/test/test_jose.c:952,1
    - Dst: oidc_jwk_pem_bio_to_jwk
      Src: /src/mod_auth_openidc/test/test_jose.c:953,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:954,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:954,1
    - Dst: BIO_free
      Src: /src/mod_auth_openidc/test/test_jose.c:955,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:957,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test_jose.c:957,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:958,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:965,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:967,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test_jose.c:967,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:968,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:988,1
    - Dst: BIO_new
      Src: /src/mod_auth_openidc/test/test_jose.c:990,1
    - Dst: BIO_s_file
      Src: /src/mod_auth_openidc/test/test_jose.c:990,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:991,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:992,1
    - Dst: BIO_read_filename
      Src: /src/mod_auth_openidc/test/test_jose.c:992,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:993,1
    - Dst: oidc_jwk_pem_bio_to_jwk
      Src: /src/mod_auth_openidc/test/test_jose.c:993,1
    - Dst: BIO_free
      Src: /src/mod_auth_openidc/test/test_jose.c:994,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:996,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test_jose.c:996,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:997,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 1013
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_to_json
    - BIO_new
    - oidc_jwk_pem_bio_to_jwk
    - ck_assert_str_eq
    - oidc_test_pool_get
    - BIO_s_file
    - BIO_read_filename
    - ck_assert_msg
    - BIO_free
    - ck_assert_int_eq
    - snprintf
    - oidc_jose_e2s
    - oidc_jwk_destroy
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_public_key_parse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1017,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_jose.c:1027,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_jose.c:1027,1
    - Dst: snprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:1028,1
    - Dst: snprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:1029,1
    - Dst: BIO_new
      Src: /src/mod_auth_openidc/test/test_jose.c:1031,1
    - Dst: BIO_s_file
      Src: /src/mod_auth_openidc/test/test_jose.c:1031,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1032,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1033,1
    - Dst: BIO_read_filename
      Src: /src/mod_auth_openidc/test/test_jose.c:1033,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1034,1
    - Dst: oidc_jwk_pem_bio_to_jwk
      Src: /src/mod_auth_openidc/test/test_jose.c:1034,1
    - Dst: BIO_free
      Src: /src/mod_auth_openidc/test/test_jose.c:1035,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1037,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test_jose.c:1037,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1038,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1049,1
    - Dst: BIO_new
      Src: /src/mod_auth_openidc/test/test_jose.c:1051,1
    - Dst: BIO_s_file
      Src: /src/mod_auth_openidc/test/test_jose.c:1051,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1052,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1053,1
    - Dst: BIO_read_filename
      Src: /src/mod_auth_openidc/test/test_jose.c:1053,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1054,1
    - Dst: oidc_jwk_pem_bio_to_jwk
      Src: /src/mod_auth_openidc/test/test_jose.c:1054,1
    - Dst: BIO_free
      Src: /src/mod_auth_openidc/test/test_jose.c:1055,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1057,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test_jose.c:1057,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1058,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1064
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_to_json
    - BIO_new
    - oidc_jwk_pem_bio_to_jwk
    - ck_assert_str_eq
    - oidc_test_pool_get
    - BIO_s_file
    - BIO_read_filename
    - BIO_free
    - ck_assert_int_eq
    - snprintf
    - oidc_jwk_destroy
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_private_key_parse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1068,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/test_jose.c:1069,1
    - Dst: snprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:1074,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/test/test_jose.c:1075,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1078,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1080
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - ck_assert_int_eq
    - oidc_test_pool_get
    - oidc_jwk_list_destroy
    - apr_array_make
    - snprintf
    - oidc_jwk_create_symmetric_key
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_list_destroy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1084,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:1086,1
    - Dst: oidc_alg2keysize
      Src: /src/mod_auth_openidc/test/test_jose.c:1086,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:1087,1
    - Dst: oidc_alg2keysize
      Src: /src/mod_auth_openidc/test/test_jose.c:1087,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:1088,1
    - Dst: oidc_alg2keysize
      Src: /src/mod_auth_openidc/test/test_jose.c:1088,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/test/test_jose.c:1093,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1094,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_jose.c:1096,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:1097,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_jose.c:1097,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:1098,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:1099,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_jose.c:1099,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_jose.c:1100,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1101,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1103,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:1105,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:1106,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1108,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1109,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1111,1
    - Dst: oidc_jwt_hdr_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1113,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1114,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:1115,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_jose.c:1115,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1117
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_alg2keysize
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_pstrdup
    - apr_hash_set
    - apr_hash_make
    - oidc_jwt_hdr_get
    - oidc_test_pool_get
    - oidc_jose_jwt_serialize
    - oidc_jwk_create_symmetric_key
    - oidc_jwt_destroy
    - ck_assert_jwt_parses
    - _oidc_strcmp
    - ck_assert_msg
    - oidc_json_string
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_alg2keysize_and_hdr_get_and_jwt_parse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1127,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:1132,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1137,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1138,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_jose.c:1139,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_jose.c:1140,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1141,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1142,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:1144,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1146,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:1150,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_jose.c:1151,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:1151,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_jose.c:1151,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1152,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1153,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1158,1
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1158,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1159,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1163,1
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1163,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1118
    functionDepth: 2
    functionLinenumber: 1118
    functionLinenumberEnd: 1165
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - apr_hash_set
    - oidc_jwt_verify
    - ck_assert_int_eq
    - apr_hash_make
    - oidc_test_pool_get
    - oidc_jwt_destroy
    - _jose_test_jwk_parse
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_jose_e2s
    - ck_assert_jwt_parses
    - ck_assert_str_eq
    - oidc_jwt_parse
    - oidc_jwk_destroy
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_legacy_jwt_parse_hs256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1169,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:1174,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1179,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1180,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1181,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1182,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1185
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_pool_get
    - oidc_jwt_destroy
    - ck_assert_jwt_parses
    - ck_assert_int_eq
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_legacy_plaintext_jwt_parse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1189,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1196,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1199,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/test/test_jose.c:1199,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1200,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1203,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/test/test_jose.c:1203,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1204,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1208,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/test/test_jose.c:1208,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_jose.c:1209,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1212
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_get_string
    - oidc_test_pool_get
    - oidc_jwt_destroy
    - ck_assert_jwt_parses
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_legacy_jwt_get_string_claims)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1216,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1221,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1226,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1229,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1230,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1233,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1239,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1242,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1248,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1251,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1258,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1261,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1270,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1273,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1282,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1283,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_jose.c:1283,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1213
    functionDepth: 2
    functionLinenumber: 1213
    functionLinenumberEnd: 1285
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - APR_ARRAY_IDX
    - ck_assert_str_eq
    - oidc_test_pool_get
    - _jose_test_jwk_parse
    - oidc_jwk_destroy
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_legacy_jwk_parse_collection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1289,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1293,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1302,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1303,1
    - Dst: oidc_jwk_copy
      Src: /src/mod_auth_openidc/test/test_jose.c:1305,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1306,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1307,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1308,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1310,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1286
    functionDepth: 2
    functionLinenumber: 1286
    functionLinenumberEnd: 1312
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    - oidc_test_pool_get
    - oidc_jwk_copy
    - _jose_test_jwk_parse
    - oidc_jwk_destroy
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_legacy_jwk_copy_preserves_x5t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1316,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1321,1
    - Dst: cjose_jwe_import
      Src: /src/mod_auth_openidc/test/test_jose.c:1329,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:1329,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1330,1
    - Dst: cjose_jwe_decrypt
      Src: /src/mod_auth_openidc/test/test_jose.c:1333,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1334,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1335,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/test/test_jose.c:1335,1
    - Dst: cjose_get_dealloc
      Src: /src/mod_auth_openidc/test/test_jose.c:1337,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1338,1
    - Dst: cjose_jwe_release
      Src: /src/mod_auth_openidc/test/test_jose.c:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1313
    functionDepth: 2
    functionLinenumber: 1313
    functionLinenumberEnd: 1340
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - _oidc_strncmp
    - _oidc_strlen
    - oidc_test_pool_get
    - cjose_jwe_release
    - ck_assert_int_eq
    - _jose_test_jwk_parse
    - cjose_get_dealloc
    - oidc_jwk_destroy
    - cjose_jwe_import
    - cjose_jwe_decrypt
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_legacy_jwe_decrypt_symmetric_aes_kw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1345,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:1349,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1384,1
    - Dst: cjose_jwe_import
      Src: /src/mod_auth_openidc/test/test_jose.c:1387,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:1387,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1388,1
    - Dst: cjose_jwe_decrypt
      Src: /src/mod_auth_openidc/test/test_jose.c:1391,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1392,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1393,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/test/test_jose.c:1393,1
    - Dst: cjose_get_dealloc
      Src: /src/mod_auth_openidc/test/test_jose.c:1397,1
    - Dst: cjose_jwe_release
      Src: /src/mod_auth_openidc/test/test_jose.c:1398,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1344
    functionDepth: 2
    functionLinenumber: 1344
    functionLinenumberEnd: 1400
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - _oidc_strncmp
    - _oidc_strlen
    - apr_pstrdup
    - ck_assert_ptr_nonnull
    - oidc_test_pool_get
    - cjose_jwe_release
    - ck_assert_int_eq
    - _jose_test_jwk_parse
    - cjose_get_dealloc
    - oidc_jwk_destroy
    - cjose_jwe_decrypt
    - cjose_jwe_import
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_jose_legacy_jwt_decrypt_rsa_oaep_gcm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1406,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:1412,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1417,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1420,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:1425,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:1426,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1427,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:1427,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1428,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:1432,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1438,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1439,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:1439,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1440,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:1444,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1450,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1451,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:1451,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1452,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1405
    functionDepth: 2
    functionLinenumber: 1405
    functionLinenumberEnd: 1455
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - apr_hash_set
    - oidc_jwt_verify
    - apr_hash_make
    - ck_assert_int_eq
    - oidc_test_pool_get
    - oidc_jwt_destroy
    - ck_assert_jwt_parses
    - _jose_test_jwk_parse
    - oidc_jwk_destroy
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_jose_legacy_jwt_verify_ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1460,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1475,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:1483,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1485,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:1486,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1487,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:1487,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1488,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1502,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1503,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:1503,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1504,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1518,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1519,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:1519,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1520,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1456
    functionDepth: 2
    functionLinenumber: 1456
    functionLinenumberEnd: 1523
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - apr_hash_set
    - oidc_jwt_verify
    - apr_hash_make
    - ck_assert_int_eq
    - oidc_test_pool_get
    - oidc_jwt_destroy
    - ck_assert_jwt_parses
    - _jose_test_jwk_parse
    - oidc_jwk_destroy
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_legacy_jwt_verify_rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1527,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_jose.c:1543,1
    - Dst: _jose_test_jwk_parse
      Src: /src/mod_auth_openidc/test/test_jose.c:1544,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:1545,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_jose.c:1547,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:1548,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_jose.c:1548,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:1549,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_jose.c:1549,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:1550,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_jose.c:1550,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:1551,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_jose.c:1551,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_jose.c:1551,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_jose.c:1551,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_jose.c:1552,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_jose.c:1552,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_jose.c:1552,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_jose.c:1552,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:1553,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1555,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_jose.c:1555,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_jose.c:1556,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1557,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1560,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1561,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:1561,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1562,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1564,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/test/test_jose.c:1568,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:1569,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1570,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_jose.c:1571,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_jose.c:1572,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1574,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_jose.c:1574,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_jose.c:1575,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1576,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_jose.c:1579,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1580,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_jose.c:1580,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1581,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1583,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1524
    functionDepth: 2
    functionLinenumber: 1524
    functionLinenumberEnd: 1585
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - apr_hash_set
    - oidc_json_object_set_new
    - apr_time_sec
    - apr_time_now
    - oidc_test_pool_get
    - oidc_jose_jwt_serialize
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - ck_assert_ptr_nonnull
    - _oidc_strlen
    - ck_assert_jwt_parses
    - oidc_json_string
    - apr_pstrdup
    - oidc_jwt_verify
    - apr_hash_make
    - oidc_jwt_destroy
    - _jose_test_jwk_parse
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_jwk_create_symmetric_key
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_legacy_jwt_sign_verify_rsa_and_hmac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_version
      Src: /src/mod_auth_openidc/test/test_jose.c:1590,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1591,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_jose.c:1592,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_jose.c:1592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1586
    functionDepth: 1
    functionLinenumber: 1586
    functionLinenumberEnd: 1593
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - ck_assert_int_gt
    - _oidc_strlen
    - oidc_jose_version
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_boolean
      Src: /src/mod_auth_openidc/test/test_jose.c:1599,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1600,1
    - Dst: oidc_json_is_boolean
      Src: /src/mod_auth_openidc/test/test_jose.c:1600,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1601,1
    - Dst: oidc_json_is_true
      Src: /src/mod_auth_openidc/test/test_jose.c:1601,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:1602,1
    - Dst: oidc_json_boolean
      Src: /src/mod_auth_openidc/test/test_jose.c:1604,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1605,1
    - Dst: oidc_json_is_boolean
      Src: /src/mod_auth_openidc/test/test_jose.c:1605,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1606,1
    - Dst: oidc_json_is_true
      Src: /src/mod_auth_openidc/test/test_jose.c:1606,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:1607,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_jose.c:1609,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1610,1
    - Dst: oidc_json_is_number
      Src: /src/mod_auth_openidc/test/test_jose.c:1610,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_jose.c:1611,1
    - Dst: oidc_json_number_value
      Src: /src/mod_auth_openidc/test/test_jose.c:1611,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:1612,1
    - Dst: json_real
      Src: /src/mod_auth_openidc/test/test_jose.c:1614,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1615,1
    - Dst: oidc_json_is_number
      Src: /src/mod_auth_openidc/test/test_jose.c:1615,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_jose.c:1616,1
    - Dst: oidc_json_number_value
      Src: /src/mod_auth_openidc/test/test_jose.c:1616,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:1617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1594
    functionDepth: 1
    functionLinenumber: 1594
    functionLinenumberEnd: 1618
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_json_boolean
    - oidc_json_decref
    - ck_assert
    - json_real
    - oidc_json_is_number
    - oidc_json_is_boolean
    - oidc_json_number_value
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_json_is_true
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jose_json_facade_scalars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1625,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_jose.c:1631,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1632,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1633,1
    - Dst: oidc_jwk_parse_json
      Src: /src/mod_auth_openidc/test/test_jose.c:1633,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:1634,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_jose.c:1637,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1638,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1640,1
    - Dst: oidc_jwk_parse_json
      Src: /src/mod_auth_openidc/test/test_jose.c:1640,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:1641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1642
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_json_decref
    - json_loads
    - oidc_test_pool_get
    - oidc_jwk_parse_json
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_parse_json_negatives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1649,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_jose.c:1654,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1655,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1656,1
    - Dst: oidc_is_jwks
      Src: /src/mod_auth_openidc/test/test_jose.c:1656,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1657,1
    - Dst: oidc_jwks_parse_json
      Src: /src/mod_auth_openidc/test/test_jose.c:1657,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:1658,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_jose.c:1660,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1661,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1662,1
    - Dst: oidc_is_jwks
      Src: /src/mod_auth_openidc/test/test_jose.c:1662,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1663,1
    - Dst: oidc_jwks_parse_json
      Src: /src/mod_auth_openidc/test/test_jose.c:1663,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1643
    functionDepth: 1
    functionLinenumber: 1643
    functionLinenumberEnd: 1665
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jwks_parse_json
    - oidc_json_decref
    - json_loads
    - oidc_test_pool_get
    - ck_assert_int_eq
    - oidc_is_jwks
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwks_parse_json_negatives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1672,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1676,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test_jose.c:1676,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1677,1
    - Dst: oidc_jwk_to_public_json
      Src: /src/mod_auth_openidc/test/test_jose.c:1677,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_jose.c:1680,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1681,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test_jose.c:1681,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1682,1
    - Dst: oidc_jwk_to_public_json
      Src: /src/mod_auth_openidc/test/test_jose.c:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1683
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_to_json
    - oidc_test_pool_get
    - apr_pcalloc
    - ck_assert_int_eq
    - oidc_jwk_to_public_json
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_to_json_negatives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1690,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_jose.c:1695,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_jose.c:1695,1
    - Dst: snprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:1696,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1698,1
    - Dst: oidc_jwk_parse_pem_public_key
      Src: /src/mod_auth_openidc/test/test_jose.c:1698,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1699,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_jose.c:1700,1
    - Dst: oidc_jwk_copy
      Src: /src/mod_auth_openidc/test/test_jose.c:1702,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1703,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1704,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1705,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_jose.c:1705,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_jose.c:1705,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1707,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1709
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - ck_assert_int_gt
    - APR_ARRAY_IDX
    - ck_assert_str_eq
    - oidc_jwk_parse_pem_public_key
    - oidc_test_pool_get
    - oidc_jwk_copy
    - ck_assert_int_eq
    - snprintf
    - oidc_jwk_destroy
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_copy_preserves_x5c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1716,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_jose.c:1721,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_jose.c:1721,1
    - Dst: snprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:1722,1
    - Dst: fopen
      Src: /src/mod_auth_openidc/test/test_jose.c:1725,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1726,1
    - Dst: fread
      Src: /src/mod_auth_openidc/test/test_jose.c:1728,1
    - Dst: fclose
      Src: /src/mod_auth_openidc/test/test_jose.c:1729,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_jose.c:1730,1
    - Dst: fopen
      Src: /src/mod_auth_openidc/test/test_jose.c:1732,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1733,1
    - Dst: fwrite
      Src: /src/mod_auth_openidc/test/test_jose.c:1734,1
    - Dst: fwrite
      Src: /src/mod_auth_openidc/test/test_jose.c:1735,1
    - Dst: fclose
      Src: /src/mod_auth_openidc/test/test_jose.c:1736,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1738,1
    - Dst: oidc_jwk_parse_pem_public_key
      Src: /src/mod_auth_openidc/test/test_jose.c:1738,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1739,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1740,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1742,1
    - Dst: remove
      Src: /src/mod_auth_openidc/test/test_jose.c:1743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1710
    functionDepth: 1
    functionLinenumber: 1710
    functionLinenumberEnd: 1744
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - fclose
    - remove
    - ck_assert_int_gt
    - oidc_jwk_parse_pem_public_key
    - oidc_test_pool_get
    - fread
    - fopen
    - fwrite
    - ck_assert_int_eq
    - snprintf
    - oidc_jwk_destroy
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_pem_certificate_chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1751,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1756,1
    - Dst: oidc_jwk_parse_pem_private_key
      Src: /src/mod_auth_openidc/test/test_jose.c:1756,1
    - Dst: fopen
      Src: /src/mod_auth_openidc/test/test_jose.c:1760,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1761,1
    - Dst: fputs
      Src: /src/mod_auth_openidc/test/test_jose.c:1762,1
    - Dst: fclose
      Src: /src/mod_auth_openidc/test/test_jose.c:1763,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1765,1
    - Dst: oidc_jwk_parse_pem_private_key
      Src: /src/mod_auth_openidc/test/test_jose.c:1765,1
    - Dst: remove
      Src: /src/mod_auth_openidc/test/test_jose.c:1766,1
    - Dst: fopen
      Src: /src/mod_auth_openidc/test/test_jose.c:1770,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1771,1
    - Dst: fputs
      Src: /src/mod_auth_openidc/test/test_jose.c:1772,1
    - Dst: fclose
      Src: /src/mod_auth_openidc/test/test_jose.c:1776,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1778,1
    - Dst: oidc_jwk_parse_pem_public_key
      Src: /src/mod_auth_openidc/test/test_jose.c:1778,1
    - Dst: remove
      Src: /src/mod_auth_openidc/test/test_jose.c:1779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1745
    functionDepth: 1
    functionLinenumber: 1745
    functionLinenumberEnd: 1780
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - fclose
    - remove
    - oidc_jwk_parse_pem_private_key
    - fputs
    - oidc_jwk_parse_pem_public_key
    - oidc_test_pool_get
    - fopen
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_pem_parse_negatives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_jose.c:1787,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_jose.c:1792,1
    - Dst: oidc_jwk_default_jws_alg
      Src: /src/mod_auth_openidc/test/test_jose.c:1792,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_jose.c:1796,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_jose.c:1796,1
    - Dst: snprintf
      Src: /src/mod_auth_openidc/test/test_jose.c:1797,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1798,1
    - Dst: oidc_jwk_parse_pem_private_key
      Src: /src/mod_auth_openidc/test/test_jose.c:1798,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1799,1
    - Dst: oidc_jwk_default_jws_alg
      Src: /src/mod_auth_openidc/test/test_jose.c:1799,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1800,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_jose.c:1803,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_jose.c:1807,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1809,1
    - Dst: oidc_jwk_parse_json
      Src: /src/mod_auth_openidc/test/test_jose.c:1809,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_jose.c:1810,1
    - Dst: oidc_jwk_default_jws_alg
      Src: /src/mod_auth_openidc/test/test_jose.c:1810,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_jose.c:1811,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_jose.c:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1781
    functionDepth: 1
    functionLinenumber: 1781
    functionLinenumberEnd: 1813
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_parse_pem_private_key
    - oidc_json_decref
    - ck_assert_str_eq
    - json_loads
    - oidc_test_pool_get
    - oidc_jwk_parse_json
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - snprintf
    - oidc_jwk_destroy
    - getenv
    - oidc_jwk_default_jws_alg
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_jwk_default_jws_alg_curves)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_jose.c:1817,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_jose.c:1818,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1820,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1821,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1822,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1823,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1824,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1825,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_jose.c:1827,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_jose.c:1828,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1829,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1830,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1831,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1832,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1833,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1834,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1836,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1839,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1840,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1841,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1843,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1844,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1845,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1846,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1847,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1848,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1849,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1850,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1851,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1852,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1853,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1854,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1855,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1856,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1857,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1858,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1859,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1860,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1861,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1862,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1863,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1864,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1865,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1866,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1867,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1868,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1869,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1870,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1871,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1872,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_jose.c:1874,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_jose.c:1875,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1876,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1877,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1878,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1879,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1880,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1881,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1883,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1886,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1888,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_jose.c:1889,1
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_jose.c:1891,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_jose.c:1892,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_jose.c:1893,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_jose.c:1894,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_jose.c:1896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1897
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_jose.c
    functionUses: 0
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_add_checked_fixture
    - suite_add_tcase
    - tcase_add_test
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - pf
    - aszPre
    - aszSucc
    - nOrder
    - type
    argTypes:
    - ap_HOOK_check_user_id_t*
    - char**
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: ap_hook_check_authn
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ap_hook_check_authn(ap_HOOK_check_user_id_t *pf, const char *const
      *aszPre, const char *const *aszSucc, int nOrder,\n\t\t    int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: oidc_test_authz_provider_get
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *oidc_test_authz_provider_get(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - pool
    - provider_group
    - provider_name
    - provider_version
    - provider
    - type
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: ap_register_auth_provider
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ap_register_auth_provider(apr_pool_t *pool, const char *provider_group,
      const char *provider_name,\n\t\t\t  const char *provider_version, const void
      *provider, int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gmutex
    argTypes:
    - apr_global_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: ap_unixd_set_global_mutex_perms
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_unixd_set_global_mutex_perms(apr_global_mutex_t *gmutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - auth_type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: oidc_test_set_auth_type
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void oidc_test_set_auth_type(const char *auth_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: ap_auth_type
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_auth_type(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: ap_auth_name
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_auth_name(request_rec *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/stub.c:83,1
    - Dst: memcpy
      Src: /src/mod_auth_openidc/test/stub.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - r
    - buffer
    - bufsiz
    argTypes:
    - request_rec*
    - char*
    - apr_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: ap_get_client_block
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: void
    signature: void ap_get_client_block(request_rec *r, char *buffer, apr_size_t bufsiz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/stub.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - atrans
    - line
    - stop
    argTypes:
    - apr_pool_t*
    - char**
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 110
    functionName: ap_getword
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - apr_pstrmemdup
    linkageType: ''
    returnType: void
    signature: void ap_getword(apr_pool_t *atrans, const char **line, char stop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/stub.c:113,1
    - Dst: ap_resolve_env
      Src: /src/mod_auth_openidc/test/stub.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - p
    - start
    - len
    - quote
    argTypes:
    - apr_pool_t*
    - char*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 130
    functionName: substring_conf
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - apr_palloc
    - ap_resolve_env
    linkageType: ''
    returnType: char
    signature: char *substring_conf(apr_pool_t *p, const char *start, int len, char
      quote)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_isspace
      Src: /src/mod_auth_openidc/test/stub.c:137,1
    - Dst: substring_conf
      Src: /src/mod_auth_openidc/test/stub.c:154,1
    - Dst: apr_isspace
      Src: /src/mod_auth_openidc/test/stub.c:160,1
    - Dst: substring_conf
      Src: /src/mod_auth_openidc/test/stub.c:163,1
    - Dst: apr_isspace
      Src: /src/mod_auth_openidc/test/stub.c:166,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - p
    - line
    argTypes:
    - apr_pool_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 170
    functionName: ap_getword_conf
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - substring_conf
    - apr_isspace
    linkageType: ''
    returnType: void
    signature: void ap_getword_conf(apr_pool_t *p, const char **line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/stub.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - p
    - line
    - stop
    argTypes:
    - apr_pool_t*
    - char**
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: ap_getword_nulls
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - apr_pstrmemdup
    linkageType: ''
    returnType: void
    signature: void ap_getword_nulls(apr_pool_t *p, const char **line, char stop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_isspace
      Src: /src/mod_auth_openidc/test/stub.c:190,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/stub.c:195,1
    - Dst: apr_isspace
      Src: /src/mod_auth_openidc/test/stub.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - atrans
    - line
    argTypes:
    - apr_pool_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 204
    functionName: ap_getword_white
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - apr_pstrmemdup
    - apr_isspace
    linkageType: ''
    returnType: void
    signature: void ap_getword_white(apr_pool_t *atrans, const char **line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: ap_hook_check_user_id
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_hook_check_user_id(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: ap_hook_auth_checker
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_hook_auth_checker(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - aszPre
    - aszSucc
    - nOrder
    argTypes:
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: ap_hook_fixups
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_hook_fixups(int (*handler)(request_rec *r), const char *const
      *aszPre, const char *const *aszSucc, int nOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aszPre
    - aszSucc
    - nOrder
    argTypes:
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: ap_hook_insert_filter
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ap_hook_insert_filter(void (*insert_filter)(request_rec *r),
      const char *const *aszPre, const char *const *aszSucc,\n\t\t      int nOrder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: oidc_test_hook_post_config_get
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: oidc_test_hook_post_config_fn
    signature: oidc_test_hook_post_config_fn oidc_test_hook_post_config_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: oidc_test_hook_child_init_get
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: oidc_test_hook_child_init_fn
    signature: oidc_test_hook_child_init_fn oidc_test_hook_child_init_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aszPre
    - aszSucc
    - nOrder
    argTypes:
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: ap_hook_post_config
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ap_hook_post_config(int (*post_config)(apr_pool_t *pool, apr_pool_t
      *p1, apr_pool_t *p2, server_rec *s),\n\t\t    const char *const *aszPre, const
      char *const *aszSucc, int nOrder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aszPre
    - aszSucc
    - nOrder
    argTypes:
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: ap_hook_child_init
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ap_hook_child_init(void (*child_init)(apr_pool_t *p, server_rec
      *s), const char *const *aszPre,\n\t\t   const char *const *aszSucc, int nOrder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - aszPre
    - aszSucc
    - nOrder
    argTypes:
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: ap_hook_handler
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_hook_handler(int (*handler)(request_rec *r), const char *const
      *aszPre, const char *const *aszSucc, int nOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: ap_is_initial_req
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_is_initial_req(request_rec *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/mod_auth_openidc/test/stub.c:265,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/stub.c:269,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/stub.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - cmd
    - expr
    - flags
    - err
    - lookup_fn
    - module_index
    argTypes:
    - cmd_parms*
    - char*
    - unsigned int
    - char**
    - ap_expr_lookup_fn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 275
    functionName: ap_expr_parse_cmd_mi
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - strcmp
    - apr_pcalloc
    linkageType: ''
    returnType: void
    signature: "void ap_expr_parse_cmd_mi(const cmd_parms *cmd, const char *expr,
      unsigned int flags, const char **err,\n\t\t     ap_expr_lookup_fn_t *lookup_fn,
      int module_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - r
    - expr
    - err
    argTypes:
    - request_rec*
    - ap_expr_info_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: ap_expr_str_exec
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_expr_str_exec(request_rec *r, const ap_expr_info_t *expr, const
      char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/stub.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - cmd
    - argv
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: ap_get_exec_line
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    linkageType: ''
    returnType: void
    signature: void ap_get_exec_line(apr_pool_t *p, const char *cmd, const char *const
      *argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: oidc_test_exec_line_prime
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void oidc_test_exec_line_prime(const char *output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/stub.c:296,1
    - Dst: va_start
      Src: /src/mod_auth_openidc/test/stub.c:298,1
    - Dst: vfprintf
      Src: /src/mod_auth_openidc/test/stub.c:299,1
    - Dst: va_end
      Src: /src/mod_auth_openidc/test/stub.c:300,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/stub.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - file
    - line
    - module_index
    - level
    - status
    - s
    - fmt
    argTypes:
    - char*
    - int
    - int
    - int
    - apr_status_t
    - server_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: ap_log_error_
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - fprintf
    - va_end
    - vfprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: "void ap_log_error_(const char *file, int line, int module_index, int
      level, apr_status_t status, const server_rec *s,\n\t      const char *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/stub.c:309,1
    - Dst: va_start
      Src: /src/mod_auth_openidc/test/stub.c:311,1
    - Dst: vfprintf
      Src: /src/mod_auth_openidc/test/stub.c:312,1
    - Dst: va_end
      Src: /src/mod_auth_openidc/test/stub.c:313,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/stub.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - file
    - line
    - module_index
    - level
    - status
    - r
    - fmt
    argTypes:
    - char*
    - int
    - int
    - int
    - apr_status_t
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 316
    functionName: ap_log_rerror_
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - fprintf
    - va_end
    - vfprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: "void ap_log_rerror_(const char *file, int line, int module_index,
      int level, apr_status_t status, const request_rec *r,\n\t       const char *fmt,
      ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: ap_note_auth_failure
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_note_auth_failure(request_rec *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_brigade_pflatten
      Src: /src/mod_auth_openidc/test/stub.c:331,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/test/stub.c:332,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/stub.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - filter
    - bucket
    argTypes:
    - ap_filter_t*
    - apr_bucket_brigade*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: ap_pass_brigade
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - apr_brigade_pflatten
    - oidc_request_state_set
    - apr_pstrmemdup
    linkageType: ''
    returnType: void
    signature: void ap_pass_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: ap_requires
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_requires(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pool_userdata_get
      Src: /src/mod_auth_openidc/test/stub.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: ap_run_http_scheme
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - apr_pool_userdata_get
    linkageType: ''
    returnType: char
    signature: char *ap_run_http_scheme(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - r
    - ct
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: ap_set_content_type
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_set_content_type(request_rec *r, const char *ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - struct_ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: ap_set_flag_slot
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_set_flag_slot(cmd_parms *cmd, void *struct_ptr, int arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - struct_ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: ap_set_string_slot
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_set_string_slot(cmd_parms *cmd, void *struct_ptr, const char
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - struct_ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 360
    functionName: ap_set_int_slot
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_set_int_slot(cmd_parms *cmd, void *struct_ptr, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - read_policy
    argTypes:
    - request_rec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 364
    functionName: ap_setup_client_block
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_setup_client_block(request_rec *r, int read_policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 368
    functionName: ap_should_client_block
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_should_client_block(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 372
    functionName: ap_unescape_url
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_unescape_url(char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gmutex
    argTypes:
    - apr_global_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 376
    functionName: unixd_set_global_mutex_perms
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unixd_set_global_mutex_perms(apr_global_mutex_t *gmutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 380
    functionName: ap_get_server_name
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_get_server_name(request_rec *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/stub.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - file
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: ap_server_root_relative
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    linkageType: ''
    returnType: void
    signature: void ap_server_root_relative(apr_pool_t *p, const char *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - name
    - ctx
    - r
    - c
    argTypes:
    - char*
    - void*
    - request_rec*
    - conn_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: ap_add_input_filter
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_add_input_filter(const char *name, void *ctx, request_rec *r,
      conn_rec *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: oidc_test_added_input_filter_get
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_test_added_input_filter_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: oidc_test_added_input_filter_reset
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void oidc_test_added_input_filter_reset(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/mod_auth_openidc/test/stub.c:409,1
    - Dst: apr_bucket_heap_create
      Src: /src/mod_auth_openidc/test/stub.c:410,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/stub.c:410,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/mod_auth_openidc/test/stub.c:411,1
    - Dst: apr_bucket_eos_create
      Src: /src/mod_auth_openidc/test/stub.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - filter
    - bucket
    - mode
    - block
    - readbytes
    argTypes:
    - ap_filter_t*
    - apr_bucket_brigade*
    - ap_input_mode_t
    - apr_read_type_e
    - apr_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 415
    functionName: ap_get_brigade
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - apr_bucket_heap_create
    - APR_BRIGADE_INSERT_TAIL
    - apr_bucket_eos_create
    - strlen
    linkageType: ''
    returnType: void
    signature: "void ap_get_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket,
      ap_input_mode_t mode, apr_read_type_e block,\n\t       apr_off_t readbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - body
    - rc
    argTypes:
    - char*
    - apr_status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: oidc_test_brigade_prime
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void oidc_test_brigade_prime(const char *body, apr_status_t rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - name
    - filter_func
    - filter_init
    - ftype
    argTypes:
    - char*
    - ap_in_filter_func
    - ap_init_filter_func
    - ap_filter_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: ap_register_input_filter
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ap_register_input_filter(const char *name, ap_in_filter_func
      filter_func, ap_init_filter_func filter_init,\n\t\t\t ap_filter_type ftype)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: oidc_test_input_filter_get
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: oidc_test_input_filter_fn
    signature: oidc_test_input_filter_fn oidc_test_input_filter_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: oidc_test_hook_insert_filter_get
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: oidc_test_hook_insert_filter_fn
    signature: oidc_test_hook_insert_filter_fn oidc_test_hook_insert_filter_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 439
    functionName: ap_make_dirstr_parent
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_make_dirstr_parent(apr_pool_t *p, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - query_code
    - result
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: ap_mpm_query
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_mpm_query(int query_code, int *result)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: apr_strtoi64
      Src: /src/mod_auth_openidc/test/stub.c:453,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/stub.c:463,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/stub.c:467,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/stub.c:477,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - timeout_parameter
    - timeout
    - default_time_unit
    argTypes:
    - char*
    - apr_interval_time_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 487
    functionName: ap_timeout_parameter_parse
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached:
    - apr_strtoi64
    - apr_time_from_sec
    linkageType: ''
    returnType: void
    signature: void ap_timeout_parameter_parse(const char *timeout_parameter, apr_interval_time_t
      *timeout, const char *default_time_unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - expr
    - err
    argTypes:
    - request_rec*
    - ap_expr_info_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 493
    functionName: ap_expr_exec
    functionSourceFile: /src/mod_auth_openidc/test/stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ap_expr_exec(request_rec *r, const ap_expr_info_t *expr, const
      char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:65,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:66,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:68,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:68,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:69,1
    - Dst: oidc_metadata_provider_is_valid
      Src: /src/mod_auth_openidc/test/test_metadata.c:69,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_json_decode_object
    - oidc_metadata_provider_is_valid
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metadata_is_valid_happy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:75,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:76,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:78,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:79,1
    - Dst: oidc_metadata_provider_is_valid
      Src: /src/mod_auth_openidc/test/test_metadata.c:79,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_metadata_provider_is_valid
    - ck_assert_int_eq
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_is_valid_missing_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:85,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:86,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:88,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:88,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:90,1
    - Dst: oidc_metadata_provider_is_valid
      Src: /src/mod_auth_openidc/test/test_metadata.c:90,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_json_decode_object
    - oidc_metadata_provider_is_valid
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_is_valid_issuer_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:96,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:97,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:99,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:100,1
    - Dst: oidc_metadata_provider_is_valid
      Src: /src/mod_auth_openidc/test/test_metadata.c:100,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_metadata_provider_is_valid
    - ck_assert_int_eq
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_is_valid_missing_authz_endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:111,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:112,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:124,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:124,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:125,1
    - Dst: json_object_set_new
      Src: /src/mod_auth_openidc/test/test_metadata.c:125,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:125,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:126,1
    - Dst: oidc_metadata_provider_is_valid
      Src: /src/mod_auth_openidc/test/test_metadata.c:126,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_json_decode_object
    - oidc_metadata_provider_is_valid
    - ck_assert_msg
    - ck_assert_int_eq
    - json_pack
    - json_object_set_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_is_valid_rejects_unsupported_capabilities)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:140,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:141,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:142,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:145,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:145,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:146,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:146,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:148,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:148,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:149,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:149,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:151,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:151,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:152,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:152,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:153,1
    - Dst: oidc_cfg_provider_jwks_uri_uri_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:153,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 156
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_authorization_endpoint_url_get
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_provider_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_json_decode_object
    - oidc_cfg_provider_issuer_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - oidc_cfg_provider_token_endpoint_url_get
    - oidc_cfg_provider_jwks_uri_uri_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_parse_populates_empty_provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:160,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:161,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:162,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:165,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:166,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:169,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:169,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:170,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:170,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:172,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:172,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:173,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:173,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:175,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:175,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_authorization_endpoint_url_get
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_provider_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_json_decode_object
    - oidc_cfg_provider_issuer_get
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_provider_token_endpoint_url_get
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_parse_preserves_existing_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:188,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:189,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:190,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:198,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:198,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:199,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:199,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 201
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_provider_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_json_decode_object
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_parse_no_usable_token_endpoint_auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:210,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:211,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:212,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:213,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:213,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:229,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:229,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:232,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:232,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:233,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:233,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:234,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:234,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:235,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:235,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:239,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:239,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:240,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:240,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:241,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:242,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:242,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:243,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:243,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:244,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:244,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:245,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:245,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:251,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:251,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:252,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:253,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:253,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:254,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:254,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:255,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:255,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:256,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:256,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 259
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_tls_client_cert_set
    - oidc_test_request_get
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_metadata_provider_parse
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_json_decode_object
    - oidc_cfg_provider_get
    - oidc_json_decref
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - getenv
    - oidc_cfg_provider_token_endpoint_url_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_parse_mtls_endpoint_aliases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:264,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:265,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:266,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:267,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:267,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:270,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:270,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:271,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:271,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:281,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:281,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:282,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:282,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:283,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:295,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:296,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:296,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:297,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:297,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:298,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:298,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:299,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:299,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 301
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_tls_client_cert_set
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_provider_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_cfg_provider_get
    - oidc_json_decode_object
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - getenv
    - oidc_cfg_provider_token_endpoint_url_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_parse_mtls_endpoint_aliases_invalid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - advertised
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 319
    functionName: OIDC_TEST_METADATA_CERT_BOUND
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_TEST_METADATA_CERT_BOUND(advertised)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:322,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:322,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:323,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:326,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:326,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:327,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:327,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:328,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:328,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:330,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:330,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:331,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:331,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:332,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:335,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - r
    - c
    - metadata
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 338
    functionName: oidc_test_metadata_cert_bound_parse
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_tls_client_cert_set
    - oidc_json_decref
    - oidc_metadata_provider_parse
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_create
    - oidc_cfg_provider_get
    - oidc_json_decode_object
    - oidc_cfg_provider_token_endpoint_auth_get
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - getenv
    linkageType: ''
    returnType: oidc_provider_t
    signature: oidc_provider_t *oidc_test_metadata_cert_bound_parse(request_rec *r,
      oidc_cfg_t *c, const char *metadata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:341,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:342,1
    - Dst: oidc_test_metadata_cert_bound_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:345,1
    - Dst: OIDC_TEST_METADATA_CERT_BOUND
      Src: /src/mod_auth_openidc/test/test_metadata.c:345,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:347,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:347,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:348,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:348,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:351,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 352
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - OIDC_TEST_METADATA_CERT_BOUND
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - oidc_cfg_provider_cert_bound_tokens_get
    - oidc_cfg_provider_token_endpoint_url_get
    - ck_assert_str_eq
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - oidc_test_metadata_cert_bound_parse
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metadata_parse_cert_bound_tokens_advertised)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:356,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:357,1
    - Dst: oidc_test_metadata_cert_bound_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:360,1
    - Dst: OIDC_TEST_METADATA_CERT_BOUND
      Src: /src/mod_auth_openidc/test/test_metadata.c:360,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:362,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:362,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:363,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:363,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:364,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 365
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - OIDC_TEST_METADATA_CERT_BOUND
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - oidc_cfg_provider_cert_bound_tokens_get
    - oidc_cfg_provider_token_endpoint_url_get
    - ck_assert_str_eq
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - oidc_test_metadata_cert_bound_parse
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_parse_cert_bound_tokens_not_advertised)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:369,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:370,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:373,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:373,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:373,1
    - Dst: oidc_test_metadata_cert_bound_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:374,1
    - Dst: OIDC_TEST_METADATA_CERT_BOUND
      Src: /src/mod_auth_openidc/test/test_metadata.c:374,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:376,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:376,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:377,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 378
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - OIDC_TEST_METADATA_CERT_BOUND
    - oidc_test_request_get
    - oidc_cfg_provider_cert_bound_tokens_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_ptr_null
    - oidc_cfg_provider_token_endpoint_url_get
    - ck_assert_str_eq
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - oidc_test_metadata_cert_bound_parse
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_parse_cert_bound_tokens_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:382,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:383,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:386,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:386,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:386,1
    - Dst: oidc_test_metadata_cert_bound_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:387,1
    - Dst: OIDC_TEST_METADATA_CERT_BOUND
      Src: /src/mod_auth_openidc/test/test_metadata.c:387,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:389,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:389,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:390,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 392
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - OIDC_TEST_METADATA_CERT_BOUND
    - oidc_test_request_get
    - oidc_cfg_provider_cert_bound_tokens_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_ptr_null
    - oidc_cfg_provider_token_endpoint_url_get
    - ck_assert_str_eq
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - oidc_test_metadata_cert_bound_parse
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_parse_cert_bound_tokens_on)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:396,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:397,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:398,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:398,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:399,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:403,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:403,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:404,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:404,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:406,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:408,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:408,1
    - Dst: OIDC_TEST_METADATA_CERT_BOUND
      Src: /src/mod_auth_openidc/test/test_metadata.c:408,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:409,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:409,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:410,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:412,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:412,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:413,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:413,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:415,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 417
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_tls_client_cert_set
    - OIDC_TEST_METADATA_CERT_BOUND
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_provider_parse
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_cfg_provider_get
    - oidc_json_decode_object
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - getenv
    - oidc_cfg_provider_token_endpoint_url_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_parse_mtls_explicit_endpoint_wins)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:447,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:448,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:449,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:449,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:450,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:453,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:453,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:454,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:454,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:456,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:456,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:457,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:457,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:458,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:461,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:461,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:462,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:462,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:464,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:464,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:465,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:465,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:467,1
    - Dst: oidc_cfg_provider_pushed_authorization_request_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:467,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:469,1
    - Dst: oidc_cfg_provider_registration_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:469,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:471,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 473
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_tls_client_cert_set
    - oidc_metadata_provider_parse
    - oidc_cfg_provider_create
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - oidc_test_cfg_get
    - oidc_json_decode_object
    - oidc_cfg_provider_cert_bound_tokens_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cfg_provider_authorization_endpoint_url_get
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_registration_endpoint_url_get
    - getenv
    - oidc_cfg_provider_token_endpoint_url_get
    - oidc_cfg_provider_pushed_authorization_request_endpoint_url_get
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metadata_parse_mtls_aliases_private_key_jwt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:482,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:483,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:484,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:486,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:490,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:491,1
    - Dst: oidc_metadata_provider_retrieve
      Src: /src/mod_auth_openidc/test/test_metadata.c:495,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:496,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:497,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:498,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:499,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:500,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:500,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:502,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:503,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:505,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 507
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - ck_assert_str_eq
    - oidc_test_http_server_stop
    - oidc_metadata_provider_retrieve
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_retrieve_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:511,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:512,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:513,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:514,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_metadata.c:516,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_metadata.c:517,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:518,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:523,1
    - Dst: oidc_metadata_provider_retrieve
      Src: /src/mod_auth_openidc/test/test_metadata.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 524
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_free_port
    - oidc_metadata_provider_retrieve
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_retrieve_http_failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:528,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:529,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:530,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:531,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:537,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:538,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:542,1
    - Dst: oidc_metadata_provider_retrieve
      Src: /src/mod_auth_openidc/test/test_metadata.c:542,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:543,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:545,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:547,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 549
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_metadata_provider_retrieve
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_retrieve_invalid_metadata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:558,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:559,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:563,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:564,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:567,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:572,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:572,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:573,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:574,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:574,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:576,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:577,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:579,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 581
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_json_object_get
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_metadata_jwks_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_jwks_get_forced_refresh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:586,1
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/test/test_metadata.c:587,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:589,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:589,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - j
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 590
    functionName: oidc_test_jwks_first_kid
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get
    - oidc_json_string_value
    - oidc_json_array_size
    - oidc_json_array_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *oidc_test_jwks_first_kid(const oidc_json_t *j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:594,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:595,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_metadata.c:605,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:606,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:608,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:610,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:613,1
    - Dst: oidc_metadata_jwks_forced_refresh_throttled
      Src: /src/mod_auth_openidc/test/test_metadata.c:613,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:618,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:618,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:619,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:620,1
    - Dst: oidc_test_jwks_first_kid
      Src: /src/mod_auth_openidc/test/test_metadata.c:620,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:621,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:623,1
    - Dst: oidc_metadata_jwks_forced_refresh_throttled
      Src: /src/mod_auth_openidc/test/test_metadata.c:623,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:629,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:629,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:630,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:631,1
    - Dst: oidc_test_jwks_first_kid
      Src: /src/mod_auth_openidc/test/test_metadata.c:631,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:632,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:637,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:641,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:641,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:642,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:643,1
    - Dst: oidc_test_jwks_first_kid
      Src: /src/mod_auth_openidc/test/test_metadata.c:643,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:644,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:647,1
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/test_metadata.c:647,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:648,1
    - Dst: oidc_test_http_server_captured
      Src: /src/mod_auth_openidc/test/test_metadata.c:648,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:649,1
    - Dst: oidc_test_http_server_captured
      Src: /src/mod_auth_openidc/test/test_metadata.c:649,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 652
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_captured
    - oidc_test_request_get
    - oidc_test_jwks_first_kid
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_test_http_server_start_seq
    - oidc_metadata_jwks_forced_refresh_throttled
    - oidc_test_http_server_request_count
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_metadata_jwks_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metadata_jwks_get_forced_refresh_throttled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:658,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:659,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_metadata.c:665,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:666,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:669,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:673,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:673,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:674,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:677,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:677,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:678,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:682,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:684,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:684,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:685,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:686,1
    - Dst: oidc_test_jwks_first_kid
      Src: /src/mod_auth_openidc/test/test_metadata.c:686,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:687,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:688,1
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/test_metadata.c:688,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_metadata.c:689,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 691
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_jwks_first_kid
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_test_http_server_start_seq
    - apr_table_set
    - oidc_test_http_server_request_count
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_metadata_jwks_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_jwks_get_failed_refresh_remains_throttled)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r
    - section
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 700
    functionName: e2e_jwks_cache_get
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t e2e_jwks_cache_get(request_rec *r, const char *section,
      const char *key, char **value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - r
    - section
    - key
    - value
    - expiry
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 706
    functionName: e2e_jwks_cache_set
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t e2e_jwks_cache_set(request_rec *r, const char *section,
      const char *key, const char *value,\n\t\t\t\t     apr_time_t expiry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:714,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:715,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:723,1
    - Dst: oidc_metadata_jwks_forced_refresh_throttled
      Src: /src/mod_auth_openidc/test/test_metadata.c:723,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:726,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:726,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:727,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:732,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:732,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:733,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 738
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_metadata_jwks_forced_refresh_throttled
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_metadata_jwks_get
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metadata_jwks_get_cache_errors_fail_closed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:747,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:748,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_metadata.c:757,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:758,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:761,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:761,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:767,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:767,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:768,1
    - Dst: oidc_test_jwks_first_kid
      Src: /src/mod_auth_openidc/test/test_metadata.c:768,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:769,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:770,1
    - Dst: oidc_metadata_jwks_forced_refresh_throttled
      Src: /src/mod_auth_openidc/test/test_metadata.c:770,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:773,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:774,1
    - Dst: oidc_metadata_jwks_forced_refresh_throttled
      Src: /src/mod_auth_openidc/test/test_metadata.c:774,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:777,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:778,1
    - Dst: oidc_metadata_jwks_forced_refresh_throttled
      Src: /src/mod_auth_openidc/test/test_metadata.c:778,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:779,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:780,1
    - Dst: oidc_metadata_jwks_forced_refresh_throttled
      Src: /src/mod_auth_openidc/test/test_metadata.c:780,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:783,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:784,1
    - Dst: oidc_metadata_jwks_forced_refresh_throttled
      Src: /src/mod_auth_openidc/test/test_metadata.c:784,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:788,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:789,1
    - Dst: oidc_metadata_jwks_forced_refresh_throttled
      Src: /src/mod_auth_openidc/test/test_metadata.c:789,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:793,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:793,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:794,1
    - Dst: oidc_test_jwks_first_kid
      Src: /src/mod_auth_openidc/test/test_metadata.c:794,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:795,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:798,1
    - Dst: oidc_metadata_jwks_forced_refresh_throttled
      Src: /src/mod_auth_openidc/test/test_metadata.c:798,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:800,1
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/test_metadata.c:800,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_metadata.c:801,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 803
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_jwks_first_kid
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_test_http_server_start_seq
    - oidc_metadata_jwks_forced_refresh_throttled
    - apr_table_set
    - oidc_test_http_server_request_count
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_metadata_jwks_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_jwks_get_forced_refresh_interval_envvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:807,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:808,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_metadata.c:810,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_metadata.c:811,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:813,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:818,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:818,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 820
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_metadata_jwks_get
    - oidc_test_http_free_port
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_jwks_get_http_failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:828,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:829,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:833,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:834,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:837,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:843,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:843,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:844,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:845,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:848,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:852,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:852,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:853,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:854,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:854,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 856
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_json_object_get
    - oidc_test_http_server_stop
    - ck_assert_int_eq
    - oidc_metadata_jwks_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_jwks_get_cache_hit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:865,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:866,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:870,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:871,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:874,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:879,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:879,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 882
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_int_eq
    - oidc_metadata_jwks_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_jwks_get_missing_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:887,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:888,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:892,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:893,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:896,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:901,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:901,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 904
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_int_eq
    - oidc_metadata_jwks_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_jwks_get_invalid_json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:917,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:917,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_metadata.c:919,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_metadata.c:920,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_metadata.c:921,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_metadata.c:923,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:925,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_metadata.c:925,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_metadata.c:926,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:927,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_metadata.c:928,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_metadata.c:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - r
    - secret
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 931
    functionName: signed_jwks_make_jwt
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - oidc_json_object_set_new
    - json_loads
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - ck_assert_int_eq
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *signed_jwks_make_jwt(request_rec *r, const char *secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:938,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:938,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:939,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:940,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:940,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:941,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/test_metadata.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - r
    - secret
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 946
    functionName: signed_jwks_make_verifier_list
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - ck_assert_int_eq
    - ck_assert_ptr_null
    - apr_array_make
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: apr_array_header_t
    signature: apr_array_header_t *signed_jwks_make_verifier_list(request_rec *r,
      const char *secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_metadata.c:950,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_metadata.c:950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - jwk_list
    argTypes:
    - apr_array_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 951
    functionName: signed_jwks_destroy_verifier_list
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - APR_ARRAY_IDX
    - oidc_jwk_destroy
    linkageType: ''
    returnType: void
    signature: void signed_jwks_destroy_verifier_list(apr_array_header_t *jwk_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:954,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:955,1
    - Dst: signed_jwks_make_jwt
      Src: /src/mod_auth_openidc/test/test_metadata.c:959,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:960,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:961,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:964,1
    - Dst: signed_jwks_make_verifier_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:966,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:970,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:970,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:971,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:972,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:972,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:973,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:977,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:978,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:982,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:982,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:983,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:984,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:984,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:985,1
    - Dst: signed_jwks_destroy_verifier_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 988
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - signed_jwks_make_jwt
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_json_object_get
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - signed_jwks_destroy_verifier_list
    - signed_jwks_make_verifier_list
    - ck_assert_int_eq
    - oidc_metadata_jwks_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metadata_jwks_get_signed_happy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:993,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:994,1
    - Dst: signed_jwks_make_jwt
      Src: /src/mod_auth_openidc/test/test_metadata.c:998,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:999,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1000,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:1003,1
    - Dst: signed_jwks_make_verifier_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1005,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1009,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1009,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1010,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:1012,1
    - Dst: signed_jwks_destroy_verifier_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 989
    functionDepth: 2
    functionLinenumber: 989
    functionLinenumberEnd: 1014
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - signed_jwks_make_jwt
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - signed_jwks_destroy_verifier_list
    - signed_jwks_make_verifier_list
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_metadata_jwks_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_jwks_get_signed_bad_signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1019,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1020,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:1024,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1025,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:1028,1
    - Dst: signed_jwks_make_verifier_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1030,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1034,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1034,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1035,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:1037,1
    - Dst: signed_jwks_destroy_verifier_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1015
    functionDepth: 2
    functionLinenumber: 1015
    functionLinenumberEnd: 1039
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - signed_jwks_destroy_verifier_list
    - signed_jwks_make_verifier_list
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_metadata_jwks_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_jwks_get_signed_not_a_jwt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1046,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:1047,1
    - Dst: signed_jwks_make_verifier_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1049,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1050,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_keys_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1050,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_keys_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1052,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1053,1
    - Dst: ck_assert_ptr_ne
      Src: /src/mod_auth_openidc/test/test_metadata.c:1054,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1055,1
    - Dst: signed_jwks_destroy_verifier_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1057,1
    - Dst: signed_jwks_destroy_verifier_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1040
    functionDepth: 2
    functionLinenumber: 1040
    functionLinenumberEnd: 1059
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_provider_signed_jwks_uri_keys_get
    - ck_assert_int_eq
    - oidc_cfg_provider_create
    - ck_assert_ptr_nonnull
    - signed_jwks_destroy_verifier_list
    - signed_jwks_make_verifier_list
    - ck_assert_ptr_ne
    - oidc_cfg_provider_signed_jwks_uri_keys_set
    - ck_assert_ptr_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_signed_jwks_uri_keys_global_fallback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1068,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1069,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:1071,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1073,1
    - Dst: oidc_oauth_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1073,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1075,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1075,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1076,1
    - Dst: oidc_cfg_oauth_verify_jwks_uri_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1076,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1079
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_oauth_metadata_provider_parse
    - oidc_cfg_oauth_introspection_endpoint_url_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - json_pack
    - oidc_cfg_oauth_verify_jwks_uri_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_oauth_provider_parse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1085,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1086,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:1088,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1090,1
    - Dst: oidc_oauth_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1090,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1092,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1092,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1093,1
    - Dst: oidc_cfg_oauth_verify_jwks_uri_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1093,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1096
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_oauth_metadata_provider_parse
    - oidc_cfg_oauth_introspection_endpoint_url_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - json_pack
    - oidc_cfg_oauth_verify_jwks_uri_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_oauth_provider_parse_invalid_urls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1102,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1103,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:1105,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1108,1
    - Dst: oidc_oauth_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1108,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1111
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_oauth_metadata_provider_parse
    - ck_assert_int_eq
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_oauth_provider_parse_no_supported_auth_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1118,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1119,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1120,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1120,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1122,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1123,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1123,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1124,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:1126,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1129,1
    - Dst: oidc_oauth_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1129,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1130,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1130,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1131,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1131,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1134
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - ck_assert_str_eq
    - oidc_oauth_metadata_provider_parse
    - oidc_cfg_oauth_introspection_endpoint_auth_get
    - oidc_cfg_oauth_introspection_endpoint_url_get
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_cmd_oauth_introspection_endpoint_tls_client_cert_set
    - getenv
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_oauth_provider_parse_mtls_invalid_alias_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1138,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1139,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1140,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1140,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:1143,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1150,1
    - Dst: oidc_oauth_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1150,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1151,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1151,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1152,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1152,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1156,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1157,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1157,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1158,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1159,1
    - Dst: oidc_oauth_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1159,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1160,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1160,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1161,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1161,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1166,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1167,1
    - Dst: oidc_cmd_oauth_client_secret_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1167,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1168,1
    - Dst: oidc_oauth_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1168,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1169,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1169,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1170,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1170,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_metadata.c:1175,1
    - Dst: oidc_json_boolean
      Src: /src/mod_auth_openidc/test/test_metadata.c:1175,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1176,1
    - Dst: oidc_oauth_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1176,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1177,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1177,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1178,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1178,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1181
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_json_boolean
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_oauth_metadata_provider_parse
    - oidc_cfg_oauth_introspection_endpoint_auth_get
    - oidc_cfg_oauth_introspection_endpoint_url_get
    - oidc_cmd_oauth_introspection_endpoint_tls_client_cert_set
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cmd_oauth_client_secret_set
    - getenv
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_oauth_provider_parse_mtls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1192,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:1193,1
    - Dst: mkdtemp
      Src: /src/mod_auth_openidc/test/test_metadata.c:1193,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1194,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1195,1
    - Dst: oidc_cmd_metadata_dir_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1197
    functionName: e2e_make_metadata_dir
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - mkdtemp
    - oidc_cmd_metadata_dir_set
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_ptr_null
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *e2e_make_metadata_dir(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_metadata.c:1201,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:1203,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_metadata.c:1204,1
    - Dst: apr_file_write
      Src: /src/mod_auth_openidc/test/test_metadata.c:1205,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1206,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_metadata.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - r
    - path
    - body
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1208
    functionName: e2e_write_file
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_file_open
    - apr_file_close
    - apr_file_write
    - ck_assert_msg
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void e2e_write_file(request_rec *r, const char *path, const char *body)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1211,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1212,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1213,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1216,1
    - Dst: oidc_metadata_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1216,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1217,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1210
    functionDepth: 2
    functionLinenumber: 1210
    functionLinenumberEnd: 1219
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_metadata_list
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metadata_disk_list_empty_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1223,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1224,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1225,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1228,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1228,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1231,1
    - Dst: oidc_metadata_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1231,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1232,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1220
    functionDepth: 2
    functionLinenumber: 1220
    functionLinenumberEnd: 1234
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_json_decref
    - oidc_test_cfg_get
    - e2e_write_file
    - oidc_metadata_provider_get
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_get_provider_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1239,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1240,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1241,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:1244,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1245,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:1250,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1251,1
    - Dst: oidc_metadata_provider_file_path
      Src: /src/mod_auth_openidc/test/test_metadata.c:1262,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1263,1
    - Dst: apr_dir_make
      Src: /src/mod_auth_openidc/test/test_metadata.c:1263,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:1266,1
    - Dst: oidc_metadata_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1266,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1268,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1269,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:1269,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1269,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1270,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:1272,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1273,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1274,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:1274,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:1276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1235
    functionDepth: 2
    functionLinenumber: 1235
    functionLinenumberEnd: 1277
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - oidc_metadata_provider_get
    - oidc_json_string_value
    - _oidc_strstr
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_msg
    - oidc_metadata_provider_file_path
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_start
    - oidc_test_request_get
    - apr_dir_make
    - oidc_json_decref
    - e2e_make_metadata_dir
    - oidc_json_object_get
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_provider_write_failure_serves_in_memory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1281,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1282,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1283,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1288,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1288,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1291,1
    - Dst: oidc_metadata_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1291,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1292,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1278
    functionDepth: 2
    functionLinenumber: 1278
    functionLinenumberEnd: 1294
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_metadata_list
    - e2e_write_file
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_list_skips_provider_without_client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1298,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1299,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1300,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1302,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1302,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1304,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1304,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1308,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1308,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1309,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1310,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1310,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1311,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1311,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1315,1
    - Dst: oidc_metadata_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1315,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1316,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1317,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_metadata.c:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1295
    functionDepth: 2
    functionLinenumber: 1295
    functionLinenumberEnd: 1318
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - APR_ARRAY_IDX
    - oidc_metadata_get
    - oidc_cfg_provider_issuer_get
    - oidc_metadata_list
    - e2e_write_file
    - apr_psprintf
    - oidc_cfg_provider_client_id_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_get_full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1322,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1323,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1324,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1326,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1336,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1336,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1337,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1337,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1341,1
    - Dst: oidc_metadata_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1341,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1342,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1343,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_metadata.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1319
    functionDepth: 2
    functionLinenumber: 1319
    functionLinenumberEnd: 1344
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - APR_ARRAY_IDX
    - oidc_metadata_list
    - e2e_write_file
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_list_preserves_http_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1351,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1352,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1353,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1355,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1355,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1357,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1357,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1361,1
    - Dst: oidc_metadata_list
      Src: /src/mod_auth_openidc/test/test_metadata.c:1361,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1345
    functionDepth: 2
    functionLinenumber: 1345
    functionLinenumberEnd: 1363
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_metadata_list
    - e2e_write_file
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_list_provider_without_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1369,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1370,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1371,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1373,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1374,1
    - Dst: oidc_cmd_default_slo_url_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1374,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:1379,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1380,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1382,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:1391,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1392,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1392,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1395,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1395,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:1397,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1398,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:1399,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:1399,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:1401,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:1401,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:1404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1364
    functionDepth: 2
    functionLinenumber: 1364
    functionLinenumberEnd: 1405
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_http_server_start
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_metadata_get
    - _oidc_strstr
    - e2e_write_file
    - ck_assert_msg
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cmd_default_slo_url_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_dyn_registration_post_logout_redirect_uris)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1409,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1410,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:1411,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1415,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:1415,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1420,1
    - Dst: oidc_metadata_client_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1420,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1422,1
    - Dst: oidc_cfg_provider_response_type_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1422,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1406
    functionDepth: 1
    functionLinenumber: 1406
    functionLinenumberEnd: 1424
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_json_decode_object
    - ck_assert_str_eq
    - oidc_cfg_provider_response_type_get
    - ck_assert_int_eq
    - oidc_metadata_client_parse
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_client_parse_response_type_not_advertised)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1428,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1429,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:1430,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1432,1
    - Dst: oidc_cfg_provider_response_type_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1432,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1436,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:1436,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1441,1
    - Dst: oidc_metadata_client_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1441,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1442,1
    - Dst: oidc_cfg_provider_response_type_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1442,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1444
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_provider_response_type_set
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_json_decode_object
    - ck_assert_str_eq
    - oidc_cfg_provider_response_type_get
    - ck_assert_int_eq
    - oidc_metadata_client_parse
    - ck_assert_ptr_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_client_parse_response_type_explicitly_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1450,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1451,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:1452,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1455,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:1455,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1456,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1456,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1458,1
    - Dst: oidc_cfg_provider_response_type_is_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1458,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1459,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1463,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:1463,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1468,1
    - Dst: oidc_metadata_client_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1468,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1469,1
    - Dst: oidc_cfg_provider_response_type_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1469,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1471
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_client_parse
    - oidc_metadata_conf_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_json_decode_object
    - ck_assert_str_eq
    - oidc_cfg_provider_response_type_get
    - ck_assert_int_eq
    - oidc_cfg_provider_response_type_is_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_conf_then_client_response_type_fallback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1476,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1477,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1478,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1479,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1479,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1481,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1481,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1482,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1482,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1483,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1490,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1490,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1494,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1494,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1496,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1496,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1497,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1497,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1498,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1498,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1499,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1499,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1501,1
    - Dst: oidc_cfg_provider_pushed_authorization_request_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1501,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1507,1
    - Dst: oidc_cfg_provider_dpop_supported_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1507,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1508,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1508,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1509,1
    - Dst: oidc_cfg_provider_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1472
    functionDepth: 2
    functionLinenumber: 1472
    functionLinenumberEnd: 1510
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_cfg_provider_dpop_supported_get
    - oidc_proto_profile_dpop_mode_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_dpop_mode_get
    - oidc_metadata_get
    - oidc_cfg_provider_cert_bound_tokens_get
    - e2e_write_file
    - oidc_cfg_provider_pushed_authorization_request_endpoint_url_get
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - getenv
    - oidc_cfg_provider_token_endpoint_url_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_mtls_aliases_from_conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1516,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1517,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1518,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1519,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1519,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1524,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:1524,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_metadata.c:1525,1
    - Dst: oidc_json_array
      Src: /src/mod_auth_openidc/test/test_metadata.c:1525,1
    - Dst: oidc_json_array_append_new
      Src: /src/mod_auth_openidc/test/test_metadata.c:1526,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1526,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_metadata.c:1527,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/test/test_metadata.c:1528,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1529,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1531,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1531,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1532,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1532,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1533,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1538,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1538,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1542,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1542,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1544,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1544,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1545,1
    - Dst: oidc_cfg_provider_dpop_supported_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1545,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1546,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1511
    functionDepth: 2
    functionLinenumber: 1511
    functionLinenumberEnd: 1547
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_proto_profile_dpop_mode_get
    - oidc_cfg_provider_dpop_supported_get
    - oidc_test_cfg_get
    - oidc_json_decode_object
    - oidc_json_encode
    - e2e_write_file
    - ck_assert_str_eq
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_json_array
    - oidc_json_string
    - getenv
    - oidc_cfg_provider_token_endpoint_url_get
    - e2e_make_metadata_dir
    - oidc_json_object_get
    - oidc_metadata_get
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_json_array_append_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_mtls_aliases_from_conf_dpop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1552,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1553,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1554,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1555,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1555,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1557,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1557,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1558,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1558,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1559,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1564,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1564,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1568,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1568,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1570,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1570,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1571,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1548
    functionDepth: 2
    functionLinenumber: 1548
    functionLinenumberEnd: 1572
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_metadata_get
    - oidc_cfg_provider_cert_bound_tokens_get
    - e2e_write_file
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - getenv
    - oidc_cfg_provider_token_endpoint_url_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_mtls_aliases_conf_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1578,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1579,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1580,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1582,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1582,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1583,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1583,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1588,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1573
    functionDepth: 2
    functionLinenumber: 1573
    functionLinenumberEnd: 1589
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_metadata_get
    - e2e_write_file
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_client_secret_expired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1594,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1595,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1596,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1598,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1598,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1599,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1599,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1604,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1604,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1605,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1590
    functionDepth: 2
    functionLinenumber: 1590
    functionLinenumberEnd: 1606
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_metadata_get
    - e2e_write_file
    - apr_psprintf
    - oidc_cfg_provider_client_id_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_client_secret_never_expires)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - issuer
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1624
    functionName: e2e_provider_metadata_for
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *e2e_provider_metadata_for(request_rec *r, const char *issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1627,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1628,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1629,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1632,1
    - Dst: oidc_cmd_provider_metadata_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1632,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1633,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1637,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1637,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1640,1
    - Dst: oidc_metadata_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1640,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1641,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1642,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:1642,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1642,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1626
    functionDepth: 2
    functionLinenumber: 1626
    functionLinenumberEnd: 1644
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cmd_get
    - oidc_cmd_provider_metadata_refresh_interval_set
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_json_object_get
    - e2e_write_file
    - oidc_metadata_provider_get
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metadata_disk_provider_refresh_within_interval_uses_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1648,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1649,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1650,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1653,1
    - Dst: oidc_cmd_provider_metadata_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1653,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1654,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:1659,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1660,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:1661,1
    - Dst: oidc_metadata_provider_file_path
      Src: /src/mod_auth_openidc/test/test_metadata.c:1664,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1665,1
    - Dst: e2e_provider_metadata_for
      Src: /src/mod_auth_openidc/test/test_metadata.c:1665,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1666,1
    - Dst: apr_file_mtime_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1666,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_metadata.c:1666,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_metadata.c:1666,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1667,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_metadata.c:1667,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1671,1
    - Dst: oidc_metadata_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1671,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1672,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1673,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:1673,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1673,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1674,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:1676,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:1677,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1680,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_metadata.c:1680,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_metadata.c:1681,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_metadata.c:1681,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_metadata.c:1681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1645
    functionDepth: 2
    functionLinenumber: 1645
    functionLinenumberEnd: 1682
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - apr_time_sec
    - apr_time_now
    - oidc_test_http_server_wait
    - oidc_metadata_provider_get
    - oidc_json_string_value
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - e2e_write_file
    - ck_assert_ptr_null
    - oidc_metadata_provider_file_path
    - ck_assert_str_eq
    - apr_stat
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_http_server_start
    - oidc_cmd_provider_metadata_refresh_interval_set
    - oidc_json_decref
    - ck_assert_int_gt
    - apr_file_mtime_set
    - e2e_make_metadata_dir
    - oidc_json_object_get
    - e2e_provider_metadata_for
    - ck_assert_int_eq
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_provider_refresh_falls_back_to_stale_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1686,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1687,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1688,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1690,1
    - Dst: oidc_cmd_provider_metadata_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1690,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1691,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:1694,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1695,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:1696,1
    - Dst: e2e_provider_metadata_for
      Src: /src/mod_auth_openidc/test/test_metadata.c:1697,1
    - Dst: oidc_metadata_provider_file_path
      Src: /src/mod_auth_openidc/test/test_metadata.c:1700,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1701,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1702,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1707,1
    - Dst: apr_file_mtime_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1707,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_metadata.c:1707,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_metadata.c:1707,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1710,1
    - Dst: oidc_metadata_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1710,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1711,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1713,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:1713,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1713,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1714,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1715,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:1717,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:1718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1719
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - apr_time_now
    - oidc_test_http_server_wait
    - oidc_metadata_provider_get
    - oidc_json_string_value
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - e2e_write_file
    - ck_assert_ptr_null
    - oidc_metadata_provider_file_path
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_http_server_start
    - oidc_cmd_provider_metadata_refresh_interval_set
    - oidc_json_decref
    - apr_file_mtime_set
    - e2e_make_metadata_dir
    - oidc_json_object_get
    - e2e_provider_metadata_for
    - apr_psprintf
    - ck_assert_int_eq
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_provider_refresh_replaces_stale_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1727,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1728,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1729,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_metadata.c:1733,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_metadata.c:1734,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1735,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1738,1
    - Dst: oidc_metadata_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1738,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1720
    functionDepth: 2
    functionLinenumber: 1720
    functionLinenumberEnd: 1740
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - ck_assert_int_gt
    - oidc_test_http_free_port
    - oidc_metadata_provider_get
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_provider_get_schemeless_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1744,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1745,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1746,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:1752,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1753,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:1754,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1755,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1765,1
    - Dst: oidc_metadata_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1765,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1766,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1767,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:1767,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1767,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1768,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:1771,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:1772,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:1772,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:1774,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1779,1
    - Dst: oidc_metadata_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1779,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1780,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1741
    functionDepth: 2
    functionLinenumber: 1741
    functionLinenumberEnd: 1782
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - oidc_test_http_server_start
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_json_object_get
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - _oidc_strstr
    - oidc_metadata_provider_get
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_provider_get_live_discovery)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1786,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1787,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1788,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1790,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1790,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1791,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1791,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1794,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1794,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1797,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1797,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1798,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1783
    functionDepth: 2
    functionLinenumber: 1783
    functionLinenumberEnd: 1799
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_metadata_get
    - oidc_cfg_provider_issuer_get
    - e2e_write_file
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_get_with_empty_conf_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1803,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1804,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1805,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1807,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1807,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1808,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1808,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1811,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1811,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1815,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1800
    functionDepth: 2
    functionLinenumber: 1800
    functionLinenumberEnd: 1816
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_metadata_get
    - e2e_write_file
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_get_with_invalid_conf_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1820,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1821,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1822,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:1828,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1829,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1832,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:1840,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1841,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1841,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1845,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1845,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1846,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1846,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1847,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1847,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:1850,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1851,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:1852,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:1852,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:1854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1817
    functionDepth: 2
    functionLinenumber: 1817
    functionLinenumberEnd: 1855
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_cfg_provider_client_secret_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_metadata_get
    - _oidc_strstr
    - e2e_write_file
    - ck_assert_msg
    - apr_psprintf
    - oidc_cfg_provider_client_id_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_dyn_registration_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1861,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1862,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:1863,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:1868,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:1869,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1871,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:1879,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1880,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1880,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:1882,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1882,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1886,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1886,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1887,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1887,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:1889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1856
    functionDepth: 2
    functionLinenumber: 1856
    functionLinenumberEnd: 1890
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_metadata_get
    - e2e_write_file
    - apr_psprintf
    - oidc_cfg_provider_client_id_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_stale_client_reregistration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1899,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1900,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:1901,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1904,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:1904,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1905,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1906,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:1908,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1937,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:1937,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1938,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1938,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1941,1
    - Dst: oidc_cfg_provider_client_jwks_uri_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1941,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1943,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1943,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1944,1
    - Dst: oidc_cfg_provider_id_token_encrypted_response_alg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1944,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1945,1
    - Dst: oidc_cfg_provider_id_token_encrypted_response_enc_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1945,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1947,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1947,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1948,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_alg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1948,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1949,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_enc_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1949,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1951,1
    - Dst: oidc_cfg_provider_scope_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1951,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1952,1
    - Dst: oidc_cfg_provider_auth_request_params_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1952,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1953,1
    - Dst: oidc_cfg_provider_logout_request_params_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1953,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1954,1
    - Dst: oidc_cfg_provider_token_endpoint_params_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1954,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1956,1
    - Dst: oidc_cfg_provider_response_mode_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1956,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1957,1
    - Dst: oidc_cfg_provider_response_type_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1957,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1959,1
    - Dst: oidc_cfg_provider_client_name_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1959,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1960,1
    - Dst: oidc_cfg_provider_client_contact_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1960,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1961,1
    - Dst: oidc_cfg_provider_registration_token_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1961,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1962,1
    - Dst: oidc_cfg_provider_registration_endpoint_json_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1962,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1964,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1964,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1965,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1965,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1966,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1966,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1891
    functionDepth: 1
    functionLinenumber: 1891
    functionLinenumberEnd: 1969
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_create
    - oidc_cfg_provider_logout_request_params_get
    - oidc_cfg_provider_token_endpoint_tls_client_key_get
    - oidc_cfg_provider_scope_get
    - oidc_cfg_provider_token_endpoint_params_get
    - oidc_cfg_provider_userinfo_signed_response_alg_get
    - oidc_test_cfg_get
    - oidc_json_decode_object
    - oidc_cfg_provider_client_name_get
    - oidc_cfg_provider_response_mode_get
    - oidc_cfg_provider_id_token_signed_response_alg_get
    - ck_assert_str_eq
    - oidc_cfg_provider_response_type_get
    - oidc_cfg_provider_client_contact_get
    - oidc_cfg_provider_id_token_encrypted_response_enc_get
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_conf_parse
    - oidc_cfg_provider_registration_endpoint_json_get
    - oidc_cfg_provider_registration_token_get
    - getenv
    - oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
    - oidc_cfg_provider_userinfo_encrypted_response_enc_get
    - oidc_cfg_provider_auth_request_params_get
    - oidc_cfg_provider_client_jwks_uri_get
    - apr_psprintf
    - oidc_cfg_provider_id_token_encrypted_response_alg_get
    - ck_assert_int_eq
    - oidc_cfg_provider_userinfo_encrypted_response_alg_get
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_conf_parse_string_fields)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1973,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1974,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:1978,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:1979,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1979,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1980,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1980,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1980,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1981,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_alg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1981,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1981,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:1983,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1988,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:1988,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1989,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1989,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1990,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1990,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1991,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_alg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1991,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:1992,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:1995,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1997,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:1997,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1998,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:1998,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:1999,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:1999,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:2000,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_alg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2000,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:2001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1970
    functionDepth: 1
    functionLinenumber: 1970
    functionLinenumberEnd: 2002
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_json_decref
    - oidc_metadata_conf_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_str_eq
    - oidc_cfg_provider_token_endpoint_auth_alg_get
    - oidc_cfg_provider_create
    - oidc_json_decode_object
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cfg_provider_token_endpoint_auth_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_conf_parse_token_endpoint_auth_alg_inherited)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2006,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2007,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2008,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2022,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:2022,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2023,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:2023,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2025,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2025,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2026,1
    - Dst: oidc_cfg_provider_validate_issuer_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2026,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2027,1
    - Dst: oidc_cfg_provider_jwks_uri_refresh_interval_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2027,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2028,1
    - Dst: oidc_cfg_provider_idtoken_iat_slack_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2028,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2029,1
    - Dst: oidc_cfg_provider_session_max_duration_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2029,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2030,1
    - Dst: oidc_cfg_provider_userinfo_refresh_interval_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2030,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2031,1
    - Dst: oidc_cfg_provider_response_require_iss_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2031,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:2033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2003
    functionDepth: 1
    functionLinenumber: 2003
    functionLinenumberEnd: 2034
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_conf_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_json_decode_object
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_cfg_provider_session_max_duration_get
    - oidc_cfg_provider_response_require_iss_get
    - oidc_cfg_provider_validate_issuer_get
    - ck_assert_int_eq
    - oidc_cfg_provider_userinfo_refresh_interval_get
    - oidc_cfg_provider_jwks_uri_refresh_interval_get
    - oidc_cfg_provider_idtoken_iat_slack_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_conf_parse_int_fields)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2038,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2039,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2040,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:2042,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2043,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:2043,1
    - Dst: oidc_cfg_provider_id_token_aud_values_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2045,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:2046,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2047,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2048,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_metadata.c:2048,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2049,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_metadata.c:2049,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:2051,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2054,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:2055,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2056,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:2056,1
    - Dst: oidc_cfg_provider_id_token_aud_values_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2057,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:2058,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2059,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2060,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_metadata.c:2060,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:2061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2035
    functionDepth: 1
    functionLinenumber: 2035
    functionLinenumberEnd: 2062
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_conf_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_cfg_provider_id_token_aud_values_get
    - APR_ARRAY_IDX
    - ck_assert_int_eq
    - ck_assert_str_eq
    - json_pack
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_conf_parse_id_token_aud_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2067,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2068,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2069,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2072,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:2072,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2079,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:2079,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2081,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:2082,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2083,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:2085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2063
    functionDepth: 1
    functionLinenumber: 2063
    functionLinenumberEnd: 2086
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_conf_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_json_decode_object
    - oidc_cfg_provider_client_keys_get
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_conf_parse_inline_keys_no_leak)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2092,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2093,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2094,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2097,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:2097,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2104,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:2104,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_keys_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2106,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:2107,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2108,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:2110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2087
    functionDepth: 1
    functionLinenumber: 2087
    functionLinenumberEnd: 2111
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_conf_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_json_decode_object
    - ck_assert_int_eq
    - oidc_cfg_provider_signed_jwks_uri_keys_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_conf_parse_signed_jwks_key_no_leak)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2115,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2116,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2117,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:2119,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2120,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:2120,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2122,1
    - Dst: oidc_cfg_provider_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2122,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2123,1
    - Dst: oidc_cfg_provider_auth_request_method_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2123,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2112
    functionDepth: 1
    functionLinenumber: 2112
    functionLinenumberEnd: 2126
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_provider_dpop_mode_get
    - oidc_json_decref
    - oidc_metadata_conf_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - ck_assert_int_eq
    - oidc_cfg_provider_auth_request_method_get
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_conf_parse_dpop_and_auth_request_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2130,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2131,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2132,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_metadata.c:2134,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2135,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/test_metadata.c:2135,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2137,1
    - Dst: oidc_cfg_provider_userinfo_token_method_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2137,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:2139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2127
    functionDepth: 1
    functionLinenumber: 2127
    functionLinenumberEnd: 2140
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_userinfo_token_method_get
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_metadata_conf_parse
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - ck_assert_int_eq
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_conf_parse_userinfo_token_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2150,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2151,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:2152,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:2157,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:2158,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2160,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:2168,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2169,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2169,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2171,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2171,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2179,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2179,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:2181,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2182,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2185,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2185,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2186,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2186,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2187,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2187,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2188,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2188,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2190,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2190,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2191,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2191,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2192,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2192,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2193,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2193,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2194,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2194,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2195,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2195,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2196,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2196,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2198,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2198,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2200,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2200,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2202,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2202,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2203,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2203,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2205,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2205,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2206,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2206,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:2209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2141
    functionDepth: 2
    functionLinenumber: 2141
    functionLinenumberEnd: 2210
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_metadata_get
    - _oidc_strstr
    - e2e_write_file
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_dyn_registration_payload_fields)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2227,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2228,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:2229,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2231,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2231,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2232,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2232,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2233,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_metadata.c:2236,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_metadata.c:2236,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2239,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2239,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2240,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2211
    functionDepth: 2
    functionLinenumber: 2211
    functionLinenumberEnd: 2241
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - apr_time_sec
    - oidc_test_cfg_get
    - apr_time_now
    - oidc_metadata_get
    - e2e_write_file
    - apr_psprintf
    - oidc_cfg_provider_client_id_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_client_secret_not_yet_expired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2249,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2250,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:2251,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2253,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2253,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2254,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2254,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2257,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2242
    functionDepth: 2
    functionLinenumber: 2242
    functionLinenumberEnd: 2258
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_metadata_get
    - e2e_write_file
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_client_without_client_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2262,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2263,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:2264,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:2269,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:2270,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2272,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:2279,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2280,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2280,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2281,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2281,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2290,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2290,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:2292,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2294,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_metadata.c:2294,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2297,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:2297,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2297,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2298,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:2298,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2298,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2300,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:2300,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2300,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2302,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:2302,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2302,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2303,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:2303,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2303,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2305,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_metadata.c:2305,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2305,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_metadata.c:2307,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:2309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2259
    functionDepth: 2
    functionLinenumber: 2259
    functionLinenumberEnd: 2310
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - oidc_test_http_server_start
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_json_decode_object
    - oidc_json_object_get
    - oidc_metadata_get
    - oidc_test_http_server_stop
    - e2e_write_file
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_dyn_registration_response_algorithms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2318,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2319,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:2320,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:2325,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:2326,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2328,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:2335,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2336,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2336,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2339,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2339,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:2340,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:2341,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:2344,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_metadata.c:2345,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_metadata.c:2346,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2347,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2347,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2348,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2358,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2358,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:2362,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2363,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2363,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2364,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2372,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2372,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2376,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2311
    functionDepth: 2
    functionLinenumber: 2311
    functionLinenumberEnd: 2377
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_test_http_free_port
    - oidc_metadata_get
    - ck_assert_int_gt
    - e2e_write_file
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_dyn_registration_failures)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2381,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2382,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:2383,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:2384,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_metadata.c:2384,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:2389,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:2390,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2392,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:2401,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2402,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2402,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2403,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2403,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metadata.c:2405,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_metadata.c:2405,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2406,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2406,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2409,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2409,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:2411,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2412,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2413,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2413,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:2416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2378
    functionDepth: 2
    functionLinenumber: 2378
    functionLinenumberEnd: 2417
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_tls_client_cert_set
    - oidc_test_http_server_wait
    - _oidc_strstr
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - e2e_write_file
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_cfg_provider_get
    - getenv
    - e2e_make_metadata_dir
    - oidc_metadata_get
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_dyn_registration_cert_bound_tokens)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2421,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2422,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:2423,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_metadata.c:2428,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metadata.c:2429,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2431,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_metadata.c:2439,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2440,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2440,1
    - Dst: e2e_write_file
      Src: /src/mod_auth_openidc/test/test_metadata.c:2442,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_metadata.c:2442,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2447,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2447,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_metadata.c:2449,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2450,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2450,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2451,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2451,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2452,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2452,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2453,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2453,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metadata.c:2455,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metadata.c:2455,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_metadata.c:2457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2418
    functionDepth: 2
    functionLinenumber: 2418
    functionLinenumberEnd: 2458
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_metadata_get
    - e2e_write_file
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_int_eq
    - _oidc_strstr
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_dyn_registration_custom_json_merge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2462,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2463,1
    - Dst: e2e_make_metadata_dir
      Src: /src/mod_auth_openidc/test/test_metadata.c:2464,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metadata.c:2468,1
    - Dst: oidc_metadata_provider_get
      Src: /src/mod_auth_openidc/test/test_metadata.c:2468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2459
    functionDepth: 2
    functionLinenumber: 2459
    functionLinenumberEnd: 2469
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_make_metadata_dir
    - oidc_test_cfg_get
    - oidc_metadata_provider_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metadata_disk_provider_get_missing_no_discovery)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2473,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_metadata.c:2474,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2475,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2476,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2477,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2478,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2479,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2481,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_metadata.c:2482,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2483,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2484,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2485,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2486,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2487,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2488,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2489,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2490,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2491,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2492,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2493,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2494,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2495,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2496,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2497,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2498,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2500,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_metadata.c:2501,1
    - Dst: tcase_set_timeout
      Src: /src/mod_auth_openidc/test/test_metadata.c:2502,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2503,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2504,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2505,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2506,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2507,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2508,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2509,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2510,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2511,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2512,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2513,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2514,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2515,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2516,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2517,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2518,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2520,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_metadata.c:2521,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2522,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2523,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2524,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2525,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2526,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2527,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2528,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2529,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2531,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_metadata.c:2532,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2533,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2534,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2535,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2536,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2537,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2538,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2539,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2540,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2541,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2542,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2543,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2544,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2545,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2546,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2547,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2548,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2549,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2550,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2551,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2552,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2553,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2554,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2555,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2556,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2557,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2558,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2559,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2560,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2561,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2562,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2563,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2564,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metadata.c:2565,1
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_metadata.c:2567,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_metadata.c:2568,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_metadata.c:2569,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_metadata.c:2570,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_metadata.c:2571,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_metadata.c:2572,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_metadata.c:2574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2470
    functionDepth: 1
    functionLinenumber: 2470
    functionLinenumberEnd: 2575
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_metadata.c
    functionUses: 0
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_set_timeout
    - tcase_add_checked_fixture
    - tcase_add_test
    - suite_add_tcase
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:64,1
    - Dst: oidc_cmd_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:67,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:68,1
    - Dst: oidc_cmd_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:71,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:72,1
    - Dst: oidc_cmd_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:75,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:76,1
    - Dst: oidc_cmd_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:79,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:80,1
    - Dst: oidc_cmd_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:84,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:85,1
    - Dst: oidc_cmd_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:88,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 90
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - ck_assert_msg
    - oidc_cmd_provider_token_endpoint_auth_set
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cmd_provider_token_endpoint_auth_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:94,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:95,1
    - Dst: oidc_cmd_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:101,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:102,1
    - Dst: oidc_cmd_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:103,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:104,1
    - Dst: oidc_cmd_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:105,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 107
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_cmd_get
    - ck_assert_msg
    - oidc_cmd_provider_token_endpoint_auth_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_token_endpoint_auth_no_private_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:113,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:114,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:116,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:117,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:117,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:119,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:120,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:120,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:122,1
    - Dst: oidc_cfg_provider_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:123,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:124,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:124,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:126,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_alg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:126,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:129,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:130,1
    - Dst: oidc_cfg_provider_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:131,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:132,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:132,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:133,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_alg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 134
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_merge
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - ck_assert_str_eq
    - oidc_cfg_provider_token_endpoint_auth_alg_get
    - oidc_test_pool_get
    - ck_assert_ptr_null
    - oidc_cfg_provider_token_endpoint_auth_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_provider_merge_endpoint_auth_pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:146,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:147,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:150,1
    - Dst: oidc_cfg_cache_memcache_ttl_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:152,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:153,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cfg.c:153,1
    - Dst: oidc_cmd_cache_memcache_ttl_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:156,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:157,1
    - Dst: oidc_cmd_cache_memcache_ttl_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:160,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:161,1
    - Dst: oidc_cmd_cache_memcache_ttl_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:164,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:165,1
    - Dst: oidc_cmd_cache_memcache_ttl_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:168,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:169,1
    - Dst: oidc_cfg_cache_memcache_ttl_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:172,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:173,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cfg.c:173,1
    - Dst: oidc_cmd_cache_memcache_ttl_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:176,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:177,1
    - Dst: AP_MODULE_MAGIC_AT_LEAST
      Src: /src/mod_auth_openidc/test/test_cfg.c:179,1
    - Dst: oidc_cmd_cache_memcache_ttl_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:184,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:185,1
    - Dst: oidc_cfg_cache_memcache_ttl_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:187,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:188,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cfg.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 189
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - AP_MODULE_MAGIC_AT_LEAST
    - oidc_cmd_cache_memcache_ttl_set
    - oidc_test_cfg_get
    - oidc_cfg_cache_memcache_ttl_get
    - ck_assert_msg
    - apr_time_from_sec
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cfg_cache_connections_ttl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:195,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:196,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:199,1
    - Dst: oidc_cfg_cookie_same_site_session_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:199,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:200,1
    - Dst: oidc_cfg_cookie_same_site_state_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:200,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:201,1
    - Dst: oidc_cfg_cookie_same_site_discovery_csrf_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:201,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:203,1
    - Dst: oidc_cmd_cookie_same_site_session_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:203,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:204,1
    - Dst: oidc_cfg_cookie_same_site_session_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:204,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:205,1
    - Dst: oidc_cfg_cookie_same_site_state_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:205,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:206,1
    - Dst: oidc_cfg_cookie_same_site_discovery_csrf_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:206,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:209,1
    - Dst: oidc_cmd_cookie_same_site_session_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:209,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:210,1
    - Dst: oidc_cfg_cookie_same_site_session_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:210,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:211,1
    - Dst: oidc_cfg_cookie_same_site_state_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:211,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:212,1
    - Dst: oidc_cfg_cookie_same_site_discovery_csrf_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:212,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:214,1
    - Dst: oidc_cmd_cookie_same_site_session_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:214,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:215,1
    - Dst: oidc_cfg_cookie_same_site_session_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:215,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:216,1
    - Dst: oidc_cfg_cookie_same_site_state_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:216,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:217,1
    - Dst: oidc_cfg_cookie_same_site_discovery_csrf_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:217,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:219,1
    - Dst: oidc_cmd_cookie_same_site_session_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:219,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:220,1
    - Dst: oidc_cfg_cookie_same_site_session_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:220,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:221,1
    - Dst: oidc_cfg_cookie_same_site_state_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:221,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:222,1
    - Dst: oidc_cfg_cookie_same_site_discovery_csrf_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:222,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:224,1
    - Dst: oidc_cmd_cookie_same_site_session_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:224,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:225,1
    - Dst: oidc_cmd_cookie_same_site_session_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:225,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:226,1
    - Dst: oidc_cmd_cookie_same_site_session_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:226,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:228,1
    - Dst: oidc_cmd_cookie_same_site_session_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:228,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:229,1
    - Dst: oidc_cfg_cookie_same_site_session_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:229,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:230,1
    - Dst: oidc_cfg_cookie_same_site_state_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:230,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:231,1
    - Dst: oidc_cfg_cookie_same_site_discovery_csrf_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:231,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:233,1
    - Dst: oidc_cmd_cookie_same_site_session_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:233,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:234,1
    - Dst: oidc_cfg_cookie_same_site_session_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:234,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:235,1
    - Dst: oidc_cfg_cookie_same_site_state_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:235,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:236,1
    - Dst: oidc_cfg_cookie_same_site_discovery_csrf_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:236,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:238,1
    - Dst: oidc_cmd_cookie_same_site_session_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:238,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:239,1
    - Dst: oidc_cfg_cookie_same_site_session_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:239,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:240,1
    - Dst: oidc_cfg_cookie_same_site_state_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:240,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:241,1
    - Dst: oidc_cfg_cookie_same_site_discovery_csrf_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 242
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_cookie_same_site_session_get
    - oidc_cmd_cookie_same_site_session_set
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_cookie_same_site_state_get
    - oidc_cfg_cookie_same_site_discovery_csrf_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_cookie_same_site)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:246,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:247,1
    - Dst: oidc_cfg_oauth_verify_shared_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:252,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:253,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:255,1
    - Dst: oidc_cmd_oauth_verify_shared_keys_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:255,1
    - Dst: oidc_cfg_oauth_verify_shared_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:256,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:257,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:258,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_cfg.c:258,1
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/test/test_cfg.c:259,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/test/test_cfg.c:260,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:261,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:262,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:263,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:265,1
    - Dst: oidc_cmd_oauth_verify_shared_keys_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:265,1
    - Dst: oidc_cfg_oauth_verify_shared_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:266,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:267,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:268,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_cfg.c:268,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:269,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:270,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:271,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:272,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:273,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_cfg.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 276
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - apr_hash_first
    - oidc_test_cmd_get
    - oidc_cmd_oauth_verify_shared_keys_set
    - apr_hash_this
    - oidc_test_cfg_get
    - oidc_jwk_list_destroy_hash
    - apr_hash_get
    - apr_hash_count
    - oidc_cfg_oauth_verify_shared_keys_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_oauth_verify_shared_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:280,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:281,1
    - Dst: oidc_cfg_oauth_decrypt_shared_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:286,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:287,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:289,1
    - Dst: oidc_cmd_oauth_decrypt_shared_keys_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:289,1
    - Dst: oidc_cfg_oauth_decrypt_shared_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:290,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:291,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:292,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_cfg.c:292,1
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/test/test_cfg.c:293,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/test/test_cfg.c:294,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:295,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:296,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:297,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:299,1
    - Dst: oidc_cmd_oauth_decrypt_shared_keys_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:299,1
    - Dst: oidc_cfg_oauth_decrypt_shared_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:300,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:301,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:302,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_cfg.c:302,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:303,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:304,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:305,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:306,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:307,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_cfg.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 310
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - apr_hash_first
    - oidc_test_cmd_get
    - apr_hash_this
    - oidc_test_cfg_get
    - oidc_cmd_oauth_decrypt_shared_keys_set
    - oidc_cfg_oauth_decrypt_shared_keys_get
    - apr_hash_get
    - apr_hash_count
    - oidc_jwk_list_destroy_hash
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_oauth_decrypt_shared_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:324,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:325,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:326,1
    - Dst: oidc_cmd_filter_claims_expr_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:326,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:327,1
    - Dst: oidc_cfg_filter_claims_expr_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - oidc_cfg_filter_claims_expr_get
    - oidc_cmd_filter_claims_expr_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cmd_filter_claims_expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:332,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:333,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:334,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:335,1
    - Dst: oidc_cmd_dir_userinfo_claims_expr_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:335,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:336,1
    - Dst: oidc_cfg_dir_userinfo_claims_expr_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 337
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_dir_userinfo_claims_expr_get
    - ck_assert_ptr_null
    - oidc_cmd_dir_userinfo_claims_expr_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_userinfo_claims_expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:343,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:344,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:345,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:349,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:349,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cfg.c:349,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:350,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:350,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cfg.c:350,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:351,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:351,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cfg.c:351,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:352,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:352,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cfg.c:352,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:354,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:354,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cfg.c:354,1
    - Dst: oidc_cfg_dir_pass_userinfo_as_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:355,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:356,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_cfg.c:357,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:360,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:360,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cfg.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 361
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_dir_pass_userinfo_as_get
    - ck_assert_int_gt
    - oidc_cmd_dir_pass_userinfo_as_set
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_pass_userinfo_as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:365,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:366,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:367,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:370,1
    - Dst: oidc_cmd_dir_pass_claims_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:370,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:371,1
    - Dst: oidc_cfg_dir_pass_info_in_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:371,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:373,1
    - Dst: oidc_cmd_dir_pass_claims_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:373,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:374,1
    - Dst: oidc_cfg_dir_pass_info_in_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:374,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:376,1
    - Dst: oidc_cmd_dir_pass_claims_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:376,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:378,1
    - Dst: oidc_cfg_dir_pass_info_in_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:378,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:380,1
    - Dst: oidc_cmd_dir_pass_claims_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:380,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:381,1
    - Dst: oidc_cfg_dir_pass_info_in_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:381,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:384,1
    - Dst: oidc_cmd_dir_pass_claims_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:384,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:385,1
    - Dst: oidc_cfg_dir_pass_info_encoding_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:385,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:387,1
    - Dst: oidc_cmd_dir_pass_claims_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:387,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:388,1
    - Dst: oidc_cfg_dir_pass_info_encoding_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:388,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:391,1
    - Dst: oidc_cmd_dir_pass_claims_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:391,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:392,1
    - Dst: oidc_cmd_dir_pass_claims_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 393
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - ck_assert_ptr_null
    - oidc_cfg_dir_pass_info_in_get
    - ck_assert_int_eq
    - oidc_cfg_dir_pass_info_encoding_get
    - oidc_cmd_dir_pass_claims_as_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_pass_claims_as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:397,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:398,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:399,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:402,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:402,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:403,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:403,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:404,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:404,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:405,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:405,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:407,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:407,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:408,1
    - Dst: oidc_cfg_dir_accept_token_in_option_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:408,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:411,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:411,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:412,1
    - Dst: oidc_cfg_dir_accept_token_in_option_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:412,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:416,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 417
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_dir_accept_token_in_option_get
    - oidc_cmd_dir_accept_oauth_token_in_set
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_accept_oauth_token_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:427,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:428,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:429,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:431,1
    - Dst: oidc_cmd_provider_response_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:431,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:432,1
    - Dst: oidc_cfg_provider_response_type_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:432,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:433,1
    - Dst: oidc_cmd_provider_response_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:433,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:434,1
    - Dst: oidc_cfg_provider_response_type_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:434,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:435,1
    - Dst: oidc_cmd_provider_response_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:435,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:437,1
    - Dst: oidc_cmd_provider_response_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 438
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_ptr_null
    - oidc_cfg_provider_response_type_get
    - ck_assert_str_eq
    - oidc_cmd_provider_response_type_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_response_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:442,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:443,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:444,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:447,1
    - Dst: oidc_cmd_provider_session_max_duration_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:447,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:448,1
    - Dst: oidc_cfg_provider_session_max_duration_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:448,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:450,1
    - Dst: oidc_cmd_provider_session_max_duration_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:450,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:451,1
    - Dst: oidc_cfg_provider_session_max_duration_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:451,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:454,1
    - Dst: oidc_cmd_provider_session_max_duration_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:454,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:456,1
    - Dst: oidc_cmd_provider_session_max_duration_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:456,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:458,1
    - Dst: oidc_cmd_provider_session_max_duration_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 459
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_session_max_duration_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_provider_session_max_duration_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_session_max_duration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:463,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:464,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:465,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:467,1
    - Dst: oidc_cmd_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:467,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:468,1
    - Dst: oidc_cfg_provider_scope_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:468,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:469,1
    - Dst: oidc_cmd_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:469,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:470,1
    - Dst: oidc_cfg_provider_scope_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cfg_provider_scope_get
    - oidc_cmd_provider_scope_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:475,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:476,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:477,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:479,1
    - Dst: oidc_cmd_provider_dpop_mode_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:479,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:480,1
    - Dst: oidc_cfg_provider_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:480,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:481,1
    - Dst: oidc_cmd_provider_dpop_mode_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:481,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:482,1
    - Dst: oidc_cfg_provider_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:482,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:483,1
    - Dst: oidc_cmd_provider_dpop_mode_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:483,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:484,1
    - Dst: oidc_cfg_provider_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:484,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:486,1
    - Dst: oidc_cmd_provider_dpop_mode_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 487
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cfg_provider_dpop_mode_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_ptr_nonnull
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_provider_dpop_mode_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_dpop_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:491,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:492,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:493,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:496,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:496,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:498,1
    - Dst: oidc_cmd_provider_cert_bound_tokens_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:498,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:499,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:499,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:500,1
    - Dst: oidc_cmd_provider_cert_bound_tokens_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:500,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:501,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:501,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:502,1
    - Dst: oidc_cmd_provider_cert_bound_tokens_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:502,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:503,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:503,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:506,1
    - Dst: oidc_cmd_provider_cert_bound_tokens_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:506,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:507,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 508
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_cert_bound_tokens_get
    - oidc_cmd_provider_cert_bound_tokens_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_cert_bound_tokens)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:512,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:513,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:514,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:516,1
    - Dst: oidc_cmd_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:516,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:517,1
    - Dst: oidc_cfg_provider_pkce_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:517,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:519,1
    - Dst: oidc_cmd_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:519,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:520,1
    - Dst: oidc_cfg_provider_pkce_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:520,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:522,1
    - Dst: oidc_cmd_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:522,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:523,1
    - Dst: oidc_cfg_provider_pkce_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:523,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:525,1
    - Dst: oidc_cmd_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 526
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cfg_provider_pkce_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_ptr_nonnull
    - oidc_cmd_provider_pkce_set
    - ck_assert_ptr_null
    - ck_assert_ptr_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_pkce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:530,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:531,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:534,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:535,1
    - Dst: oidc_cmd_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:535,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:536,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:536,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:538,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:539,1
    - Dst: oidc_cmd_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:539,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:540,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:540,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:542,1
    - Dst: oidc_cmd_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:542,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:543,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:543,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:545,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:546,1
    - Dst: oidc_cmd_provider_registration_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:546,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:547,1
    - Dst: oidc_cfg_provider_registration_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:547,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:549,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:550,1
    - Dst: oidc_cmd_provider_end_session_endpoint_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:550,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:551,1
    - Dst: oidc_cfg_provider_end_session_endpoint_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:551,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:553,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:554,1
    - Dst: oidc_cmd_provider_check_session_iframe_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:554,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:555,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:555,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:557,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:558,1
    - Dst: oidc_cmd_provider_client_jwks_uri_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:558,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:559,1
    - Dst: oidc_cfg_provider_client_jwks_uri_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:559,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:561,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:562,1
    - Dst: oidc_cmd_provider_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:562,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:563,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:563,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:566,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:567,1
    - Dst: oidc_cmd_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 568
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_provider_end_session_endpoint_set
    - oidc_cmd_provider_metadata_url_set
    - oidc_cfg_provider_check_session_iframe_get
    - oidc_cmd_provider_client_jwks_uri_set
    - oidc_cfg_provider_end_session_endpoint_get
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - oidc_cmd_provider_userinfo_endpoint_url_set
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cmd_provider_token_endpoint_url_set
    - oidc_cmd_provider_registration_endpoint_url_set
    - ck_assert_ptr_nonnull
    - oidc_test_cmd_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_registration_endpoint_url_get
    - oidc_cmd_provider_check_session_iframe_set
    - oidc_cfg_provider_token_endpoint_url_get
    - oidc_cfg_provider_metadata_url_get
    - oidc_cfg_provider_client_jwks_uri_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_url_setters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:572,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:573,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:575,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:576,1
    - Dst: oidc_cmd_provider_auth_request_params_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:576,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:577,1
    - Dst: oidc_cfg_provider_auth_request_params_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:577,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:579,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:580,1
    - Dst: oidc_cmd_provider_token_endpoint_params_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:580,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:581,1
    - Dst: oidc_cfg_provider_token_endpoint_params_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:581,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:583,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:584,1
    - Dst: oidc_cmd_provider_client_name_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:584,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:585,1
    - Dst: oidc_cfg_provider_client_name_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:585,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:587,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:588,1
    - Dst: oidc_cmd_provider_client_contact_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:588,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:589,1
    - Dst: oidc_cfg_provider_client_contact_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:589,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:591,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:592,1
    - Dst: oidc_cmd_provider_request_object_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:592,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:593,1
    - Dst: oidc_cfg_provider_request_object_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 594
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_provider_client_name_set
    - oidc_test_cmd_get
    - oidc_cfg_provider_request_object_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_auth_request_params_get
    - oidc_cmd_provider_request_object_set
    - oidc_cfg_provider_client_name_get
    - ck_assert_ptr_null
    - oidc_cmd_provider_client_contact_set
    - oidc_cfg_provider_client_contact_get
    - ck_assert_str_eq
    - oidc_cmd_provider_auth_request_params_set
    - oidc_cfg_provider_token_endpoint_params_get
    - oidc_cmd_provider_token_endpoint_params_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_string_setters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:598,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:599,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:601,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:602,1
    - Dst: oidc_cmd_provider_id_token_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:602,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:603,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:603,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:604,1
    - Dst: oidc_cmd_provider_id_token_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:604,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:605,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:605,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:606,1
    - Dst: oidc_cmd_provider_id_token_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:606,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:608,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:609,1
    - Dst: oidc_cmd_provider_userinfo_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:609,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:610,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:610,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:611,1
    - Dst: oidc_cmd_provider_userinfo_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 612
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_provider_id_token_signed_response_alg_set
    - oidc_test_cmd_get
    - oidc_cmd_provider_userinfo_signed_response_alg_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_ptr_null
    - oidc_cfg_provider_id_token_signed_response_alg_get
    - ck_assert_str_eq
    - oidc_cfg_provider_userinfo_signed_response_alg_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_signed_response_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:616,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:617,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:619,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:620,1
    - Dst: oidc_cmd_provider_id_token_encrypted_response_alg_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:620,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:621,1
    - Dst: oidc_cfg_provider_id_token_encrypted_response_alg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:621,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:622,1
    - Dst: oidc_cmd_provider_id_token_encrypted_response_alg_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:622,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:624,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:625,1
    - Dst: oidc_cmd_provider_id_token_encrypted_response_enc_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:625,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:626,1
    - Dst: oidc_cfg_provider_id_token_encrypted_response_enc_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:626,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:627,1
    - Dst: oidc_cmd_provider_id_token_encrypted_response_enc_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:627,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:629,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:630,1
    - Dst: oidc_cmd_provider_userinfo_encrypted_response_alg_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:630,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:631,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_alg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:631,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:633,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:634,1
    - Dst: oidc_cmd_provider_userinfo_encrypted_response_enc_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:634,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:635,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_enc_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 636
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cmd_provider_id_token_encrypted_response_enc_set
    - oidc_cfg_provider_userinfo_encrypted_response_enc_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_str_eq
    - oidc_cmd_provider_userinfo_encrypted_response_alg_set
    - ck_assert_ptr_null
    - oidc_cfg_provider_id_token_encrypted_response_alg_get
    - oidc_cfg_provider_userinfo_encrypted_response_alg_get
    - oidc_cmd_provider_id_token_encrypted_response_alg_set
    - oidc_cmd_provider_userinfo_encrypted_response_enc_set
    - oidc_cfg_provider_id_token_encrypted_response_enc_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_encrypted_response_alg_enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:640,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:641,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:643,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:644,1
    - Dst: oidc_cmd_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:644,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:645,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:645,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:646,1
    - Dst: oidc_cmd_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:646,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:647,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:647,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:648,1
    - Dst: oidc_cmd_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:648,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:650,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:651,1
    - Dst: oidc_cmd_provider_validate_issuer_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:651,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:652,1
    - Dst: oidc_cfg_provider_validate_issuer_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 653
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_provider_ssl_validate_server_set
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_cmd_provider_validate_issuer_set
    - ck_assert_ptr_null
    - oidc_cfg_provider_validate_issuer_get
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_bool_setters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:657,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:658,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:660,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:661,1
    - Dst: oidc_cmd_provider_jwks_uri_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:661,1
    - Dst: oidc_cfg_provider_jwks_uri_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:662,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:663,1
    - Dst: oidc_cfg_jwks_uri_refresh_interval_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:663,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:665,1
    - Dst: oidc_cmd_provider_jwks_uri_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:665,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:666,1
    - Dst: oidc_cmd_provider_jwks_uri_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:666,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:668,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:669,1
    - Dst: oidc_cmd_provider_userinfo_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:669,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:670,1
    - Dst: oidc_cfg_provider_userinfo_refresh_interval_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 671
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_jwks_uri_get
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cmd_provider_jwks_uri_refresh_interval_set
    - ck_assert_ptr_null
    - oidc_cfg_jwks_uri_refresh_interval_get
    - ck_assert_int_eq
    - oidc_cmd_provider_userinfo_refresh_interval_set
    - oidc_cfg_provider_userinfo_refresh_interval_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_int_setters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:675,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:676,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:678,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:679,1
    - Dst: oidc_cmd_provider_userinfo_token_method_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:679,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:680,1
    - Dst: oidc_cfg_provider_userinfo_token_method_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:680,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:681,1
    - Dst: oidc_cmd_provider_userinfo_token_method_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:681,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:682,1
    - Dst: oidc_cfg_provider_userinfo_token_method_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:682,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:683,1
    - Dst: oidc_cmd_provider_userinfo_token_method_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 684
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_userinfo_token_method_get
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cmd_provider_userinfo_token_method_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_userinfo_token_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:688,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:689,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:691,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:692,1
    - Dst: oidc_cmd_provider_auth_request_method_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:692,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:693,1
    - Dst: oidc_cfg_provider_auth_request_method_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:693,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:694,1
    - Dst: oidc_cmd_provider_auth_request_method_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:694,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:695,1
    - Dst: oidc_cfg_provider_auth_request_method_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:695,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:696,1
    - Dst: oidc_cmd_provider_auth_request_method_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:696,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:697,1
    - Dst: oidc_cfg_provider_auth_request_method_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:697,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:698,1
    - Dst: oidc_cmd_provider_auth_request_method_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 699
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cmd_provider_auth_request_method_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cfg_provider_auth_request_method_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_auth_request_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:703,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:704,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:706,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:707,1
    - Dst: oidc_cmd_provider_profile_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:707,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:708,1
    - Dst: oidc_cfg_provider_profile_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:708,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:709,1
    - Dst: oidc_cmd_provider_profile_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:709,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:710,1
    - Dst: oidc_cfg_provider_profile_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:710,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:711,1
    - Dst: oidc_cmd_provider_profile_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 712
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cfg_provider_profile_get
    - oidc_cmd_provider_profile_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_profile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:716,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:717,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:719,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:720,1
    - Dst: oidc_cmd_provider_response_mode_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:720,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:721,1
    - Dst: oidc_cfg_provider_response_mode_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:721,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:722,1
    - Dst: oidc_cmd_provider_response_mode_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:722,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:723,1
    - Dst: oidc_cfg_provider_response_mode_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:723,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:724,1
    - Dst: oidc_cmd_provider_response_mode_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:724,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:725,1
    - Dst: oidc_cfg_provider_response_mode_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:725,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:726,1
    - Dst: oidc_cmd_provider_response_mode_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 727
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cmd_provider_response_mode_set
    - ck_assert_ptr_null
    - oidc_cfg_provider_response_mode_get
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_response_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:731,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:732,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:733,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:735,1
    - Dst: oidc_cmd_provider_idtoken_iat_slack_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:735,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:736,1
    - Dst: oidc_cfg_provider_idtoken_iat_slack_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:736,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:738,1
    - Dst: oidc_cmd_provider_idtoken_iat_slack_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 739
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_ptr_null
    - oidc_cmd_provider_idtoken_iat_slack_set
    - ck_assert_int_eq
    - oidc_cfg_provider_idtoken_iat_slack_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_idtoken_iat_slack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:748,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:749,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:751,1
    - Dst: oidc_cmd_cache_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:751,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:752,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:753,1
    - Dst: oidc_cmd_cache_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:753,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:754,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:756,1
    - Dst: oidc_cmd_cache_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:756,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:757,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:760,1
    - Dst: oidc_cmd_cache_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:760,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:761,1
    - Dst: oidc_cmd_cache_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:764,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:765,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:766,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_cfg.c:766,1
    - Dst: oidc_cache_backend_names
      Src: /src/mod_auth_openidc/test/test_cfg.c:770,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:771,1
    - Dst: oidc_cache_backend_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:774,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cfg.c:775,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:776,1
    - Dst: ck_assert_int_ge
      Src: /src/mod_auth_openidc/test/test_cfg.c:779,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:780,1
    - Dst: oidc_cache_backend_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:780,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:784,1
    - Dst: oidc_cmd_cache_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 785
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_cache_type_set
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - oidc_cache_backend_names
    - ck_assert_str_eq
    - oidc_cache_backend_get
    - ck_assert_msg
    - ck_assert_ptr_null
    - _oidc_strstr
    - ck_assert_int_ge
    - ck_assert_ptr_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_cache_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:789,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:790,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:793,1
    - Dst: oidc_cmd_cache_shm_entry_size_max_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:793,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:794,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:795,1
    - Dst: oidc_cfg_cache_shm_entry_size_max_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:795,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:798,1
    - Dst: oidc_cmd_cache_shm_entry_size_max_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:798,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:801,1
    - Dst: oidc_cmd_cache_shm_entry_size_max_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:801,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:802,1
    - Dst: oidc_cmd_cache_shm_entry_size_max_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:802,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:803,1
    - Dst: oidc_cmd_cache_shm_entry_size_max_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 804
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cmd_cache_shm_entry_size_max_set
    - oidc_test_cfg_get
    - oidc_cfg_cache_shm_entry_size_max_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_cache_shm_entry_size_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:808,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:809,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:812,1
    - Dst: oidc_cmd_cache_file_dir_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:812,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:813,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:816,1
    - Dst: oidc_cmd_cache_file_dir_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 817
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cmd_cache_file_dir_set
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_cache_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:821,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:822,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:824,1
    - Dst: oidc_cmd_session_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:824,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:825,1
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:825,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:827,1
    - Dst: oidc_cmd_session_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:827,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:828,1
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:828,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:831,1
    - Dst: oidc_cmd_session_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:831,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:832,1
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:832,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:835,1
    - Dst: oidc_cmd_session_type_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 836
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_session_type_get
    - oidc_cmd_session_type_set
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_session_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:842,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:845,1
    - Dst: oidc_cfg_parse_is_valid_url
      Src: /src/mod_auth_openidc/test/test_cfg.c:845,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:847,1
    - Dst: oidc_cfg_parse_is_valid_url
      Src: /src/mod_auth_openidc/test/test_cfg.c:847,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:849,1
    - Dst: oidc_cfg_parse_is_valid_url
      Src: /src/mod_auth_openidc/test/test_cfg.c:849,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:850,1
    - Dst: oidc_cfg_parse_is_valid_url
      Src: /src/mod_auth_openidc/test/test_cfg.c:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 851
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_is_valid_url
    - ck_assert_ptr_nonnull
    - oidc_test_pool_get
    - ck_assert_ptr_null
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_parse_is_valid_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:855,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:858,1
    - Dst: oidc_cfg_parse_action_on_error_refresh_as
      Src: /src/mod_auth_openidc/test/test_cfg.c:858,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:859,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:861,1
    - Dst: oidc_cfg_parse_action_on_error_refresh_as
      Src: /src/mod_auth_openidc/test/test_cfg.c:861,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:862,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:864,1
    - Dst: oidc_cfg_parse_action_on_error_refresh_as
      Src: /src/mod_auth_openidc/test/test_cfg.c:864,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:865,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:867,1
    - Dst: oidc_cfg_parse_action_on_error_refresh_as
      Src: /src/mod_auth_openidc/test/test_cfg.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 868
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_pool_get
    - oidc_cfg_parse_action_on_error_refresh_as
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_parse_action_on_error_refresh_as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:872,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:874,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:874,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:877,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:878,1
    - Dst: oidc_cfg_parse_public_key_files
      Src: /src/mod_auth_openidc/test/test_cfg.c:878,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:879,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:880,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:883,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:884,1
    - Dst: oidc_cfg_parse_public_key_files
      Src: /src/mod_auth_openidc/test/test_cfg.c:884,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:885,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:888,1
    - Dst: oidc_cfg_parse_public_key_files
      Src: /src/mod_auth_openidc/test/test_cfg.c:888,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_cfg.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 891
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_public_key_files
    - oidc_test_pool_get
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_jwk_list_destroy
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_parse_public_key_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:895,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:896,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:896,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:902,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:903,1
    - Dst: oidc_cfg_parse_public_key_files
      Src: /src/mod_auth_openidc/test/test_cfg.c:903,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:904,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:905,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:906,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:907,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:908,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:910,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test_cfg.c:910,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:911,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_cfg.c:911,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_cfg.c:912,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:916,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:917,1
    - Dst: oidc_cfg_parse_public_key_files
      Src: /src/mod_auth_openidc/test/test_cfg.c:917,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:918,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:919,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:919,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:920,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:920,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:921,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:921,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:922,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:922,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_cfg.c:923,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:927,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:928,1
    - Dst: oidc_cfg_parse_private_key_files
      Src: /src/mod_auth_openidc/test/test_cfg.c:928,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:929,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:930,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:930,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:931,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:931,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_cfg.c:932,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:938,1
    - Dst: oidc_cfg_parse_public_key_files
      Src: /src/mod_auth_openidc/test/test_cfg.c:939,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:939,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:940,1
    - Dst: oidc_cfg_parse_private_key_files
      Src: /src/mod_auth_openidc/test/test_cfg.c:940,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:941,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:942,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:943,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:944,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:944,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:944,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:945,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:945,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:945,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_cfg.c:946,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_cfg.c:947,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:951,1
    - Dst: oidc_cfg_parse_public_key_files
      Src: /src/mod_auth_openidc/test/test_cfg.c:952,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:952,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_cfg.c:953,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:958,1
    - Dst: oidc_cfg_parse_public_key_files
      Src: /src/mod_auth_openidc/test/test_cfg.c:959,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:959,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:960,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:961,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:961,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:962,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:962,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_cfg.c:963,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:968,1
    - Dst: oidc_cfg_parse_public_key_files
      Src: /src/mod_auth_openidc/test/test_cfg.c:969,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:969,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:970,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:971,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:971,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:972,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_cfg.c:972,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/test_cfg.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 974
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_to_json
    - oidc_cfg_parse_public_key_files
    - APR_ARRAY_IDX
    - oidc_test_pool_get
    - _oidc_strstr
    - oidc_cfg_parse_private_key_files
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_jwk_list_destroy
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_parse_key_files_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:978,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:984,1
    - Dst: oidc_parse_remote_user_claim
      Src: /src/mod_auth_openidc/test/test_cfg.c:984,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:985,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:986,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:987,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:989,1
    - Dst: oidc_parse_remote_user_claim
      Src: /src/mod_auth_openidc/test/test_cfg.c:989,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:990,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:991,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 993
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_parse_remote_user_claim
    - ck_assert_str_eq
    - oidc_test_pool_get
    - ck_assert_ptr_null
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_parse_remote_user_claim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:997,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1005,1
    - Dst: oidc_cfg_parse_http_timeout
      Src: /src/mod_auth_openidc/test/test_cfg.c:1005,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1006,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1007,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1008,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1009,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1013,1
    - Dst: oidc_cfg_parse_http_timeout
      Src: /src/mod_auth_openidc/test/test_cfg.c:1013,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1014,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1015,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1020,1
    - Dst: oidc_cfg_parse_http_timeout
      Src: /src/mod_auth_openidc/test/test_cfg.c:1020,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1021,1
    - Dst: oidc_cfg_parse_http_timeout
      Src: /src/mod_auth_openidc/test/test_cfg.c:1021,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1022,1
    - Dst: oidc_cfg_parse_http_timeout
      Src: /src/mod_auth_openidc/test/test_cfg.c:1022,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1024
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_http_timeout
    - oidc_test_pool_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_parse_http_timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1029,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1032,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/test/test_cfg.c:1032,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1033,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1034,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/test/test_cfg.c:1034,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1035,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1037,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/test/test_cfg.c:1037,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1038,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/test/test_cfg.c:1038,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1039,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/test/test_cfg.c:1039,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1040,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/test/test_cfg.c:1040,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1043,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/test/test_cfg.c:1043,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1044,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/test/test_cfg.c:1044,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1045,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/test/test_cfg.c:1045,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1046,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/test/test_cfg.c:1046,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1047,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/test/test_cfg.c:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1048
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - _oidc_str_to_int
    - oidc_test_pool_get
    - oidc_cfg_parse_int
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_parse_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1056,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1057,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1059,1
    - Dst: oidc_cmd_crypto_passphrase_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1059,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1060,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1060,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1062,1
    - Dst: oidc_cmd_crypto_passphrase_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1062,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1063,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1063,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1064,1
    - Dst: oidc_cfg_crypto_passphrase_secret2_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1064,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1067,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1068,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1069
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_crypto_passphrase_secret2_get
    - oidc_cfg_crypto_passphrase_secret1_set
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cfg_crypto_passphrase_secret1_get
    - oidc_cmd_crypto_passphrase_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_crypto_passphrase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1074,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1075,1
    - Dst: oidc_test_exec_line_prime
      Src: /src/mod_auth_openidc/test/test_cfg.c:1079,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1080,1
    - Dst: oidc_cmd_crypto_passphrase_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1080,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1081,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1081,1
    - Dst: oidc_test_exec_line_prime
      Src: /src/mod_auth_openidc/test/test_cfg.c:1084,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1085,1
    - Dst: oidc_cmd_crypto_passphrase_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1085,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1086,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1086,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1087,1
    - Dst: oidc_cfg_crypto_passphrase_secret2_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1087,1
    - Dst: oidc_test_exec_line_prime
      Src: /src/mod_auth_openidc/test/test_cfg.c:1091,1
    - Dst: oidc_cmd_crypto_passphrase_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1092,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1093,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1094,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_cfg.c:1094,1
    - Dst: oidc_test_exec_line_prime
      Src: /src/mod_auth_openidc/test/test_cfg.c:1097,1
    - Dst: oidc_cmd_crypto_passphrase_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1098,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1099,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1100,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_cfg.c:1100,1
    - Dst: oidc_cmd_crypto_passphrase_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1107,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1108,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1109,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_cfg.c:1109,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1113,1
    - Dst: oidc_cmd_crypto_passphrase_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1113,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1114,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1115
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_exec_line_prime
    - oidc_test_cfg_get
    - _oidc_strstr
    - oidc_cfg_crypto_passphrase_secret2_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cfg_crypto_passphrase_secret1_get
    - oidc_cmd_crypto_passphrase_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_crypto_passphrase_exec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1119,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1121,1
    - Dst: oidc_cmd_outgoing_proxy_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1121,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1122,1
    - Dst: oidc_cmd_outgoing_proxy_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1122,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1124,1
    - Dst: oidc_cmd_outgoing_proxy_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1125
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_outgoing_proxy_set
    - oidc_test_cmd_get
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_outgoing_proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1129,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1130,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1132,1
    - Dst: oidc_cmd_cookie_domain_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1132,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1133,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1133,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1135,1
    - Dst: oidc_cmd_cookie_domain_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1135,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1136,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1136,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1139,1
    - Dst: oidc_cmd_cookie_domain_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1139,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1140,1
    - Dst: oidc_cmd_cookie_domain_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1126
    functionDepth: 1
    functionLinenumber: 1126
    functionLinenumberEnd: 1141
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_cookie_domain_get
    - oidc_cmd_cookie_domain_set
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_cookie_domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1145,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1146,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1148,1
    - Dst: oidc_cmd_session_inactivity_timeout_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1148,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1149,1
    - Dst: oidc_cfg_session_inactivity_timeout_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1149,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1152,1
    - Dst: oidc_cmd_session_inactivity_timeout_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1152,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1153,1
    - Dst: oidc_cmd_session_inactivity_timeout_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1154
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cfg_session_inactivity_timeout_get
    - oidc_cmd_session_inactivity_timeout_set
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_session_inactivity_timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1160,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1167,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/test_cfg.c:1167,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1169,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1170,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1173,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/test_cfg.c:1173,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1175,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1176,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1179,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/test_cfg.c:1179,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1181,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1182,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1185,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/test_cfg.c:1185,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1187,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1190,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/test_cfg.c:1190,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1192,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1193,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1196,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/test_cfg.c:1196,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1198,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/test_cfg.c:1199,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1200,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/test_cfg.c:1200,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1202,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/test_cfg.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1204
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_parse_key_record
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_parse_key_record_encodings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1210,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1211,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1212,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1213,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1213,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:1214,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:1215,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1217,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1218,1
    - Dst: oidc_cmd_provider_token_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1218,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1219,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1219,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1221,1
    - Dst: oidc_cmd_provider_token_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1221,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1223,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1224,1
    - Dst: oidc_cmd_provider_token_endpoint_tls_client_key_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1224,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1225,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1225,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1227,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1228,1
    - Dst: oidc_cmd_provider_token_endpoint_tls_client_key_pwd_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1228,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1229,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1230
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_provider_token_endpoint_tls_client_key_pwd_set
    - oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cmd_provider_token_endpoint_tls_client_key_set
    - oidc_cmd_provider_token_endpoint_tls_client_cert_set
    - apr_psprintf
    - ck_assert_ptr_null
    - oidc_cfg_provider_token_endpoint_tls_client_key_get
    - ck_assert_str_eq
    - getenv
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_token_endpoint_tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1236,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1237,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1238,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1238,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:1239,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:1240,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1242,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1243,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1243,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1244,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1244,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1246,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1247,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_tls_client_key_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1247,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1248,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1248,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1250,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1251,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_tls_client_key_pwd_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1251,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1252,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1253
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_cmd_oauth_introspection_endpoint_tls_client_key_set
    - oidc_test_cfg_get
    - ck_assert_str_eq
    - oidc_cfg_oauth_introspection_endpoint_tls_client_key_pwd_get
    - oidc_cmd_oauth_introspection_endpoint_tls_client_key_pwd_set
    - oidc_cfg_oauth_introspection_endpoint_tls_client_cert_get
    - oidc_cfg_oauth_introspection_endpoint_tls_client_key_get
    - apr_psprintf
    - ck_assert_ptr_null
    - oidc_cmd_oauth_introspection_endpoint_tls_client_cert_set
    - getenv
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_oauth_introspection_endpoint_tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1259,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1260,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1261,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1262,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1262,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1265,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1266,1
    - Dst: oidc_cmd_provider_client_keys_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1267,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:1267,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1268,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1269,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_cfg.c:1270,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1273,1
    - Dst: oidc_cfg_provider_client_keys_set_keys
      Src: /src/mod_auth_openidc/test/test_cfg.c:1273,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1274,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1274,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1276,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1277,1
    - Dst: oidc_cmd_provider_response_require_iss_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1277,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1278,1
    - Dst: oidc_cfg_provider_response_require_iss_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1278,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1280,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1281,1
    - Dst: oidc_cmd_provider_registration_token_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1281,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1282,1
    - Dst: oidc_cfg_provider_registration_token_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1283
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_client_keys_set_keys
    - oidc_cmd_provider_client_keys_set
    - oidc_test_cfg_get
    - oidc_cmd_provider_response_require_iss_set
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cfg_provider_response_require_iss_get
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cfg_provider_client_keys_get
    - ck_assert_int_gt
    - oidc_cfg_provider_get
    - oidc_cfg_provider_registration_token_get
    - oidc_cmd_provider_registration_token_set
    - getenv
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_ptr_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_metadata_only_setters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1287,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1288,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1289,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1289,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:1291,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1292,1
    - Dst: oidc_cmd_public_keys_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1292,1
    - Dst: oidc_cfg_public_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1293,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1294,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_cfg.c:1295,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1298,1
    - Dst: oidc_cmd_public_keys_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1299
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cmd_public_keys_set
    - ck_assert_int_gt
    - apr_psprintf
    - ck_assert_ptr_null
    - oidc_cfg_public_keys_get
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_public_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1303,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1304,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1306,1
    - Dst: oidc_cmd_remote_user_claim_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1306,1
    - Dst: oidc_cfg_remote_user_claim_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1307,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1308,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1310,1
    - Dst: oidc_cmd_remote_user_claim_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1310,1
    - Dst: oidc_cfg_remote_user_claim_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1311,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1312,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1313,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1314,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1317,1
    - Dst: oidc_cfg_remote_user_claim_name_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1318
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_remote_user_claim_set
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_remote_user_claim_name_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cfg_remote_user_claim_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_remote_user_claim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1322,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1323,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1325,1
    - Dst: oidc_cmd_claim_prefix_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1325,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1326,1
    - Dst: oidc_cfg_claim_prefix_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1326,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1329,1
    - Dst: oidc_cmd_claim_prefix_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1329,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1330,1
    - Dst: oidc_cfg_claim_prefix_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1331
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cmd_claim_prefix_set
    - oidc_test_cfg_get
    - oidc_cfg_claim_prefix_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_claim_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1335,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1336,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1338,1
    - Dst: oidc_cmd_max_number_of_state_cookies_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1338,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1339,1
    - Dst: oidc_cfg_max_number_of_state_cookies_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1339,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1342,1
    - Dst: oidc_cmd_max_number_of_state_cookies_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1342,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1343,1
    - Dst: oidc_cfg_delete_oldest_state_cookies_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1343,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1346,1
    - Dst: oidc_cmd_max_number_of_state_cookies_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1346,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1348,1
    - Dst: oidc_cmd_max_number_of_state_cookies_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1349
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_delete_oldest_state_cookies_get
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cmd_max_number_of_state_cookies_set
    - oidc_cfg_max_number_of_state_cookies_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_max_number_of_state_cookies)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1353,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1354,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1356,1
    - Dst: oidc_cmd_x_forwarded_headers_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1356,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1357,1
    - Dst: oidc_cfg_x_forwarded_headers_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1357,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1360,1
    - Dst: oidc_cmd_x_forwarded_headers_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1360,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1362,1
    - Dst: oidc_cmd_x_forwarded_headers_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1350
    functionDepth: 1
    functionLinenumber: 1350
    functionLinenumberEnd: 1363
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - oidc_cmd_x_forwarded_headers_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cfg_x_forwarded_headers_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_x_forwarded_headers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1367,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1368,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1370,1
    - Dst: oidc_cmd_state_input_headers_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1370,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1371,1
    - Dst: oidc_cfg_state_input_headers_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1371,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1372,1
    - Dst: oidc_cmd_state_input_headers_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1372,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1373,1
    - Dst: oidc_cfg_state_input_headers_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1373,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1374,1
    - Dst: oidc_cmd_state_input_headers_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1374,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1375,1
    - Dst: oidc_cfg_state_input_headers_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1375,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1376,1
    - Dst: oidc_cmd_state_input_headers_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1376,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1377,1
    - Dst: oidc_cfg_state_input_headers_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1377,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1379,1
    - Dst: oidc_cmd_state_input_headers_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1380
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_state_input_headers_get
    - oidc_cmd_state_input_headers_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_state_input_headers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1384,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1385,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1386,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1386,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:1388,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:1389,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1390,1
    - Dst: oidc_cmd_post_preserve_templates_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1390,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1391,1
    - Dst: oidc_cfg_post_preserve_template_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1391,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1392,1
    - Dst: oidc_cfg_post_restore_template_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1392,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1394,1
    - Dst: oidc_cmd_post_preserve_templates_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1395
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cfg_post_restore_template_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - apr_psprintf
    - ck_assert_ptr_null
    - oidc_cmd_post_preserve_templates_set
    - ck_assert_str_eq
    - getenv
    - oidc_cfg_post_preserve_template_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_post_preserve_templates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1399,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1400,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1401,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:1401,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:1403,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1404,1
    - Dst: oidc_cmd_ca_bundle_path_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1404,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1405,1
    - Dst: oidc_cfg_ca_bundle_path_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1405,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1407,1
    - Dst: oidc_cmd_ca_bundle_path_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1408
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_ca_bundle_path_get
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - getenv
    - oidc_cmd_ca_bundle_path_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_ca_bundle_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1412,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1413,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1415,1
    - Dst: oidc_cmd_cookie_http_only_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1415,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1416,1
    - Dst: oidc_cfg_cookie_http_only_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1416,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1417,1
    - Dst: oidc_cmd_cookie_http_only_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1417,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1418,1
    - Dst: oidc_cfg_cookie_http_only_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1418,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1419,1
    - Dst: oidc_cmd_cookie_http_only_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1420
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cmd_cookie_http_only_set
    - oidc_cfg_cookie_http_only_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_cookie_http_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1424,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1425,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1428,1
    - Dst: oidc_cfg_debug_mask_secrets_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1428,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1429,1
    - Dst: oidc_cmd_debug_mask_secrets_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1429,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1430,1
    - Dst: oidc_cfg_debug_mask_secrets_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1430,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1431,1
    - Dst: oidc_cmd_debug_mask_secrets_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1431,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1432,1
    - Dst: oidc_cfg_debug_mask_secrets_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1432,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1433,1
    - Dst: oidc_cmd_debug_mask_secrets_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1434
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_debug_mask_secrets_set
    - oidc_cfg_debug_mask_secrets_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_debug_mask_secrets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1438,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1439,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1441,1
    - Dst: oidc_cmd_session_cache_fallback_to_cookie_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1441,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1442,1
    - Dst: oidc_cfg_session_cache_fallback_to_cookie_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1442,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1443,1
    - Dst: oidc_cmd_session_cache_fallback_to_cookie_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1443,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1444,1
    - Dst: oidc_cfg_session_cache_fallback_to_cookie_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1445
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cfg_session_cache_fallback_to_cookie_get
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_session_cache_fallback_to_cookie_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_session_cache_fallback_to_cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1449,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1450,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1452,1
    - Dst: oidc_cmd_claim_delimiter_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1452,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1453,1
    - Dst: oidc_cfg_claim_delimiter_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1454
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cmd_claim_delimiter_set
    - oidc_cfg_claim_delimiter_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_claim_delimiter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1458,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1459,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1461,1
    - Dst: oidc_cmd_metrics_path_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1461,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1462,1
    - Dst: oidc_cfg_metrics_path_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1463
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cmd_metrics_path_set
    - oidc_cfg_metrics_path_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_metrics_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1467,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1468,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1470,1
    - Dst: oidc_cmd_logout_x_frame_options_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1470,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1471,1
    - Dst: oidc_cfg_logout_x_frame_options_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1464
    functionDepth: 1
    functionLinenumber: 1464
    functionLinenumberEnd: 1472
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cmd_logout_x_frame_options_set
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cfg_logout_x_frame_options_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_logout_x_frame_options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1476,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1477,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1479,1
    - Dst: oidc_cmd_state_timeout_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1479,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1480,1
    - Dst: oidc_cfg_state_timeout_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1480,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1481,1
    - Dst: oidc_cmd_state_timeout_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1473
    functionDepth: 1
    functionLinenumber: 1473
    functionLinenumberEnd: 1482
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_state_timeout_set
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_state_timeout_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_state_timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1486,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1487,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1489,1
    - Dst: oidc_cmd_session_cookie_chunk_size_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1489,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1490,1
    - Dst: oidc_cfg_session_cookie_chunk_size_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1490,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1492,1
    - Dst: oidc_cmd_session_cookie_chunk_size_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1492,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1493,1
    - Dst: oidc_cmd_session_cookie_chunk_size_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1493,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1496,1
    - Dst: oidc_cmd_session_cookie_chunk_size_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1496,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1497,1
    - Dst: oidc_cfg_session_cookie_chunk_size_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1497,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1499,1
    - Dst: oidc_cmd_session_cookie_chunk_size_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1500
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cfg_session_cookie_chunk_size_get
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_session_cookie_chunk_size_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_session_cookie_chunk_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1504,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1505,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1507,1
    - Dst: oidc_cmd_provider_metadata_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1507,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1508,1
    - Dst: oidc_cfg_provider_metadata_refresh_interval_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1508,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1511,1
    - Dst: oidc_cmd_provider_metadata_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1512
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cmd_provider_metadata_refresh_interval_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_metadata_refresh_interval_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_metadata_refresh_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1516,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1517,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1519,1
    - Dst: oidc_cmd_white_listed_claims_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1519,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1520,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_cfg.c:1520,1
    - Dst: oidc_cfg_white_listed_claims_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1520,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1522,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1523,1
    - Dst: oidc_cmd_black_listed_claims_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1523,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1524,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_cfg.c:1524,1
    - Dst: oidc_cfg_black_listed_claims_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1524,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1526,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1527,1
    - Dst: oidc_cmd_redirect_urls_allowed_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1527,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1528,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_cfg.c:1528,1
    - Dst: oidc_cfg_redirect_urls_allowed_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1513
    functionDepth: 1
    functionLinenumber: 1513
    functionLinenumberEnd: 1529
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_white_listed_claims_get
    - oidc_cfg_black_listed_claims_get
    - oidc_cmd_black_listed_claims_set
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_redirect_urls_allowed_get
    - apr_hash_count
    - ck_assert_ptr_null
    - oidc_cmd_redirect_urls_allowed_set
    - ck_assert_int_eq
    - oidc_cmd_white_listed_claims_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_white_black_redirect_url_hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1533,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1536,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1537,1
    - Dst: oidc_cmd_redirect_uri_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1537,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1538,1
    - Dst: oidc_cfg_redirect_uri_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1538,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1539,1
    - Dst: oidc_cmd_redirect_uri_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1539,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1540,1
    - Dst: oidc_cfg_redirect_uri_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1540,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1541,1
    - Dst: oidc_cmd_redirect_uri_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1541,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1543,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1544,1
    - Dst: oidc_cmd_default_slo_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1544,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1545,1
    - Dst: oidc_cfg_default_slo_url_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1546
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cfg_default_slo_url_get
    - oidc_test_cfg_get
    - oidc_cfg_redirect_uri_get
    - ck_assert_ptr_null
    - oidc_cmd_redirect_uri_set
    - ck_assert_str_eq
    - oidc_cmd_default_slo_url_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_redirect_and_slo_urls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1550,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1551,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1553,1
    - Dst: oidc_cmd_http_timeout_long_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1553,1
    - Dst: oidc_cfg_http_timeout_long_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1554,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1555,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1556,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1557,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1558,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1560,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1561,1
    - Dst: oidc_cmd_http_timeout_short_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1561,1
    - Dst: oidc_cfg_http_timeout_short_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1562,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1563,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1564,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1565,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1547
    functionDepth: 1
    functionLinenumber: 1547
    functionLinenumberEnd: 1567
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_http_timeout_short_get
    - oidc_cmd_http_timeout_long_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cfg_http_timeout_long_get
    - oidc_cmd_http_timeout_short_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_http_timeout_long_short)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1571,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1572,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1574,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1575,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1583,1
    - Dst: oidc_cfg_merged_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1583,1
    - Dst: oidc_cfg_server_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:1585,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1586,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1588,1
    - Dst: oidc_cfg_merged_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1588,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1590,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1592,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1568
    functionDepth: 1
    functionLinenumber: 1568
    functionLinenumberEnd: 1596
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_server_merge
    - oidc_test_pool_get
    - oidc_cfg_server_create
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_merged_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_server_merge_and_merged_get)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1600,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1601,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1602,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1605,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_tls_client_key_pwd_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1605,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1607,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1608,1
    - Dst: oidc_cfg_server_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:1611,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1612,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1613,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1614
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_cfg_server_merge
    - oidc_test_cfg_get
    - oidc_cfg_oauth_introspection_endpoint_tls_client_key_pwd_get
    - oidc_cmd_oauth_introspection_endpoint_tls_client_key_pwd_set
    - oidc_test_pool_get
    - oidc_cfg_server_create
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_oauth_merge_introspection_key_pwd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1623,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1624,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1626,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1627,1
    - Dst: memset
      Src: /src/mod_auth_openidc/test/test_cfg.c:1630,1
    - Dst: oidc_cfg_server_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:1634,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1635,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1635,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1636,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1637,1
    - Dst: memcmp
      Src: /src/mod_auth_openidc/test/test_cfg.c:1637,1
    - Dst: oidc_cfg_server_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:1644,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1645,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1645,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1615
    functionDepth: 1
    functionLinenumber: 1615
    functionLinenumberEnd: 1647
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_server_merge
    - oidc_test_request_get
    - ck_assert_str_eq
    - oidc_test_pool_get
    - oidc_cfg_server_create
    - ck_assert_int_eq
    - memset
    - memcmp
    - oidc_cfg_crypto_passphrase_secret1_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_server_merge_crypto_passphrase_derived_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1652,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_cfg.c:1653,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_cfg.c:1657,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1659,1
    - Dst: oidc_crypto_passphrase_derive_keys
      Src: /src/mod_auth_openidc/test/test_cfg.c:1659,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1660,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_cfg.c:1663,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1665,1
    - Dst: oidc_crypto_passphrase_derive_keys_cached
      Src: /src/mod_auth_openidc/test/test_cfg.c:1665,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1666,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1667,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_cfg.c:1667,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_cfg.c:1670,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1672,1
    - Dst: oidc_crypto_passphrase_derive_keys_cached
      Src: /src/mod_auth_openidc/test/test_cfg.c:1672,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1673,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1674,1
    - Dst: memcmp
      Src: /src/mod_auth_openidc/test/test_cfg.c:1674,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1675,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_cfg.c:1675,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1679,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1680,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_cfg.c:1681,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_cfg.c:1682,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1685,1
    - Dst: oidc_crypto_passphrase_derive_keys_cached
      Src: /src/mod_auth_openidc/test/test_cfg.c:1685,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1686,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1687,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1688,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1689,1
    - Dst: memcmp
      Src: /src/mod_auth_openidc/test/test_cfg.c:1689,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1690,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_cfg.c:1690,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_cfg.c:1693,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1695,1
    - Dst: oidc_crypto_passphrase_derive_keys_cached
      Src: /src/mod_auth_openidc/test/test_cfg.c:1695,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1696,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_cfg.c:1696,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_cfg.c:1697,1
    - Dst: memcmp
      Src: /src/mod_auth_openidc/test/test_cfg.c:1697,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_cfg.c:1700,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1702,1
    - Dst: oidc_crypto_passphrase_derive_keys_cached
      Src: /src/mod_auth_openidc/test/test_cfg.c:1702,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1703,1
    - Dst: memcmp
      Src: /src/mod_auth_openidc/test/test_cfg.c:1703,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1707,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1708,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1710,1
    - Dst: oidc_cfg_crypto_passphrase_derive_keys_cached
      Src: /src/mod_auth_openidc/test/test_cfg.c:1710,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1711,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1712,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1714,1
    - Dst: oidc_cfg_crypto_passphrase_derive_keys
      Src: /src/mod_auth_openidc/test/test_cfg.c:1714,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1716
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - _oidc_memset
    - oidc_cfg_crypto_passphrase_derive_keys
    - apr_hash_make
    - oidc_test_cfg_get
    - oidc_crypto_passphrase_derive_keys_cached
    - ck_assert_ptr_nonnull
    - apr_hash_count
    - oidc_test_pool_get
    - oidc_cfg_crypto_passphrase_derive_keys_cached
    - oidc_cfg_crypto_passphrase_secret1_set
    - ck_assert_int_eq
    - memcmp
    - oidc_crypto_passphrase_derive_keys
    - ck_assert_int_ne
    - apr_hash_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_crypto_passphrase_derive_keys_cached)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1720,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1721,1
    - Dst: oidc_cfg_child_init
      Src: /src/mod_auth_openidc/test/test_cfg.c:1724,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1717
    functionDepth: 1
    functionLinenumber: 1717
    functionLinenumberEnd: 1725
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - oidc_cfg_child_init
    - oidc_test_pool_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_child_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1730,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1731,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1732,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1736,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1736,1
    - Dst: oidc_cfg_get_valid_endpoint_auth_function
      Src: /src/mod_auth_openidc/test/test_cfg.c:1739,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1740,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1741,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1741,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1742,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1742,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1743,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1743,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1744,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1744,1
    - Dst: oidc_cfg_get_valid_endpoint_auth_function
      Src: /src/mod_auth_openidc/test/test_cfg.c:1747,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1748,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1748,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1749,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1749,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1750,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1750,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/test_cfg.c:1753,1
    - Dst: oidc_cfg_get_valid_endpoint_auth_function
      Src: /src/mod_auth_openidc/test/test_cfg.c:1754,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1755,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1755,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1756,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1756,1
    - Dst: oidc_cfg_get_valid_endpoint_auth_function
      Src: /src/mod_auth_openidc/test/test_cfg.c:1757,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1758,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1758,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1759,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1759,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1762,1
    - Dst: valid
      Src: /src/mod_auth_openidc/test/test_cfg.c:1762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1726
    functionDepth: 1
    functionLinenumber: 1726
    functionLinenumberEnd: 1763
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_private_keys_get
    - valid
    - oidc_test_pool_get
    - oidc_cfg_server_create
    - oidc_cfg_get_valid_endpoint_auth_function
    - ck_assert_ptr_null
    - apr_array_make
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_valid_endpoint_auth_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1768,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1769,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/test_cfg.c:1770,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1772,1
    - Dst: oidc_cfg_provider_verify_public_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1772,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1773,1
    - Dst: oidc_cfg_provider_verify_public_keys_set_keys
      Src: /src/mod_auth_openidc/test/test_cfg.c:1773,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1774,1
    - Dst: oidc_cfg_provider_verify_public_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1774,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1776,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1776,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1777,1
    - Dst: oidc_cfg_provider_client_keys_set_keys
      Src: /src/mod_auth_openidc/test/test_cfg.c:1777,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1778,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1779
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_verify_public_keys_get
    - oidc_cfg_provider_client_keys_get
    - oidc_cfg_provider_create
    - oidc_test_pool_get
    - oidc_cfg_provider_client_keys_set_keys
    - ck_assert_ptr_null
    - apr_array_make
    - oidc_cfg_provider_verify_public_keys_set_keys
    - ck_assert_ptr_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_provider_set_keys_direct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1787,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1788,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1789,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1791,1
    - Dst: oidc_cmd_dir_strip_cookies_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1791,1
    - Dst: oidc_cfg_dir_strip_cookies_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1792,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1793,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1794,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1796,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1797,1
    - Dst: oidc_cmd_dir_pass_cookies_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1797,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1798,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1799,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1780
    functionDepth: 1
    functionLinenumber: 1780
    functionLinenumberEnd: 1801
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_dir_pass_cookies_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_dir_strip_cookies_set
    - oidc_cmd_dir_pass_cookies_set
    - oidc_cfg_dir_strip_cookies_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_strip_pass_cookies)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1805,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1806,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1807,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1809,1
    - Dst: oidc_cmd_dir_preserve_post_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1809,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1810,1
    - Dst: oidc_cfg_dir_preserve_post_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1810,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1811,1
    - Dst: oidc_cmd_dir_preserve_post_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1811,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1812,1
    - Dst: oidc_cfg_dir_preserve_post_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1812,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1813,1
    - Dst: oidc_cmd_dir_preserve_post_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1802
    functionDepth: 1
    functionLinenumber: 1802
    functionLinenumberEnd: 1814
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_dir_preserve_post_get
    - oidc_cmd_dir_preserve_post_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_preserve_post)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1818,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1819,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1820,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1822,1
    - Dst: oidc_cmd_dir_unautz_action_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1822,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1823,1
    - Dst: oidc_cfg_dir_unautz_action_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1823,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1824,1
    - Dst: oidc_cmd_dir_unautz_action_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1824,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1825,1
    - Dst: oidc_cfg_dir_unautz_action_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1825,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1826,1
    - Dst: oidc_cmd_dir_unautz_action_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1826,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1827,1
    - Dst: oidc_cfg_dir_unautz_action_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1827,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1830,1
    - Dst: oidc_cmd_dir_unautz_action_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1830,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1831,1
    - Dst: oidc_cmd_dir_unautz_action_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1831,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1832,1
    - Dst: oidc_cfg_dir_unautz_action_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1832,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1833,1
    - Dst: oidc_cfg_dir_unauthz_arg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1833,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1836,1
    - Dst: oidc_cmd_dir_unautz_action_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1815
    functionDepth: 1
    functionLinenumber: 1815
    functionLinenumberEnd: 1837
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_dir_unautz_action_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cmd_dir_unautz_action_set
    - oidc_cfg_dir_unauthz_arg_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_unautz_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1841,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1842,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1843,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1845,1
    - Dst: oidc_cmd_dir_path_auth_request_params_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1845,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1846,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1847,1
    - Dst: oidc_cmd_dir_path_scope_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1838
    functionDepth: 1
    functionLinenumber: 1838
    functionLinenumberEnd: 1848
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_path_scope_set
    - ck_assert_ptr_null
    - oidc_cmd_dir_path_auth_request_params_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_path_auth_request_params_and_scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1852,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1853,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1854,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1856,1
    - Dst: oidc_cmd_dir_refresh_access_token_before_expiry_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1856,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1857,1
    - Dst: oidc_cfg_dir_refresh_access_token_before_expiry_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1857,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1860,1
    - Dst: oidc_cmd_dir_refresh_access_token_before_expiry_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1860,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1861,1
    - Dst: oidc_cfg_dir_action_on_error_refresh_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1861,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1864,1
    - Dst: oidc_cmd_dir_refresh_access_token_before_expiry_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1864,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1865,1
    - Dst: oidc_cmd_dir_refresh_access_token_before_expiry_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1866
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_dir_action_on_error_refresh_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_dir_refresh_access_token_before_expiry_set
    - oidc_cfg_dir_refresh_access_token_before_expiry_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_refresh_access_token_before_expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1870,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1871,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1873,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1874,1
    - Dst: oidc_cmd_dir_cookie_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1874,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1875,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1875,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1877,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1878,1
    - Dst: oidc_cmd_dir_cookie_path_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1878,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1879,1
    - Dst: oidc_cfg_dir_cookie_path_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1879,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1881,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1882,1
    - Dst: oidc_cmd_dir_state_cookie_prefix_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1882,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1883,1
    - Dst: oidc_cfg_dir_state_cookie_prefix_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1883,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1885,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1886,1
    - Dst: oidc_cmd_dir_authn_header_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1886,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1887,1
    - Dst: oidc_cfg_dir_authn_header_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1867
    functionDepth: 1
    functionLinenumber: 1867
    functionLinenumberEnd: 1888
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_dir_state_cookie_prefix_set
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_dir_cookie_path_get
    - oidc_cmd_dir_authn_header_set
    - oidc_cmd_dir_cookie_path_set
    - oidc_cfg_dir_authn_header_get
    - oidc_cmd_dir_cookie_set
    - oidc_cfg_dir_state_cookie_prefix_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cfg_dir_cookie_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_cookie_and_path_and_state_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1892,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1893,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1895,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1896,1
    - Dst: oidc_cmd_dir_pass_access_token_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1896,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1897,1
    - Dst: oidc_cfg_dir_pass_access_token_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1897,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1898,1
    - Dst: oidc_cmd_dir_pass_access_token_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1898,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1899,1
    - Dst: oidc_cfg_dir_pass_access_token_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1899,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1901,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1902,1
    - Dst: oidc_cmd_dir_pass_refresh_token_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1902,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1903,1
    - Dst: oidc_cfg_dir_pass_refresh_token_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1903,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1904,1
    - Dst: oidc_cmd_dir_pass_refresh_token_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1889
    functionDepth: 1
    functionLinenumber: 1889
    functionLinenumberEnd: 1905
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_dir_pass_access_token_get
    - oidc_cfg_dir_pass_refresh_token_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_dir_pass_access_token_set
    - oidc_cmd_dir_pass_refresh_token_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_pass_access_refresh_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1909,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1910,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1911,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1913,1
    - Dst: oidc_cmd_dir_token_introspection_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1913,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1914,1
    - Dst: oidc_cfg_dir_token_introspection_interval_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1914,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1917,1
    - Dst: oidc_cmd_dir_token_introspection_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1917,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1918,1
    - Dst: oidc_cmd_dir_token_introspection_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1906
    functionDepth: 1
    functionLinenumber: 1906
    functionLinenumberEnd: 1919
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - ck_assert_int_eq
    - ck_assert_ptr_null
    - oidc_cmd_dir_token_introspection_interval_set
    - oidc_cfg_dir_token_introspection_interval_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_token_introspection_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1923,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1924,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1925,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1927,1
    - Dst: oidc_cmd_dir_pass_idtoken_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1927,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1928,1
    - Dst: oidc_cmd_dir_pass_idtoken_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1928,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1929,1
    - Dst: oidc_cmd_dir_pass_idtoken_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1929,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1930,1
    - Dst: oidc_cmd_dir_pass_idtoken_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1930,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1932,1
    - Dst: oidc_cmd_dir_pass_idtoken_as_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 1933
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_cmd_dir_pass_idtoken_as_set
    - ap_get_module_config
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_dir_pass_idtoken_as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1937,1
    - Dst: oidc_cfg_dir_accept_oauth_token_in2str
      Src: /src/mod_auth_openidc/test/test_cfg.c:1939,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1940,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1941,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_cfg.c:1941,1
    - Dst: oidc_cfg_dir_accept_oauth_token_in2str
      Src: /src/mod_auth_openidc/test/test_cfg.c:1943,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1945,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_cfg.c:1945,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1946,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_cfg.c:1946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1934
    functionDepth: 1
    functionLinenumber: 1934
    functionLinenumberEnd: 1947
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - _oidc_strstr
    - oidc_cfg_dir_accept_oauth_token_in2str
    - oidc_test_pool_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_dir_accept_oauth_token_in2str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1951,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1953,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1954,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1957,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1958,1
    - Dst: oidc_cmd_dir_cookie_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1958,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1959,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1960,1
    - Dst: oidc_cmd_dir_cookie_path_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1960,1
    - Dst: oidc_cfg_dir_config_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:1962,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:1963,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1966,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1967,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1968,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1969,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1969,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1970,1
    - Dst: oidc_cfg_dir_cookie_path_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1970,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1948
    functionDepth: 1
    functionLinenumber: 1948
    functionLinenumberEnd: 1973
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_dir_cookie_path_get
    - oidc_cmd_dir_cookie_path_set
    - oidc_cmd_dir_cookie_set
    - oidc_cfg_dir_config_create
    - oidc_test_pool_get
    - oidc_cfg_dir_config_merge
    - ap_set_module_config
    - oidc_cfg_dir_cookie_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_dir_config_merge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1978,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1979,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1980,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1985,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1986,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1987,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1988,1
    - Dst: oidc_cmd_dir_preserve_post_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1988,1
    - Dst: oidc_cfg_dir_config_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:1989,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:1990,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:1991,1
    - Dst: oidc_cfg_dir_preserve_post_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:1991,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1995,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:1996,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1997,1
    - Dst: oidc_cmd_dir_preserve_post_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1997,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:1998,1
    - Dst: oidc_cmd_dir_preserve_post_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:1998,1
    - Dst: oidc_cfg_dir_config_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:1999,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:2000,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2001,1
    - Dst: oidc_cfg_dir_preserve_post_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2001,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2004,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2005,1
    - Dst: oidc_cfg_dir_config_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:2006,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:2007,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2008,1
    - Dst: oidc_cfg_dir_preserve_post_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2008,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2012,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2013,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2014,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2015,1
    - Dst: oidc_cmd_dir_token_introspection_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2015,1
    - Dst: oidc_cfg_dir_config_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:2016,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:2017,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2018,1
    - Dst: oidc_cfg_dir_token_introspection_interval_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2018,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:2021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 2022
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_dir_token_introspection_interval_set
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_dir_preserve_post_get
    - oidc_cmd_dir_preserve_post_set
    - oidc_cfg_dir_config_create
    - oidc_test_pool_get
    - oidc_cfg_dir_config_merge
    - ap_set_module_config
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cfg_dir_token_introspection_interval_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_dir_config_merge_inherit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2030,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2031,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2033,1
    - Dst: oidc_cmd_cache_encrypt_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2033,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2034,1
    - Dst: oidc_cfg_cache_encrypt_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2034,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2035,1
    - Dst: oidc_cmd_cache_encrypt_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2035,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2036,1
    - Dst: oidc_cfg_cache_encrypt_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2036,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2037,1
    - Dst: oidc_cmd_cache_encrypt_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2023
    functionDepth: 1
    functionLinenumber: 2023
    functionLinenumberEnd: 2038
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_cache_encrypt_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_cache_encrypt_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_cache_encrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2042,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2043,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2045,1
    - Dst: oidc_cmd_cache_shm_size_max_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2045,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2046,1
    - Dst: oidc_cfg_cache_shm_size_max_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2046,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2049,1
    - Dst: oidc_cmd_cache_shm_size_max_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2039
    functionDepth: 1
    functionLinenumber: 2039
    functionLinenumberEnd: 2050
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_cache_shm_size_max_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_cache_shm_size_max_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_cache_shm_size_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2054,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2056,1
    - Dst: oidc_cmd_cache_file_clean_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2056,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2059,1
    - Dst: oidc_cmd_cache_file_clean_interval_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2051
    functionDepth: 1
    functionLinenumber: 2051
    functionLinenumberEnd: 2060
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - ck_assert_ptr_nonnull
    - oidc_test_cmd_get
    - ck_assert_ptr_null
    - oidc_cmd_cache_file_clean_interval_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_cache_file_clean_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2066,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2067,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2069,1
    - Dst: oidc_cmd_cache_memcache_servers_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2069,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2070,1
    - Dst: oidc_cfg_cache_memcache_servers_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2070,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2072,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2073,1
    - Dst: oidc_cmd_cache_memcache_min_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2073,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2074,1
    - Dst: oidc_cfg_cache_memcache_min_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2074,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2075,1
    - Dst: oidc_cmd_cache_memcache_min_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2075,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2077,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2078,1
    - Dst: oidc_cmd_cache_memcache_smax_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2078,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2079,1
    - Dst: oidc_cfg_cache_memcache_smax_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2079,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2081,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2082,1
    - Dst: oidc_cmd_cache_memcache_hmax_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2082,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2083,1
    - Dst: oidc_cfg_cache_memcache_hmax_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2065
    functionDepth: 1
    functionLinenumber: 2065
    functionLinenumberEnd: 2084
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cfg_cache_memcache_hmax_get
    - oidc_test_cfg_get
    - oidc_cfg_cache_memcache_smax_get
    - oidc_cmd_cache_memcache_hmax_set
    - oidc_cfg_cache_memcache_servers_get
    - ck_assert_ptr_null
    - oidc_cmd_cache_memcache_min_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_cache_memcache_min_get
    - oidc_cmd_cache_memcache_smax_set
    - oidc_cmd_cache_memcache_servers_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cmd_cache_memcache_settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2092,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2093,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2095,1
    - Dst: oidc_cmd_cache_redis_server_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2095,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2096,1
    - Dst: oidc_cfg_cache_redis_server_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2096,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2098,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2099,1
    - Dst: oidc_cmd_cache_redis_username_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2099,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2100,1
    - Dst: oidc_cfg_cache_redis_username_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2100,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2102,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2103,1
    - Dst: oidc_cmd_cache_redis_password_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2103,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2104,1
    - Dst: oidc_cfg_cache_redis_password_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2104,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2106,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2107,1
    - Dst: oidc_cmd_cache_redis_database_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2107,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2108,1
    - Dst: oidc_cfg_cache_redis_database_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2108,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2109,1
    - Dst: oidc_cmd_cache_redis_database_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2109,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2111,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2112,1
    - Dst: oidc_cmd_cache_redis_connect_timeout_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2112,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2113,1
    - Dst: oidc_cfg_cache_redis_connect_timeout_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2113,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2114,1
    - Dst: oidc_cfg_cache_redis_keepalive_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2114,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2116,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2117,1
    - Dst: oidc_cmd_cache_redis_timeout_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2117,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2118,1
    - Dst: oidc_cfg_cache_redis_timeout_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2091
    functionDepth: 1
    functionLinenumber: 2091
    functionLinenumberEnd: 2119
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_cache_redis_database_get
    - oidc_cmd_cache_redis_server_set
    - oidc_test_cfg_get
    - oidc_cfg_cache_redis_username_get
    - oidc_cmd_cache_redis_password_set
    - oidc_cfg_cache_redis_keepalive_get
    - oidc_cmd_cache_redis_username_set
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cmd_cache_redis_connect_timeout_set
    - ck_assert_ptr_nonnull
    - oidc_test_cmd_get
    - oidc_cfg_cache_redis_timeout_get
    - oidc_cfg_cache_redis_password_get
    - oidc_cfg_cache_redis_connect_timeout_get
    - oidc_cmd_cache_redis_timeout_set
    - oidc_cmd_cache_redis_database_set
    - ck_assert_int_eq
    - oidc_cfg_cache_redis_server_get
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cmd_cache_redis_settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2125,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2126,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2128,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2129,1
    - Dst: oidc_cfg_server_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:2136,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2137,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2138,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2139,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2142,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2143,1
    - Dst: oidc_cfg_server_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:2145,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2146,1
    - Dst: oidc_cfg_cache_shm_size_max_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2146,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2150,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2151,1
    - Dst: oidc_cfg_server_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:2154,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2155,1
    - Dst: oidc_cfg_cache_shm_size_max_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2156
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2156
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_server_merge
    - oidc_test_request_get
    - oidc_cfg_cache_shm_size_max_get
    - oidc_test_pool_get
    - oidc_cfg_server_create
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_cache_merge_server_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2164,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2165,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2167,1
    - Dst: oidc_cmd_oauth_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2167,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2168,1
    - Dst: oidc_cfg_oauth_metadata_url_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2168,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2169,1
    - Dst: oidc_cmd_oauth_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2169,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2171,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2172,1
    - Dst: oidc_cmd_oauth_client_id_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2172,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2173,1
    - Dst: oidc_cfg_oauth_client_id_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2173,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2175,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2176,1
    - Dst: oidc_cmd_oauth_client_secret_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2176,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2177,1
    - Dst: oidc_cfg_oauth_client_secret_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2177,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2179,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2180,1
    - Dst: oidc_cmd_oauth_verify_jwks_uri_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2180,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2181,1
    - Dst: oidc_cfg_oauth_verify_jwks_uri_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2181,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2182,1
    - Dst: oidc_cmd_oauth_verify_jwks_uri_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2157
    functionDepth: 1
    functionLinenumber: 2157
    functionLinenumberEnd: 2183
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_oauth_client_id_set
    - oidc_test_cmd_get
    - oidc_cmd_oauth_verify_jwks_uri_set
    - oidc_cmd_oauth_metadata_url_set
    - oidc_test_cfg_get
    - oidc_cfg_oauth_client_id_get
    - oidc_cfg_oauth_client_secret_get
    - oidc_cfg_oauth_metadata_url_get
    - ck_assert_ptr_null
    - oidc_cmd_oauth_client_secret_set
    - ck_assert_str_eq
    - oidc_cfg_oauth_verify_jwks_uri_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_oauth_url_and_client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2187,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2188,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2190,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_params_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2190,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2191,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_params_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2191,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2193,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2194,1
    - Dst: oidc_cmd_oauth_introspection_token_param_name_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2194,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2195,1
    - Dst: oidc_cfg_oauth_introspection_token_param_name_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2195,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2197,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2198,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2198,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2199,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_auth_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2199,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2200,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2200,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2202,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2203,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_method_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2203,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2204,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_method_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2204,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2205,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_method_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2205,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2206,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_method_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2206,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2207,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_method_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2207,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2209,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2210,1
    - Dst: oidc_cmd_oauth_introspection_client_auth_bearer_token_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2210,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2211,1
    - Dst: oidc_cfg_oauth_introspection_client_auth_bearer_token_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2184
    functionDepth: 1
    functionLinenumber: 2184
    functionLinenumberEnd: 2212
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_oauth_introspection_client_auth_bearer_token_get
    - oidc_cmd_oauth_introspection_endpoint_auth_set
    - oidc_test_cmd_get
    - oidc_cmd_oauth_introspection_client_auth_bearer_token_set
    - oidc_test_cfg_get
    - oidc_cfg_oauth_introspection_endpoint_method_get
    - oidc_cfg_oauth_introspection_endpoint_params_get
    - oidc_cmd_oauth_introspection_endpoint_params_set
    - oidc_cmd_oauth_introspection_endpoint_method_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_oauth_introspection_endpoint_auth_get
    - oidc_cfg_oauth_introspection_token_param_name_get
    - oidc_cmd_oauth_introspection_token_param_name_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_oauth_introspection_settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2216,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2217,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2219,1
    - Dst: oidc_cmd_oauth_token_expiry_claim_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2219,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2220,1
    - Dst: oidc_cfg_oauth_introspection_token_expiry_claim_name_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2220,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2221,1
    - Dst: oidc_cfg_oauth_introspection_token_expiry_claim_format_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2221,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2223,1
    - Dst: oidc_cfg_oauth_introspection_token_expiry_claim_required_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2223,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2226,1
    - Dst: oidc_cmd_oauth_token_expiry_claim_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2226,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2227,1
    - Dst: oidc_cfg_oauth_introspection_token_expiry_claim_format_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2227,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2229,1
    - Dst: oidc_cfg_oauth_introspection_token_expiry_claim_required_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2229,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2232,1
    - Dst: oidc_cmd_oauth_token_expiry_claim_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2232,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2233,1
    - Dst: oidc_cmd_oauth_token_expiry_claim_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2213
    functionDepth: 1
    functionLinenumber: 2213
    functionLinenumberEnd: 2234
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cmd_oauth_token_expiry_claim_set
    - oidc_cfg_oauth_introspection_token_expiry_claim_required_get
    - ck_assert_ptr_null
    - oidc_cfg_oauth_introspection_token_expiry_claim_name_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_oauth_introspection_token_expiry_claim_format_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_oauth_token_expiry_claim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2238,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2239,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2241,1
    - Dst: oidc_cmd_oauth_remote_user_claim_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2241,1
    - Dst: oidc_cfg_oauth_remote_user_claim_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2242,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2235
    functionDepth: 1
    functionLinenumber: 2235
    functionLinenumberEnd: 2244
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_oauth_remote_user_claim_get
    - ck_assert_ptr_null
    - oidc_cmd_oauth_remote_user_claim_set
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_oauth_remote_user_claim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2248,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2249,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:2250,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:2250,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:2251,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2253,1
    - Dst: oidc_cmd_oauth_verify_public_keys_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2253,1
    - Dst: oidc_cfg_oauth_verify_public_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2254,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2255,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_cfg.c:2256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2245
    functionDepth: 1
    functionLinenumber: 2245
    functionLinenumberEnd: 2257
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_oauth_verify_public_keys_get
    - ck_assert_int_gt
    - apr_psprintf
    - ck_assert_ptr_null
    - oidc_cmd_oauth_verify_public_keys_set
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_oauth_verify_public_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2261,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2262,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2264,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2265,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2268,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:2271,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2272,1
    - Dst: oidc_cmd_oauth_client_id_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2272,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:2273,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2274,1
    - Dst: oidc_cmd_oauth_client_id_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2274,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2276,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2277,1
    - Dst: oidc_cmd_oauth_client_secret_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2277,1
    - Dst: oidc_cfg_server_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:2279,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2280,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2281,1
    - Dst: oidc_cfg_oauth_client_id_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2281,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2282,1
    - Dst: oidc_cfg_oauth_client_secret_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2282,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_cfg.c:2285,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2258
    functionDepth: 1
    functionLinenumber: 2258
    functionLinenumberEnd: 2286
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_oauth_client_id_set
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_cfg_server_merge
    - oidc_test_cfg_get
    - oidc_cfg_oauth_client_id_get
    - oidc_cfg_oauth_client_secret_get
    - oidc_test_pool_get
    - oidc_cfg_server_create
    - ap_set_module_config
    - ck_assert_ptr_null
    - oidc_cmd_oauth_client_secret_set
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_oauth_merge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2294,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2295,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2297,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2298,1
    - Dst: oidc_cmd_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2298,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2299,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2299,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2301,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2302,1
    - Dst: oidc_cmd_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2302,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2303,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2303,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2305,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2306,1
    - Dst: oidc_cmd_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2306,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2307,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2307,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2309,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2310,1
    - Dst: oidc_cmd_provider_id_token_aud_values_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2310,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2311,1
    - Dst: oidc_cmd_provider_id_token_aud_values_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2311,1
    - Dst: oidc_cfg_provider_id_token_aud_values_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2312,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2313,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2287
    functionDepth: 1
    functionLinenumber: 2287
    functionLinenumberEnd: 2315
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cfg_provider_client_secret_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_id_token_aud_values_get
    - oidc_cmd_provider_issuer_set
    - oidc_cfg_provider_issuer_get
    - oidc_cmd_provider_client_id_set
    - oidc_cmd_provider_id_token_aud_values_set
    - oidc_cmd_provider_client_secret_set
    - ck_assert_ptr_null
    - oidc_cfg_provider_client_id_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_issuer_client_secret_audvalues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2319,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2320,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2324,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2325,1
    - Dst: oidc_cmd_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2325,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2326,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2326,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2327,1
    - Dst: oidc_cmd_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2327,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2329,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2330,1
    - Dst: oidc_cmd_provider_pushed_authorization_request_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2331,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2332,1
    - Dst: oidc_cfg_provider_pushed_authorization_request_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2332,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2335,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2336,1
    - Dst: oidc_cmd_provider_jwks_uri_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2336,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2337,1
    - Dst: oidc_cfg_provider_jwks_uri_uri_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2337,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2339,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2340,1
    - Dst: oidc_cmd_provider_revocation_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2340,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2341,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2316
    functionDepth: 1
    functionLinenumber: 2316
    functionLinenumberEnd: 2342
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_authorization_endpoint_url_get
    - oidc_test_cmd_get
    - oidc_cfg_provider_revocation_endpoint_url_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cmd_provider_authorization_endpoint_url_set
    - oidc_cfg_provider_pushed_authorization_request_endpoint_url_get
    - ck_assert_ptr_null
    - oidc_cmd_provider_pushed_authorization_request_endpoint_url_set
    - ck_assert_str_eq
    - oidc_cmd_provider_revocation_endpoint_url_set
    - oidc_cmd_provider_jwks_uri_set
    - oidc_cfg_provider_jwks_uri_uri_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_endpoint_urls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2346,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2347,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2350,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2351,1
    - Dst: oidc_cmd_provider_logout_request_params_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2351,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2352,1
    - Dst: oidc_cfg_provider_logout_request_params_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2353
      start: 2343
    functionDepth: 1
    functionLinenumber: 2343
    functionLinenumberEnd: 2353
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cmd_provider_logout_request_params_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_logout_request_params_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_logout_request_params_and_registration_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2357,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2358,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2361,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2362,1
    - Dst: oidc_cmd_provider_backchannel_logout_supported_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2362,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2363,1
    - Dst: oidc_cfg_provider_backchannel_logout_supported_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2363,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2364,1
    - Dst: oidc_cmd_provider_backchannel_logout_supported_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2364,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2365,1
    - Dst: oidc_cfg_provider_backchannel_logout_supported_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2354
    functionDepth: 1
    functionLinenumber: 2354
    functionLinenumberEnd: 2366
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_cmd_provider_backchannel_logout_supported_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cfg_provider_backchannel_logout_supported_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_bool_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2370,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2371,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2374,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2375,1
    - Dst: oidc_cmd_provider_signed_jwks_uri_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2376,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2377,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2377,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2380,1
    - Dst: oidc_cmd_provider_signed_jwks_uri_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2381,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2383,1
    - Dst: oidc_cmd_provider_signed_jwks_uri_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2367
    functionDepth: 1
    functionLinenumber: 2367
    functionLinenumberEnd: 2384
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cmd_provider_signed_jwks_uri_set
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cfg_provider_signed_jwks_uri_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_jwks_uri_and_signed_jwks_uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2388,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2389,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2392,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2393,1
    - Dst: oidc_cmd_provider_registration_endpoint_json_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2393,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2394,1
    - Dst: oidc_cfg_provider_registration_endpoint_json_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2385
    functionDepth: 1
    functionLinenumber: 2385
    functionLinenumberEnd: 2395
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cmd_provider_registration_endpoint_json_set
    - oidc_cfg_provider_registration_endpoint_json_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_registration_endpoint_json_and_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2399,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2400,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2401,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:2402,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cfg.c:2402,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cfg.c:2403,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2405,1
    - Dst: oidc_cmd_provider_verify_public_keys_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2405,1
    - Dst: oidc_cfg_provider_verify_public_keys_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2406,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2407,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_cfg.c:2408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2396
    functionDepth: 1
    functionLinenumber: 2396
    functionLinenumberEnd: 2409
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_verify_public_keys_get
    - oidc_test_cmd_get
    - oidc_cmd_provider_verify_public_keys_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_gt
    - apr_psprintf
    - ck_assert_ptr_null
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cmd_provider_verify_and_client_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2413,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2415,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2416,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2419,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2419,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2420,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2420,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cfg.c:2421,1
    - Dst: oidc_cfg_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_cfg.c:2421,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2423,1
    - Dst: oidc_cfg_provider_merge
      Src: /src/mod_auth_openidc/test/test_cfg.c:2424,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2426,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2426,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2427,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2427,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2428,1
    - Dst: oidc_cfg_provider_scope_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2428,1
    - Dst: oidc_cfg_provider_copy
      Src: /src/mod_auth_openidc/test/test_cfg.c:2431,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cfg.c:2432,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cfg.c:2433,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_cfg.c:2433,1
    - Dst: oidc_cfg_provider_destroy
      Src: /src/mod_auth_openidc/test/test_cfg.c:2436,1
    - Dst: oidc_cfg_provider_destroy
      Src: /src/mod_auth_openidc/test/test_cfg.c:2437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2410
    functionDepth: 1
    functionLinenumber: 2410
    functionLinenumberEnd: 2438
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_destroy
    - oidc_cfg_provider_merge
    - oidc_cfg_provider_create
    - ck_assert_ptr_nonnull
    - oidc_test_pool_get
    - oidc_cfg_provider_issuer_get
    - oidc_cfg_provider_scope_set
    - oidc_cfg_provider_client_id_set
    - ck_assert_ptr_null
    - oidc_cfg_provider_client_id_get
    - oidc_cfg_provider_copy
    - ck_assert_str_eq
    - oidc_cfg_provider_scope_get
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cfg_provider_merge_and_copy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2442,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cfg.c:2443,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2445,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2446,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2447,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2449,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2451,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2452,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2453,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2454,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2455,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2456,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2457,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2458,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2459,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2460,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2461,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2462,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2463,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2464,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2465,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2466,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2467,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2468,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2469,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2470,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2471,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2472,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2473,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2474,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2475,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2476,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2477,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2478,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2479,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2480,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2481,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2482,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2483,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2484,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2485,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2487,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cfg.c:2488,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2490,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2491,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2493,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2494,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2495,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2496,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2497,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2498,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2499,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2500,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2501,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2502,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2503,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2504,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2505,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2506,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2507,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2509,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cfg.c:2510,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2511,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2512,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2513,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2514,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2515,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2516,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2517,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2518,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2519,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2520,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2521,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2522,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2523,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2524,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2525,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2526,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2527,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2528,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2529,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2530,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2531,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2532,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2533,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2534,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2535,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2536,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2537,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2539,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cfg.c:2540,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2541,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2542,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2543,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2544,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2545,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2546,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2547,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2549,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2552,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2554,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2556,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cfg.c:2557,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2558,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2559,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2560,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2561,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2562,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2563,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2564,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2565,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2567,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cfg.c:2568,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2569,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2570,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2571,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2572,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2573,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2574,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cfg.c:2575,1
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_cfg.c:2577,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cfg.c:2578,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cfg.c:2579,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cfg.c:2580,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cfg.c:2581,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cfg.c:2582,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cfg.c:2583,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_cfg.c:2585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2439
    functionDepth: 1
    functionLinenumber: 2439
    functionLinenumberEnd: 2586
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_cfg.c
    functionUses: 0
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_add_checked_fixture
    - suite_add_tcase
    - tcase_add_test
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: _ck_assert_ptr_null
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ck_assert_ptr_null(X, OP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: ck_assert_ptr_null
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 129
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_ptr_null(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: ck_assert_ptr_nonnull
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 141
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_ptr_nonnull(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - OP
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: _ck_assert_ptr
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ck_assert_ptr(X, OP, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: ck_assert_ptr_eq
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_ptr_eq(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: ck_assert_ptr_ne
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_ptr_ne(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - OP
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: _ck_assert_int_cmp
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ck_assert_int_cmp(X, OP, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: ck_assert_int_lt
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_int_lt(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: ck_assert_int_le
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_int_le(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: ck_assert_int_gt
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_int_gt(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: ck_assert_int_ge
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_int_ge(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - OP
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: _ck_assert_uint_cmp
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ck_assert_uint_cmp(X, OP, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: ck_assert_uint_eq
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_uint_eq(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: ck_assert_uint_ne
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_uint_ne(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: ck_assert_uint_lt
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_uint_lt(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: ck_assert_uint_le
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_uint_le(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: ck_assert_uint_gt
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_uint_gt(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: ck_assert_uint_ge
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_uint_ge(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: ck_assert_mem_eq
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_mem_eq(X, Y, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tbl
    - ','
    - key
    - ','
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: ck_assert_table_str
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_table_str(tbl, key, expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tbl
    - ','
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: ck_assert_table_unset
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_table_unset(tbl, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - pool
    - ','
    - s
    - ','
    - jwt
    - ','
    - keys
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: ck_assert_jwt_parses
    functionSourceFile: /src/mod_auth_openidc/test/check_util.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_jwt_parses(pool, s, jwt, keys, err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srunner_create
      Src: /src/mod_auth_openidc/test/check_util.c:50,1
    - Dst: srunner_run_all
      Src: /src/mod_auth_openidc/test/check_util.c:51,1
    - Dst: srunner_ntests_failed
      Src: /src/mod_auth_openidc/test/check_util.c:52,1
    - Dst: srunner_free
      Src: /src/mod_auth_openidc/test/check_util.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: oidc_test_suite_run
    functionSourceFile: /src/mod_auth_openidc/test/check_util.c
    functionUses: 3
    functionsReached:
    - srunner_create
    - srunner_run_all
    - srunner_free
    - srunner_ntests_failed
    linkageType: ''
    returnType: int
    signature: int oidc_test_suite_run(Suite *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_state.c:61,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_state.c:62,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/test_state.c:63,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_state.c:64,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_state.c:65,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_state.c:66,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_state.c:67,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_state.c:68,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_state.c:70,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_state.c:70,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_state.c:70,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_state.c:70,1
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/test/test_state.c:71,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_state.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - r
    - c
    - ts_offset
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: state_cookie_value
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_proto_state_set_state
    - oidc_proto_state_set_nonce
    - oidc_proto_state_set_response_type
    - apr_time_sec
    - oidc_proto_state_to_cookie
    - oidc_proto_state_set_original_method
    - apr_time_now
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - oidc_proto_state_new
    - oidc_proto_state_set_timestamp_now
    - oidc_json_integer
    - oidc_proto_state_set_issuer
    linkageType: ''
    returnType: char
    signature: char *state_cookie_value(request_rec *r, oidc_cfg_t *c, int ts_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_state.c:77,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/test/test_state.c:81,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_state.c:82,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_state.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    - oidc_test_request_get
    - oidc_state_cookie_name
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_state_cookie_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_state.c:88,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_state.c:89,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:93,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_state.c:94,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_state.c:95,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:97,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_state.c:98,1
    - Dst: ck_assert_str_ne
      Src: /src/mod_auth_openidc/test/test_state.c:99,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:102,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_state.c:103,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_state.c:104,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_state.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_state_browser_fingerprint
    - apr_table_set
    - ck_assert_str_ne
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_state_browser_fingerprint_user_agent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_state.c:111,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_state.c:112,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_state.c:113,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_state.c:114,1
    - Dst: oidc_cmd_state_input_headers_set
      Src: /src/mod_auth_openidc/test/test_state.c:114,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:118,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_state.c:119,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:120,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_state.c:121,1
    - Dst: ck_assert_str_ne
      Src: /src/mod_auth_openidc/test/test_state.c:122,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_state.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_state_browser_fingerprint
    - oidc_cmd_state_input_headers_set
    - apr_table_set
    - ck_assert_str_ne
    - ck_assert_ptr_null
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_state_browser_fingerprint_xff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_state.c:129,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_state.c:130,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_state.c:131,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_state.c:132,1
    - Dst: oidc_cmd_state_input_headers_set
      Src: /src/mod_auth_openidc/test/test_state.c:132,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:136,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_state.c:137,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:138,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_state.c:139,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_state.c:140,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_state.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 143
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_state_browser_fingerprint
    - oidc_cmd_state_input_headers_set
    - apr_table_set
    - ck_assert_ptr_null
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_state_browser_fingerprint_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_state.c:147,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_state.c:148,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_state.c:150,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_state.c:151,1
    - Dst: oidc_state_cookies_clean_expired
      Src: /src/mod_auth_openidc/test/test_state.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_state_cookies_clean_expired
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_state_cookies_clean_no_cookie_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_state.c:156,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_state.c:157,1
    - Dst: state_cookie_value
      Src: /src/mod_auth_openidc/test/test_state.c:162,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/test/test_state.c:163,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:164,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_state.c:164,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_state.c:166,1
    - Dst: oidc_state_cookies_clean_expired
      Src: /src/mod_auth_openidc/test/test_state.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - state_cookie_value
    - oidc_state_cookies_clean_expired
    - apr_table_set
    - apr_psprintf
    - oidc_state_cookie_name
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_state_cookies_clean_skip_current_and_non_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_state.c:171,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_state.c:172,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:177,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_state.c:179,1
    - Dst: oidc_state_cookies_clean_expired
      Src: /src/mod_auth_openidc/test/test_state.c:179,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_state.c:181,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_state.c:185,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_state.c:186,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_state.c:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 190
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_state_cookies_clean_expired
    - apr_table_set
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_elts
    - _oidc_strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_state_cookies_clean_undecodable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_state.c:194,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_state.c:195,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:199,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_state.c:201,1
    - Dst: oidc_state_cookies_clean_expired
      Src: /src/mod_auth_openidc/test/test_state.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 202
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_state_cookies_clean_expired
    - apr_table_set
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_state_cookies_clean_no_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_state.c:206,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_state.c:207,1
    - Dst: state_cookie_value
      Src: /src/mod_auth_openidc/test/test_state.c:211,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:212,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_state.c:212,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_state.c:214,1
    - Dst: oidc_state_cookies_clean_expired
      Src: /src/mod_auth_openidc/test/test_state.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 215
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - state_cookie_value
    - oidc_state_cookies_clean_expired
    - apr_table_set
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_state_cookies_clean_valid_kept)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_state.c:219,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_state.c:220,1
    - Dst: state_cookie_value
      Src: /src/mod_auth_openidc/test/test_state.c:224,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:225,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_state.c:225,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_state.c:227,1
    - Dst: oidc_state_cookies_clean_expired
      Src: /src/mod_auth_openidc/test/test_state.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - state_cookie_value
    - oidc_state_cookies_clean_expired
    - apr_table_set
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_state_cookies_clean_expired_deleted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_state.c:232,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_state.c:233,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_state.c:237,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_state.c:238,1
    - Dst: oidc_cmd_max_number_of_state_cookies_set
      Src: /src/mod_auth_openidc/test/test_state.c:238,1
    - Dst: state_cookie_value
      Src: /src/mod_auth_openidc/test/test_state.c:240,1
    - Dst: state_cookie_value
      Src: /src/mod_auth_openidc/test/test_state.c:241,1
    - Dst: state_cookie_value
      Src: /src/mod_auth_openidc/test/test_state.c:242,1
    - Dst: state_cookie_value
      Src: /src/mod_auth_openidc/test/test_state.c:243,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_state.c:248,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_state.c:249,1
    - Dst: oidc_state_cookies_clean_expired
      Src: /src/mod_auth_openidc/test/test_state.c:256,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_state.c:257,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_state.c:260,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_state.c:264,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_state.c:265,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_state.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 269
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cmd_max_number_of_state_cookies_set
    - state_cookie_value
    - oidc_state_cookies_clean_expired
    - apr_table_set
    - ck_assert_msg
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_elts
    - _oidc_strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_state_cookies_clean_delete_oldest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_state.c:273,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_state.c:275,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_state.c:276,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_state.c:277,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_state.c:278,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_state.c:279,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_state.c:280,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_state.c:281,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_state.c:282,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_state.c:283,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_state.c:284,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_state.c:285,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_state.c:286,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_state.c:287,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_state.c:288,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_state.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 291
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_state.c
    functionUses: 0
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_add_checked_fixture
    - suite_add_tcase
    - tcase_add_test
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:58,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_proto.c:76,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:79,1
    - Dst: oidc_proto_idtoken_validate_access_token
      Src: /src/mod_auth_openidc/test/test_proto.c:79,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 82
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_proto_idtoken_validate_access_token
    - oidc_jwt_destroy
    - ck_assert_jwt_parses
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_validate_access_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:86,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_proto.c:104,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:107,1
    - Dst: oidc_proto_idtoken_validate_code
      Src: /src/mod_auth_openidc/test/test_proto.c:107,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 110
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_jwt_destroy
    - oidc_proto_idtoken_validate_code
    - ck_assert_jwt_parses
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_validate_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:114,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:115,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:117,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:119,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:120,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_proto.c:121,1
    - Dst: oidc_cfg_provider_auth_request_params_set
      Src: /src/mod_auth_openidc/test/test_proto.c:122,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:127,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:128,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_proto.c:129,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_proto.c:130,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:131,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_proto.c:131,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_proto.c:132,1
    - Dst: oidc_cfg_provider_response_type_get
      Src: /src/mod_auth_openidc/test/test_proto.c:132,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_proto.c:133,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:135,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:136,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_proto.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 144
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_create
    - oidc_request_auth
    - oidc_cfg_provider_auth_request_params_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_authorization_endpoint_url_set
    - oidc_cfg_provider_response_type_get
    - oidc_proto_state_set_issuer
    - oidc_test_request_get
    - oidc_proto_state_set_nonce
    - oidc_proto_state_set_original_url
    - oidc_cfg_provider_issuer_get
    - oidc_proto_state_new
    - oidc_cfg_provider_client_id_set
    - ck_assert_table_str
    - oidc_proto_state_set_response_type
    - oidc_proto_state_set_timestamp_now
    - oidc_proto_state_set_original_method
    - ck_assert_int_eq
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_authorization_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:148,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_proto.c:150,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_proto.c:153,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:154,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_proto.c:154,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:154,1
    - Dst: oidc_cfg_provider_end_session_endpoint_set
      Src: /src/mod_auth_openidc/test/test_proto.c:156,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:156,1
    - Dst: oidc_cfg_provider_logout_request_params_set
      Src: /src/mod_auth_openidc/test/test_proto.c:158,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:158,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:162,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_proto.c:162,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:163,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:164,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_proto.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 169
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_session_load
    - oidc_session_set_issuer
    - oidc_cfg_provider_get
    - oidc_cfg_provider_issuer_get
    - apr_table_get
    - oidc_cfg_provider_end_session_endpoint_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_provider_logout_request_params_set
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_logout_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:173,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_proto.c:175,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:199,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_proto.c:212,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:214,1
    - Dst: oidc_proto_idtoken_validate_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:214,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:214,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:215,1
    - Dst: oidc_proto_idtoken_validate_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:215,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:215,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 217
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cfg_provider_get
    - oidc_jwt_destroy
    - ck_assert_jwt_parses
    - ck_assert_int_eq
    - oidc_proto_idtoken_validate_nonce
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_validate_nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r
    - section
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: e2e_replay_cache_get
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t e2e_replay_cache_get(request_rec *r, const char *section,
      const char *key, char **value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - r
    - section
    - key
    - value
    - expiry
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: e2e_replay_cache_set
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t e2e_replay_cache_set(request_rec *r, const char *section,
      const char *key, const char *value,\n\t\t\t\t       apr_time_t expiry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:238,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:239,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:241,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:243,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:243,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:247,1
    - Dst: oidc_proto_idtoken_validate_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:247,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:247,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:251,1
    - Dst: oidc_proto_idtoken_validate_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:251,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:251,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 257
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_test_request_get
    - oidc_json_object_set_new
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_jwt_destroy
    - oidc_json_string
    - oidc_proto_idtoken_validate_nonce
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_validate_nonce_cache_errors_fail_open)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:261,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_proto.c:268,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_proto.c:268,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:281,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/test/test_proto.c:284,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:284,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/test/test_proto.c:288,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:288,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:291,1
    - Dst: EVP_get_digestbyname
      Src: /src/mod_auth_openidc/test/test_proto.c:295,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:297,1
    - Dst: HMAC
      Src: /src/mod_auth_openidc/test/test_proto.c:297,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:297,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:298,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/test/test_proto.c:301,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:304,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_proto.c:306,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:309,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_proto.c:309,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:310,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:312,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/test_proto.c:312,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/test/test_proto.c:312,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:314,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:314,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:316,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 318
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_request_get
    - apr_time_sec
    - oidc_jwt_verify
    - ck_assert_int_eq
    - oidc_proto_jwt_validate
    - apr_time_now
    - oidc_jwt_destroy
    - HMAC
    - oidc_util_base64url_encode
    - apr_psprintf
    - ck_assert_jwt_parses
    - EVP_get_digestbyname
    - oidc_jwk_destroy
    - oidc_util_key_symmetric_merge
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_validate_jwt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:322,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:324,1
    - Dst: oidc_proto_nonce_gen
      Src: /src/mod_auth_openidc/test/test_proto.c:324,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:325,1
    - Dst: oidc_proto_jti_gen
      Src: /src/mod_auth_openidc/test/test_proto.c:327,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:328,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:330,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 331
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_proto_nonce_gen
    - oidc_proto_jti_gen
    - ck_assert_int_eq
    - ck_assert_int_ne
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_nonce_and_jti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_proto.c:335,1
    - Dst: oidc_proto_supported_flows
      Src: /src/mod_auth_openidc/test/test_proto.c:336,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:337,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:338,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:341,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:341,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:342,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:342,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:343,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 344
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_pool_get
    - oidc_proto_supported_flows
    - oidc_proto_flow_is_supported
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_supported_flows_and_check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:348,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:349,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:350,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:352,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:353,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_proto.c:354,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_proto.c:355,1
    - Dst: oidc_proto_state_set_response_mode
      Src: /src/mod_auth_openidc/test/test_proto.c:356,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_proto.c:357,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/test_proto.c:358,1
    - Dst: oidc_proto_state_set_prompt
      Src: /src/mod_auth_openidc/test/test_proto.c:359,1
    - Dst: oidc_proto_state_set_pkce_state
      Src: /src/mod_auth_openidc/test/test_proto.c:360,1
    - Dst: oidc_proto_state_set_auth_request_params
      Src: /src/mod_auth_openidc/test/test_proto.c:361,1
    - Dst: oidc_proto_state_set_path_scope
      Src: /src/mod_auth_openidc/test/test_proto.c:362,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_proto.c:363,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:365,1
    - Dst: oidc_proto_state_get_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:365,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:366,1
    - Dst: oidc_proto_state_get_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:366,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:367,1
    - Dst: oidc_proto_state_get_original_url
      Src: /src/mod_auth_openidc/test/test_proto.c:367,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:368,1
    - Dst: oidc_proto_state_get_original_method
      Src: /src/mod_auth_openidc/test/test_proto.c:368,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:369,1
    - Dst: oidc_proto_state_get_response_mode
      Src: /src/mod_auth_openidc/test/test_proto.c:369,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:370,1
    - Dst: oidc_proto_state_get_response_type
      Src: /src/mod_auth_openidc/test/test_proto.c:370,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:371,1
    - Dst: oidc_proto_state_get_state
      Src: /src/mod_auth_openidc/test/test_proto.c:371,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:372,1
    - Dst: oidc_proto_state_get_prompt
      Src: /src/mod_auth_openidc/test/test_proto.c:372,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:373,1
    - Dst: oidc_proto_state_get_pkce_state
      Src: /src/mod_auth_openidc/test/test_proto.c:373,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:374,1
    - Dst: oidc_proto_state_get_auth_request_params
      Src: /src/mod_auth_openidc/test/test_proto.c:374,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:375,1
    - Dst: oidc_proto_state_get_path_scope
      Src: /src/mod_auth_openidc/test/test_proto.c:375,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_proto.c:376,1
    - Dst: oidc_proto_state_get_timestamp
      Src: /src/mod_auth_openidc/test/test_proto.c:376,1
    - Dst: oidc_proto_state_to_string
      Src: /src/mod_auth_openidc/test/test_proto.c:378,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:379,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:381,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:381,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:383,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:383,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:384,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:384,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 387
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_get_issuer
    - oidc_proto_state_get_response_mode
    - oidc_proto_state_get_original_url
    - _oidc_strstr
    - oidc_proto_state_set_path_scope
    - oidc_proto_state_get_timestamp
    - ck_assert
    - oidc_proto_state_get_nonce
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_proto_state_get_original_method
    - ck_assert_ptr_nonnull
    - oidc_proto_state_set_issuer
    - oidc_test_request_get
    - oidc_proto_state_set_nonce
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - oidc_proto_state_get_prompt
    - oidc_proto_state_new
    - oidc_proto_state_set_response_mode
    - oidc_proto_state_get_auth_request_params
    - oidc_proto_state_set_state
    - oidc_proto_state_set_response_type
    - oidc_proto_state_set_pkce_state
    - oidc_proto_state_set_original_method
    - oidc_proto_state_get_path_scope
    - oidc_proto_state_set_prompt
    - oidc_proto_state_get_response_type
    - oidc_proto_state_get_pkce_state
    - oidc_proto_state_set_auth_request_params
    - oidc_proto_state_get_state
    - oidc_proto_state_set_timestamp_now
    - oidc_proto_state_to_string
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_state_getters_setters_and_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:391,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:392,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:394,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:395,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/test_proto.c:396,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:397,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_proto.c:398,1
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/test/test_proto.c:400,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:401,1
    - Dst: oidc_proto_state_from_cookie
      Src: /src/mod_auth_openidc/test/test_proto.c:403,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:404,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:405,1
    - Dst: oidc_proto_state_get_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:405,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:406,1
    - Dst: oidc_proto_state_get_state
      Src: /src/mod_auth_openidc/test/test_proto.c:406,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:407,1
    - Dst: oidc_proto_state_get_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:407,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:409,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 411
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_proto_state_set_state
    - oidc_proto_state_set_nonce
    - oidc_proto_state_from_cookie
    - oidc_test_cfg_get
    - oidc_proto_state_to_cookie
    - ck_assert_ptr_nonnull
    - oidc_proto_state_destroy
    - oidc_proto_state_get_issuer
    - oidc_proto_state_get_nonce
    - oidc_proto_state_new
    - oidc_proto_state_get_state
    - oidc_proto_state_set_timestamp_now
    - ck_assert_str_eq
    - oidc_proto_state_set_issuer
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_state_cookie_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:415,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:421,1
    - Dst: state
      Src: /src/mod_auth_openidc/test/test_proto.c:421,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:422,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:423,1
    - Dst: challenge
      Src: /src/mod_auth_openidc/test/test_proto.c:423,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:424,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:425,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:426,1
    - Dst: verifier
      Src: /src/mod_auth_openidc/test/test_proto.c:426,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:427,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:428,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:434,1
    - Dst: state
      Src: /src/mod_auth_openidc/test/test_proto.c:434,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:435,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:436,1
    - Dst: challenge
      Src: /src/mod_auth_openidc/test/test_proto.c:436,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:437,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:438,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:438,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:440,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_proto.c:440,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:441,1
    - Dst: verifier
      Src: /src/mod_auth_openidc/test/test_proto.c:441,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:442,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 444
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - state
    - _oidc_strlen
    - oidc_test_request_get
    - _oidc_strcmp
    - verifier
    - ck_assert_int_eq
    - ck_assert_str_eq
    - challenge
    - ck_assert_int_ne
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_pkce_plain_and_s256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_proto.c:448,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:449,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:452,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:453,1
    - Dst: oidc_proto_profile_token_endpoint_auth_aud
      Src: /src/mod_auth_openidc/test/test_proto.c:453,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:456,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:457,1
    - Dst: oidc_proto_profile_revocation_endpoint_auth_aud
      Src: /src/mod_auth_openidc/test/test_proto.c:457,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:461,1
    - Dst: oidc_proto_profile_request_uri_scope_get
      Src: /src/mod_auth_openidc/test/test_proto.c:461,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:464,1
    - Dst: oidc_proto_profile_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_proto.c:464,1
    - Dst: oidc_cfg_provider_profile_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:468,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:470,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:471,1
    - Dst: oidc_proto_profile_token_endpoint_auth_aud
      Src: /src/mod_auth_openidc/test/test_proto.c:471,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:473,1
    - Dst: oidc_proto_profile_pkce_get
      Src: /src/mod_auth_openidc/test/test_proto.c:473,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:475,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_proto.c:475,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:477,1
    - Dst: oidc_proto_profile_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/test/test_proto.c:477,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:479,1
    - Dst: oidc_proto_profile_response_require_iss_get
      Src: /src/mod_auth_openidc/test/test_proto.c:479,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:481,1
    - Dst: oidc_proto_profile_request_uri_scope_get
      Src: /src/mod_auth_openidc/test/test_proto.c:481,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:484,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:485,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_proto.c:485,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:486,1
    - Dst: oidc_cfg_provider_dpop_mode_set
      Src: /src/mod_auth_openidc/test/test_proto.c:486,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:487,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_proto.c:487,1
    - Dst: oidc_cfg_provider_dpop_mode_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:488,1
    - Dst: oidc_cfg_provider_dpop_supported_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:492,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:493,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_proto.c:493,1
    - Dst: oidc_cfg_provider_dpop_supported_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:496,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:497,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:498,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_proto.c:498,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:503,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:505,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/test/test_proto.c:505,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:506,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_proto.c:506,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:508,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:508,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:509,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_set
      Src: /src/mod_auth_openidc/test/test_proto.c:509,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:510,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:511,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_proto.c:511,1
    - Dst: oidc_cfg_provider_dpop_supported_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:513,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:514,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/test/test_proto.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 515
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_tls_client_cert_set
    - oidc_cfg_provider_dpop_mode_set
    - oidc_proto_profile_dpop_mode_get
    - oidc_cfg_provider_create
    - oidc_test_pool_get
    - oidc_proto_profile_revocation_endpoint_auth_aud
    - oidc_cfg_provider_issuer_set
    - oidc_cfg_provider_dpop_supported_int_set
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_proto_profile_response_require_iss_get
    - oidc_cfg_provider_cert_bound_tokens_int_set
    - oidc_proto_profile_request_uri_scope_get
    - oidc_proto_profile_pkce_get
    - getenv
    - oidc_proto_profile_token_endpoint_auth_aud
    - oidc_cfg_provider_profile_int_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_cfg_provider_dpop_mode_int_set
    - oidc_cfg_provider_revocation_endpoint_url_set
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    - oidc_proto_profile_cert_bound_tokens_get
    - ck_assert_ptr_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_profile_helpers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_proto.c:519,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:520,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:523,1
    - Dst: oidc_proto_profile_auth_request_method_get
      Src: /src/mod_auth_openidc/test/test_proto.c:523,1
    - Dst: oidc_cfg_provider_profile_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:526,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:527,1
    - Dst: oidc_proto_profile_auth_request_method_get
      Src: /src/mod_auth_openidc/test/test_proto.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 528
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_create
    - oidc_cfg_provider_profile_int_set
    - oidc_test_pool_get
    - ck_assert_int_eq
    - oidc_proto_profile_auth_request_method_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_profile_auth_request_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_proto.c:532,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:533,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:536,1
    - Dst: oidc_proto_profile_id_token_aud_values_get
      Src: /src/mod_auth_openidc/test/test_proto.c:536,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_proto.c:539,1
    - Dst: oidc_cfg_provider_profile_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:540,1
    - Dst: oidc_proto_profile_id_token_aud_values_get
      Src: /src/mod_auth_openidc/test/test_proto.c:541,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:542,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:543,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:544,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_proto.c:544,1
    - Dst: oidc_cfg_provider_id_token_aud_values_set
      Src: /src/mod_auth_openidc/test/test_proto.c:547,1
    - Dst: oidc_proto_profile_id_token_aud_values_get
      Src: /src/mod_auth_openidc/test/test_proto.c:548,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:549,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:550,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:551,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_proto.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 552
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_id_token_aud_values_set
    - oidc_cfg_provider_create
    - APR_ARRAY_IDX
    - oidc_cfg_provider_profile_int_set
    - oidc_test_pool_get
    - oidc_proto_profile_id_token_aud_values_get
    - oidc_cfg_provider_client_id_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_profile_id_token_aud_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_proto.c:556,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:557,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:559,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:560,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:563,1
    - Dst: oidc_proto_profile_revocation_endpoint_auth_aud
      Src: /src/mod_auth_openidc/test/test_proto.c:563,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:567,1
    - Dst: oidc_proto_profile_revocation_endpoint_auth_aud
      Src: /src/mod_auth_openidc/test/test_proto.c:567,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:571,1
    - Dst: oidc_proto_profile_revocation_endpoint_auth_aud
      Src: /src/mod_auth_openidc/test/test_proto.c:571,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:575,1
    - Dst: oidc_cfg_provider_profile_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:576,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:577,1
    - Dst: oidc_proto_profile_revocation_endpoint_auth_aud
      Src: /src/mod_auth_openidc/test/test_proto.c:577,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:578,1
    - Dst: oidc_proto_profile_revocation_endpoint_auth_aud
      Src: /src/mod_auth_openidc/test/test_proto.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 579
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_create
    - oidc_cfg_provider_profile_int_set
    - oidc_test_pool_get
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_str_eq
    - oidc_proto_profile_revocation_endpoint_auth_aud
    - oidc_cfg_provider_revocation_endpoint_url_set
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_profile_revocation_aud_variants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:583,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:585,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:586,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 588
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    - ck_assert_ptr_null
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_pkce_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:592,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:593,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:594,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:599,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:599,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:602,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:603,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:604,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_proto.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_table_make
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_proto_token_endpoint_auth
    - apr_table_elts
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_no_client_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:609,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:610,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:616,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:617,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:617,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:620,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:621,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:622,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:626,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:626,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:629,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_proto.c:631,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:634,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:635,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:635,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_proto.c:638,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_proto.c:639,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:642,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:643,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:643,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_proto.c:646,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_proto.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 648
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_table_make
    - ck_assert_table_str
    - ck_assert_ptr_null
    - ck_assert_table_unset
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_proto_token_endpoint_auth
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_basic_and_post)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:652,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:653,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:654,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:659,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:659,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:662,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:665,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:665,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:668,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 670
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_table_make
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_proto_token_endpoint_auth
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_bearer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:674,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:675,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:681,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:682,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:682,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_proto.c:685,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_proto.c:686,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:687,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:688,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:691,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:692,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:692,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_proto.c:695,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_proto.c:696,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 698
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_table_make
    - ck_assert_table_str
    - ck_assert_ptr_null
    - ck_assert_table_unset
    - ck_assert_int_eq
    - oidc_proto_token_endpoint_auth
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_mtls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:702,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:703,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:704,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:709,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 712
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_table_make
    - ck_assert_int_eq
    - oidc_proto_token_endpoint_auth
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_unknown_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:716,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:717,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:718,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:724,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:724,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:728,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:729,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:730,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:731,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:732,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:734,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:735,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:736,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:737,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:738,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 739
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_table_make
    - _oidc_strstr
    - ck_assert_msg
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_proto_token_endpoint_auth
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_client_secret_jwt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:743,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:744,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:745,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:752,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:752,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_proto.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 756
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_table_make
    - ck_assert_table_unset
    - ck_assert_int_eq
    - oidc_proto_token_endpoint_auth
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_private_key_jwt_no_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:760,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:761,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:764,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:764,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:765,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:766,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:767,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:767,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:768,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:770,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:776,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:776,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:780,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:781,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_proto.c:782,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:787,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_proto.c:787,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:788,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 790
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_proto_token_endpoint_auth
    - oidc_proto_jwt_header_peek
    - oidc_test_cfg_get
    - apr_table_make
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_table_str
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cmd_private_keys_set
    - getenv
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_private_key_jwt_with_rsa_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:794,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:795,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:798,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:798,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:799,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:800,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:801,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:801,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:802,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:804,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:809,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:809,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:813,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:814,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:816,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_proto.c:816,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 818
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_proto_token_endpoint_auth
    - oidc_proto_jwt_header_peek
    - oidc_test_cfg_get
    - apr_table_make
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cmd_private_keys_set
    - getenv
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_private_key_jwt_explicit_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:824,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:825,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:827,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:827,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:830,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:831,1
    - Dst: oidc_jwk_parse_pem_private_key
      Src: /src/mod_auth_openidc/test/test_proto.c:831,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/test_proto.c:834,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:837,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:841,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:841,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:845,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:846,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:848,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_proto.c:848,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:849,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 852
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_jwk_parse_pem_private_key
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - oidc_proto_jwt_header_peek
    - apr_table_make
    - ck_assert_msg
    - apr_psprintf
    - apr_array_make
    - ck_assert_str_eq
    - oidc_proto_token_endpoint_auth
    - oidc_jwk_destroy
    - getenv
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_private_key_jwt_client_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:859,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:860,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:861,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:865,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:865,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_proto.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 869
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_table_make
    - ck_assert_table_unset
    - ck_assert_int_eq
    - oidc_proto_token_endpoint_auth
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_client_secret_jwt_empty_secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:876,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:877,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/test/test_proto.c:883,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:884,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/test_proto.c:886,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:889,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:893,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:893,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_proto.c:897,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 900
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - apr_table_make
    - oidc_jwk_create_symmetric_key
    - ck_assert_table_unset
    - apr_array_make
    - oidc_proto_token_endpoint_auth
    - oidc_jwk_destroy
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_auth_private_key_jwt_unsupported_key_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_proto.c:905,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/test/test_proto.c:909,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - table
    - key
    argTypes:
    - apr_table_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 912
    functionName: e2e_table_count
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - _oidc_strnatcasecmp
    - apr_table_elts
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST e2e_table_count(const apr_table_t *table, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:916,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:917,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:918,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:919,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_proto.c:921,1
    - Dst: oidc_util_base64url_decode
      Src: /src/mod_auth_openidc/test/test_proto.c:922,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/test_proto.c:922,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_proto.c:923,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:924,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/test/test_proto.c:926,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:927,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - r
    - s_jwt
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 930
    functionName: e2e_jwt_jti
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_json_decref
    - ck_assert_int_gt
    - json_loads
    - oidc_util_base64url_decode
    - _oidc_strstr
    - apr_pstrmemdup
    - oidc_json_object_get_string
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: char
    signature: char *e2e_jwt_jti(request_rec *r, const char *s_jwt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:936,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:937,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:939,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:939,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:940,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:941,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:941,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:942,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:944,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:948,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:948,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:952,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:952,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:953,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:955,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:955,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:959,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:960,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:963,1
    - Dst: e2e_table_count
      Src: /src/mod_auth_openidc/test/test_proto.c:963,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:964,1
    - Dst: e2e_table_count
      Src: /src/mod_auth_openidc/test/test_proto.c:964,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_proto.c:965,1
    - Dst: ck_assert_str_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:968,1
    - Dst: ck_assert_str_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:969,1
    - Dst: e2e_jwt_jti
      Src: /src/mod_auth_openidc/test/test_proto.c:969,1
    - Dst: e2e_jwt_jti
      Src: /src/mod_auth_openidc/test/test_proto.c:969,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:972,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:972,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:976,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:976,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:980,1
    - Dst: e2e_table_count
      Src: /src/mod_auth_openidc/test/test_proto.c:980,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:981,1
    - Dst: e2e_table_count
      Src: /src/mod_auth_openidc/test/test_proto.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 935
    functionDepth: 2
    functionLinenumber: 935
    functionLinenumberEnd: 982
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_proto_token_endpoint_auth
    - oidc_test_cfg_get
    - e2e_jwt_jti
    - apr_table_make
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_table_str
    - ck_assert_int_eq
    - ck_assert_str_ne
    - oidc_cmd_private_keys_set
    - e2e_table_count
    - getenv
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_token_endpoint_auth_idempotent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:986,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_proto.c:988,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_proto.c:988,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:992,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:996,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:996,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:997,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1000,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1001,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1004,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1004,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1005,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1008,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1009,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1012,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1012,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1013,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1016,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1017,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1020,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1020,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1021,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1024,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1025,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1028,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1028,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1030,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1030,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1031,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1034,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1035,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1038,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1038,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1039,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1042,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1043,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1046,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1046,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1048,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1048,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1049,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1052,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1053,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1056,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1056,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1057,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1060,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1061,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1064,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1064,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1065,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1069,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1070,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1073,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1073,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1075,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1075,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1078,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/test/test_proto.c:1078,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 1080
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_test_request_get
    - apr_time_sec
    - apr_pstrdup
    - oidc_proto_jwt_validate
    - apr_time_now
    - oidc_jwt_destroy
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwt_validate_edge_cases)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1089,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_proto.c:1089,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1090,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1092,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1093,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_proto.c:1094,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_proto.c:1094,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1095,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:1095,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1096,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:1096,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1098,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:1098,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1100,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:1100,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1101,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_proto.c:1101,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1102,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_proto.c:1102,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1103,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1107,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_proto.c:1107,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_proto.c:1108,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1109,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1110,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - r
    - sub
    - nonce
    - secret
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1113
    functionName: proto_sign_idtoken_hs256
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - apr_time_sec
    - oidc_json_object_set_new
    - apr_time_now
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - oidc_json_string
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *proto_sign_idtoken_hs256(request_rec *r, const char *sub,
      const char *nonce, const char *secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1121,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1122,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_proto.c:1123,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_proto.c:1123,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1124,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:1124,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1125,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:1125,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1127,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:1127,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1129,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:1129,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1130,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_proto.c:1130,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1131,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_proto.c:1131,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_proto.c:1133,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1134,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - r
    - sub
    - nonce
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1137
    functionName: proto_unsigned_idtoken
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - apr_time_sec
    - oidc_json_object_set_new
    - apr_time_now
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - oidc_json_string
    - oidc_json_integer
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: char
    signature: char *proto_unsigned_idtoken(request_rec *r, const char *sub, const
      char *nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1140,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1141,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1142,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1146,1
    - Dst: proto_unsigned_idtoken
      Src: /src/mod_auth_openidc/test/test_proto.c:1151,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1152,1
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/test/test_proto.c:1152,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1153,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1154,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1155,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1160,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1160,1
    - Dst: proto_unsigned_idtoken
      Src: /src/mod_auth_openidc/test/test_proto.c:1161,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1162,1
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/test/test_proto.c:1162,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1163,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1164,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1165,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1169,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1169,1
    - Dst: proto_unsigned_idtoken
      Src: /src/mod_auth_openidc/test/test_proto.c:1170,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1171,1
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/test/test_proto.c:1171,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1172,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1176,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1176,1
    - Dst: proto_unsigned_idtoken
      Src: /src/mod_auth_openidc/test/test_proto.c:1177,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1178,1
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/test/test_proto.c:1178,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1139
    functionDepth: 2
    functionLinenumber: 1139
    functionLinenumberEnd: 1180
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - proto_unsigned_idtoken
    - oidc_test_request_get
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_id_token_signed_response_alg_set
    - oidc_jwt_destroy
    - oidc_proto_idtoken_parse
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_idtoken_parse_alg_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1184,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1185,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1186,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1190,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1193,1
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/test/test_proto.c:1193,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1194,1
    - Dst: proto_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_proto.c:1197,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1198,1
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/test/test_proto.c:1198,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1199,1
    - Dst: proto_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_proto.c:1202,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1203,1
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/test/test_proto.c:1203,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1204,1
    - Dst: proto_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_proto.c:1207,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1208,1
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/test/test_proto.c:1208,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1209,1
    - Dst: proto_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_proto.c:1212,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1213,1
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/test/test_proto.c:1213,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1214,1
    - Dst: proto_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_proto.c:1217,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1218,1
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/test/test_proto.c:1218,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1219,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1220,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1181
    functionDepth: 2
    functionLinenumber: 1181
    functionLinenumberEnd: 1222
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_jwt_destroy
    - oidc_proto_idtoken_parse
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - proto_sign_idtoken_hs256
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_idtoken_parse_error_paths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1232,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1233,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_proto.c:1237,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_proto.c:1244,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1245,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:1246,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_proto.c:1247,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1251,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_proto.c:1251,1
    - Dst: proto_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_proto.c:1253,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_proto.c:1254,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1255,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1256,1
    - Dst: oidc_proto_jwt_verify
      Src: /src/mod_auth_openidc/test/test_proto.c:1257,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/test/test_proto.c:1257,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1259,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1260,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_proto.c:1263,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1264,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_proto.c:1264,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_proto.c:1266,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1267,1
    - Dst: oidc_proto_jwt_verify
      Src: /src/mod_auth_openidc/test/test_proto.c:1268,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/test/test_proto.c:1268,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1270,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1271,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1281,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_proto.c:1281,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1282,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1284,1
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/test_proto.c:1284,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1285,1
    - Dst: oidc_test_http_server_captured
      Src: /src/mod_auth_openidc/test/test_proto.c:1285,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1286,1
    - Dst: oidc_test_http_server_captured
      Src: /src/mod_auth_openidc/test/test_proto.c:1286,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:1287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1223
    functionDepth: 2
    functionLinenumber: 1223
    functionLinenumberEnd: 1288
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_proto_jwt_verify
    - oidc_util_key_symmetric_merge
    - oidc_http_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_test_http_server_start_seq
    - apr_pstrcat
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_jwk_destroy
    - oidc_cfg_outgoing_proxy_get
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_captured
    - oidc_test_request_get
    - ck_assert_jwt_parses
    - proto_sign_idtoken_hs256
    - oidc_util_key_symmetric_create
    - _oidc_memset
    - oidc_jwt_destroy
    - oidc_test_http_server_request_count
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwt_verify_no_kid_retry_needs_jwks_uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1292,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1293,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_proto.c:1297,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1300,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1301,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1302,1
    - Dst: oidc_proto_jwt_verify
      Src: /src/mod_auth_openidc/test/test_proto.c:1302,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1306,1
    - Dst: oidc_proto_jwt_verify
      Src: /src/mod_auth_openidc/test/test_proto.c:1306,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1307,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1310,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1311,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1313,1
    - Dst: oidc_proto_jwt_verify
      Src: /src/mod_auth_openidc/test/test_proto.c:1313,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1314,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1320,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_proto.c:1320,1
    - Dst: proto_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_proto.c:1321,1
    - Dst: ck_assert_jwt_parses
      Src: /src/mod_auth_openidc/test/test_proto.c:1322,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_proto.c:1323,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1324,1
    - Dst: oidc_proto_jwt_verify
      Src: /src/mod_auth_openidc/test/test_proto.c:1325,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/test/test_proto.c:1325,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1328,1
    - Dst: oidc_proto_jwt_verify
      Src: /src/mod_auth_openidc/test/test_proto.c:1329,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/test/test_proto.c:1329,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1331,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1332,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1335,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_proto.c:1335,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1338,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1339,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1341,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_proto.c:1341,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1343,1
    - Dst: oidc_proto_jwt_sign_and_serialize
      Src: /src/mod_auth_openidc/test/test_proto.c:1343,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1344,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1289
    functionDepth: 2
    functionLinenumber: 1289
    functionLinenumberEnd: 1346
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - _oidc_memset
    - oidc_test_request_get
    - apr_pstrdup
    - oidc_jwt_new
    - oidc_proto_jwt_header_peek
    - oidc_test_cfg_get
    - oidc_util_key_symmetric_merge
    - oidc_jwt_destroy
    - ck_assert_jwt_parses
    - ck_assert_ptr_null
    - oidc_proto_jwt_verify
    - ck_assert_int_eq
    - oidc_proto_jwt_sign_and_serialize
    - oidc_jwk_destroy
    - proto_sign_idtoken_hs256
    - oidc_util_key_symmetric_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwt_verify_paths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1350,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1355,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1356,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1357,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:1357,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1358,1
    - Dst: oidc_proto_idtoken_validate_access_token
      Src: /src/mod_auth_openidc/test/test_proto.c:1358,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1360,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1363,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1364,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1365,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:1365,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1366,1
    - Dst: oidc_proto_idtoken_validate_access_token
      Src: /src/mod_auth_openidc/test/test_proto.c:1366,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1368,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1371,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1372,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1373,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:1373,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1374,1
    - Dst: oidc_proto_idtoken_validate_access_token
      Src: /src/mod_auth_openidc/test/test_proto.c:1374,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1376,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1379,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1380,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1381,1
    - Dst: oidc_proto_idtoken_validate_access_token
      Src: /src/mod_auth_openidc/test/test_proto.c:1381,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1383,1
    - Dst: oidc_proto_idtoken_validate_access_token
      Src: /src/mod_auth_openidc/test/test_proto.c:1383,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1386,1
    - Dst: oidc_proto_idtoken_validate_code
      Src: /src/mod_auth_openidc/test/test_proto.c:1386,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1347
    functionDepth: 1
    functionLinenumber: 1347
    functionLinenumberEnd: 1388
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - oidc_test_request_get
    - oidc_json_object_set_new
    - oidc_proto_idtoken_validate_access_token
    - ck_assert_int_eq
    - oidc_jwt_destroy
    - oidc_proto_idtoken_validate_code
    - oidc_json_string
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_validate_hash_error_paths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1392,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1393,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:1397,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1398,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1399,1
    - Dst: oidc_proto_state_get_timestamp
      Src: /src/mod_auth_openidc/test/test_proto.c:1399,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:1400,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1403,1
    - Dst: oidc_proto_state_from_cookie
      Src: /src/mod_auth_openidc/test/test_proto.c:1403,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1406,1
    - Dst: oidc_proto_state_from_cookie
      Src: /src/mod_auth_openidc/test/test_proto.c:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1407
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_get_timestamp
    - oidc_test_request_get
    - oidc_proto_state_from_cookie
    - oidc_test_cfg_get
    - oidc_proto_state_destroy
    - oidc_proto_state_new
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_state_timestamp_and_bad_cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1411,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1414,1
    - Dst: oidc_proto_nonce_gen
      Src: /src/mod_auth_openidc/test/test_proto.c:1414,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1415,1
    - Dst: oidc_proto_nonce_gen
      Src: /src/mod_auth_openidc/test/test_proto.c:1415,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1416,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1417,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:1419,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_proto.c:1419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1420
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_proto_nonce_gen
    - _oidc_strcmp
    - ck_assert_int_eq
    - ck_assert_int_ne
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_nonce_uniqueness)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1424,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1427,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:1427,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1429,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:1429,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1431,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:1431,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1433,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1434
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_proto_flow_is_supported
    - oidc_test_pool_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_flow_unsupported)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1438,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1439,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1443,1
    - Dst: oidc_proto_dpop_create
      Src: /src/mod_auth_openidc/test/test_proto.c:1444,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1447
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_proto_dpop_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_dpop_create_without_private_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1451,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1452,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:1456,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:1456,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1457,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1458,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1459,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:1459,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1460,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1462,1
    - Dst: oidc_proto_dpop_create
      Src: /src/mod_auth_openidc/test/test_proto.c:1463,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1465,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:1469,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1470,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/test_proto.c:1471,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:1471,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:1471,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_proto.c:1473,1
    - Dst: oidc_util_base64url_decode
      Src: /src/mod_auth_openidc/test/test_proto.c:1473,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1475,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_proto.c:1475,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1478,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1479,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1480,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1480,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1481,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1481,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1482,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1482,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1483,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1483,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1484,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1484,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1448
    functionDepth: 1
    functionLinenumber: 1448
    functionLinenumberEnd: 1487
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - _oidc_strstr
    - oidc_test_cfg_get
    - oidc_json_decode_object
    - oidc_util_base64url_decode
    - ck_assert_msg
    - ck_assert_ptr_null
    - apr_pstrmemdup
    - oidc_cmd_private_keys_set
    - oidc_proto_dpop_create
    - ck_assert_ptr_nonnull
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_json_decref
    - ck_assert_int_gt
    - getenv
    - apr_pstrdup
    - oidc_json_object_get
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_dpop_create_embeds_public_key_only)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1491,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_proto.c:1500,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1501,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1502,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1503,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1504,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1505,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1507,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_proto.c:1511,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1512,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_proto.c:1515,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1520,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_proto.c:1520,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_proto.c:1525,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1527
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_proto_jwt_header_peek
    - _oidc_strcmp
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwt_header_peek)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1531,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1532,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1535,1
    - Dst: oidc_proto_response_is_post
      Src: /src/mod_auth_openidc/test/test_proto.c:1535,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1536,1
    - Dst: oidc_proto_response_is_redirect
      Src: /src/mod_auth_openidc/test/test_proto.c:1536,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1541,1
    - Dst: oidc_proto_response_is_redirect
      Src: /src/mod_auth_openidc/test/test_proto.c:1541,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1543,1
    - Dst: oidc_proto_response_is_post
      Src: /src/mod_auth_openidc/test/test_proto.c:1543,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1546,1
    - Dst: oidc_proto_response_is_redirect
      Src: /src/mod_auth_openidc/test/test_proto.c:1546,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1550,1
    - Dst: oidc_proto_response_is_redirect
      Src: /src/mod_auth_openidc/test/test_proto.c:1550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1528
    functionDepth: 1
    functionLinenumber: 1528
    functionLinenumberEnd: 1552
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_proto_response_is_post
    - oidc_proto_response_is_redirect
    - ck_assert_msg
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_is_post_and_redirect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1556,1
    - Dst: oidc_proto_return_www_authenticate
      Src: /src/mod_auth_openidc/test/test_proto.c:1558,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1559,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1560,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1561,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1562,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:1562,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1563,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:1563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1553
    functionDepth: 1
    functionLinenumber: 1553
    functionLinenumberEnd: 1564
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_proto_return_www_authenticate
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_return_www_authenticate_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - claims
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1565
    functionDepth: 0
    functionLinenumber: 1565
    functionLinenumberEnd: 1576
    functionName: oidc_jwt_payload_t::make_payload
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST oidc_jwt_payload_t make_payload(oidc_json_t *claims)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1579,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1580,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1581,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1582,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1583,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1583,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1583,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1578
    functionDepth: 1
    functionLinenumber: 1578
    functionLinenumberEnd: 1585
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_idtoken_validate_aud_string_match)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1589,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1590,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1591,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1592,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1593,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1593,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1593,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1586
    functionDepth: 1
    functionLinenumber: 1586
    functionLinenumberEnd: 1595
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_idtoken_validate_aud_string_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1599,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1600,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1602,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1603,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1604,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1604,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1604,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1606
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_idtoken_validate_aud_array_with_client_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1610,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1611,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1612,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1613,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1614,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1614,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1614,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1616
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_idtoken_validate_aud_array_without_client_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1620,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1621,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1622,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1623,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1624,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1624,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1624,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1617
    functionDepth: 1
    functionLinenumber: 1617
    functionLinenumberEnd: 1626
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_idtoken_validate_aud_missing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1630,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1631,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1632,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1633,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1634,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1634,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1634,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1636
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_idtoken_validate_aud_wrong_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1643,1
    - Dst: oidc_cfg_string_list_add
      Src: /src/mod_auth_openidc/test/test_proto.c:1643,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1645,1
    - Dst: oidc_cfg_string_list_add
      Src: /src/mod_auth_openidc/test/test_proto.c:1645,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1646,1
    - Dst: oidc_cfg_provider_id_token_aud_values_set_str_list
      Src: /src/mod_auth_openidc/test/test_proto.c:1646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - r
    - provider
    - v1
    - v2
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1647
    functionName: set_provider_aud_values
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_id_token_aud_values_set_str_list
    - ck_assert_ptr_null
    - oidc_cfg_string_list_add
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST set_provider_aud_values(request_rec *r, oidc_provider_t *provider,
      const char *v1, const char *v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1650,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1651,1
    - Dst: set_provider_aud_values
      Src: /src/mod_auth_openidc/test/test_proto.c:1652,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1652,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1654,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1655,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1656,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1656,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1656,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1649
    functionDepth: 2
    functionLinenumber: 1649
    functionLinenumberEnd: 1658
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - set_provider_aud_values
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_idtoken_validate_aud_values_string_special_at)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1662,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1663,1
    - Dst: set_provider_aud_values
      Src: /src/mod_auth_openidc/test/test_proto.c:1664,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1664,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1665,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1666,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1667,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1667,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1667,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1659
    functionDepth: 2
    functionLinenumber: 1659
    functionLinenumberEnd: 1669
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - set_provider_aud_values
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_idtoken_validate_aud_values_string_no_match)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1673,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1674,1
    - Dst: set_provider_aud_values
      Src: /src/mod_auth_openidc/test/test_proto.c:1675,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1675,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1678,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1679,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1680,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1680,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1680,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1670
    functionDepth: 2
    functionLinenumber: 1670
    functionLinenumberEnd: 1682
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - set_provider_aud_values
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_idtoken_validate_aud_values_array_exhaustive_match)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1686,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1687,1
    - Dst: set_provider_aud_values
      Src: /src/mod_auth_openidc/test/test_proto.c:1688,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1688,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1690,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1691,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1692,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1692,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1692,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1694
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - set_provider_aud_values
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_idtoken_validate_aud_values_array_missing_configured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1698,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1699,1
    - Dst: set_provider_aud_values
      Src: /src/mod_auth_openidc/test/test_proto.c:1700,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1700,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1703,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1704,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1705,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1705,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1705,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1695
    functionDepth: 2
    functionLinenumber: 1695
    functionLinenumberEnd: 1707
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - set_provider_aud_values
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_idtoken_validate_aud_values_array_untrusted_extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1711,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1712,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1714,1
    - Dst: make_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:1715,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1716,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/test/test_proto.c:1716,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1716,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1718
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - make_payload
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - json_pack
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_idtoken_validate_azp_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1722,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1723,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1724,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1726,1
    - Dst: oidc_proto_dpop_use_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:1726,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1729,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1731
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_proto_dpop_use_nonce
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_dpop_use_nonce_no_error_claim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1735,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1736,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1737,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1739,1
    - Dst: oidc_proto_dpop_use_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:1739,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1742,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1732
    functionDepth: 1
    functionLinenumber: 1732
    functionLinenumberEnd: 1744
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_proto_dpop_use_nonce
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_dpop_use_nonce_wrong_error_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1748,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1749,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:1750,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_proto.c:1751,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1753,1
    - Dst: oidc_proto_dpop_use_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:1753,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1756,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:1757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1745
    functionDepth: 1
    functionLinenumber: 1745
    functionLinenumberEnd: 1758
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - apr_hash_make
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_proto_dpop_use_nonce
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_dpop_use_nonce_missing_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1762,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1763,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1766,1
    - Dst: oidc_proto_discovery_account_based
      Src: /src/mod_auth_openidc/test/test_proto.c:1766,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1759
    functionDepth: 1
    functionLinenumber: 1759
    functionLinenumberEnd: 1768
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_proto_discovery_account_based
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_discovery_account_no_at_sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1772,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1773,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1774,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_proto.c:1779,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:1780,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1781,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:1784,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1785,1
    - Dst: oidc_proto_discovery_account_based
      Src: /src/mod_auth_openidc/test/test_proto.c:1785,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1769
    functionDepth: 1
    functionLinenumber: 1769
    functionLinenumberEnd: 1787
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_free_port
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_proto_discovery_account_based
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_discovery_account_unreachable_endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1794,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1797,1
    - Dst: oidc_proto_webfinger_response_get_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:1797,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1793
    functionDepth: 1
    functionLinenumber: 1793
    functionLinenumberEnd: 1799
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    - oidc_test_request_get
    - oidc_proto_webfinger_response_get_issuer
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_webfinger_response_get_issuer_happy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1803,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1805,1
    - Dst: oidc_proto_webfinger_response_get_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:1805,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1800
    functionDepth: 1
    functionLinenumber: 1800
    functionLinenumberEnd: 1807
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - ck_assert_ptr_null
    - oidc_test_request_get
    - oidc_proto_webfinger_response_get_issuer
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_webfinger_response_get_issuer_invalid_json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1811,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1813,1
    - Dst: oidc_proto_webfinger_response_get_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:1813,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1815
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - ck_assert_ptr_null
    - oidc_test_request_get
    - oidc_proto_webfinger_response_get_issuer
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_webfinger_response_get_issuer_missing_links)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1819,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1821,1
    - Dst: oidc_proto_webfinger_response_get_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:1821,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1816
    functionDepth: 1
    functionLinenumber: 1816
    functionLinenumberEnd: 1823
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - ck_assert_ptr_null
    - oidc_test_request_get
    - oidc_proto_webfinger_response_get_issuer
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_webfinger_response_get_issuer_links_not_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1827,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1829,1
    - Dst: oidc_proto_webfinger_response_get_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:1829,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1824
    functionDepth: 1
    functionLinenumber: 1824
    functionLinenumberEnd: 1831
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - ck_assert_ptr_null
    - oidc_test_request_get
    - oidc_proto_webfinger_response_get_issuer
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_webfinger_response_get_issuer_first_link_not_object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1835,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1837,1
    - Dst: oidc_proto_webfinger_response_get_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:1837,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 1839
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - ck_assert_ptr_null
    - oidc_test_request_get
    - oidc_proto_webfinger_response_get_issuer
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_webfinger_response_get_issuer_missing_href)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1843,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1846,1
    - Dst: oidc_proto_webfinger_response_get_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:1846,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1840
    functionDepth: 1
    functionLinenumber: 1840
    functionLinenumberEnd: 1848
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - ck_assert_ptr_null
    - oidc_test_request_get
    - oidc_proto_webfinger_response_get_issuer
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_webfinger_response_get_issuer_href_not_https)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1852,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1853,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1854,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_proto.c:1859,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:1860,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1861,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:1864,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1865,1
    - Dst: oidc_proto_discovery_url_based
      Src: /src/mod_auth_openidc/test/test_proto.c:1865,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1867
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_free_port
    - oidc_proto_discovery_url_based
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_discovery_url_unreachable_endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1877,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1878,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1879,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:1886,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1887,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1888,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:1888,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1889,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:1891,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:1892,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:1893,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:1894,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1898,1
    - Dst: oidc_proto_token_endpoint_request
      Src: /src/mod_auth_openidc/test/test_proto.c:1898,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1901,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1902,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1903,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1904,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1905,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:1907,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1908,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1909,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:1909,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1910,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:1910,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:1912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1868
    functionDepth: 1
    functionLinenumber: 1868
    functionLinenumberEnd: 1913
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_proto_token_endpoint_request
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_table_make
    - _oidc_strstr
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_msg
    - apr_table_setn
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_request_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1917,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1918,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1919,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:1925,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1926,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1927,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:1927,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1928,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:1930,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:1931,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1935,1
    - Dst: oidc_proto_token_endpoint_request
      Src: /src/mod_auth_openidc/test/test_proto.c:1935,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:1938,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:1940,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:1941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1914
    functionDepth: 1
    functionLinenumber: 1914
    functionLinenumberEnd: 1942
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_proto_token_endpoint_request
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_table_make
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_table_setn
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_request_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1946,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1947,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1948,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:1954,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1955,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1956,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:1956,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1957,1
    - Dst: oidc_cfg_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1958,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1962,1
    - Dst: oidc_proto_token_refresh_request
      Src: /src/mod_auth_openidc/test/test_proto.c:1962,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1965,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:1966,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:1968,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1969,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:1969,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:1971,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:1971,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:1973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1943
    functionDepth: 1
    functionLinenumber: 1943
    functionLinenumberEnd: 1974
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_proto_token_refresh_request
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - _oidc_strstr
    - oidc_cfg_provider_scope_set
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_msg
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_refresh_request_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1980,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1981,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:1982,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:1988,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:1989,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1990,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:1990,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1991,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:1992,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:1994,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:1995,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:1996,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2000,1
    - Dst: oidc_proto_token_endpoint_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2000,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2003,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2004,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2005,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2007,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1975
    functionDepth: 1
    functionLinenumber: 1975
    functionLinenumberEnd: 2009
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_proto_token_endpoint_request
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - apr_table_make
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_table_setn
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_request_unsupported_token_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2014,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2015,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2016,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2021,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2022,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2023,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2023,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2024,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2025,1
    - Dst: oidc_cfg_provider_dpop_mode_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2025,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:2028,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:2028,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2029,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2030,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2031,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:2031,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2033,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2034,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2035,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2039,1
    - Dst: oidc_proto_token_endpoint_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2039,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2043,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2010
    functionDepth: 1
    functionLinenumber: 2010
    functionLinenumberEnd: 2045
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_dpop_mode_set
    - oidc_test_http_server_wait
    - apr_table_make
    - apr_table_setn
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_ptr_null
    - oidc_cmd_private_keys_set
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cfg_provider_get
    - getenv
    - oidc_proto_token_endpoint_request
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_request_dpop_required_but_bearer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2051,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2052,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2053,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2057,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2058,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2059,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2059,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2060,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2061,1
    - Dst: oidc_cfg_provider_dpop_mode_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2061,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:2064,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:2064,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2065,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2066,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2067,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:2067,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2069,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2070,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2071,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2075,1
    - Dst: oidc_proto_token_endpoint_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2075,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2078,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2080,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2046
    functionDepth: 1
    functionLinenumber: 2046
    functionLinenumberEnd: 2082
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_dpop_mode_set
    - oidc_test_http_server_wait
    - apr_table_make
    - apr_table_setn
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_ptr_null
    - oidc_cmd_private_keys_set
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cfg_provider_get
    - getenv
    - oidc_proto_token_endpoint_request
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_token_endpoint_request_dpop_required_but_missing_token_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:2089,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:2092,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:2096,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:2097,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/test_proto.c:2099,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:2099,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:2101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - pool
    - body
    - name
    - count
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2083
    functionDepth: 1
    functionLinenumber: 2083
    functionLinenumberEnd: 2105
    functionName: e2e_form_param
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_pstrdup
    - apr_psprintf
    - _oidc_strstr
    - apr_pstrmemdup
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *e2e_form_param(apr_pool_t *pool, const char *body, const
      char *name, int *count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2110,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2111,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2112,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2114,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2115,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_proto.c:2124,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2125,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2126,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2126,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2127,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2128,1
    - Dst: oidc_cfg_provider_dpop_mode_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2128,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:2131,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:2131,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2132,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2133,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2133,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:2133,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2134,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2135,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2135,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2137,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2138,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2139,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2143,1
    - Dst: oidc_proto_token_endpoint_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2143,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2147,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2148,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2150,1
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/test_proto.c:2150,1
    - Dst: oidc_test_http_server_captured
      Src: /src/mod_auth_openidc/test/test_proto.c:2151,1
    - Dst: oidc_test_http_server_captured
      Src: /src/mod_auth_openidc/test/test_proto.c:2152,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2153,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2154,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2157,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2158,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2159,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2160,1
    - Dst: ck_assert_str_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:2161,1
    - Dst: e2e_form_param
      Src: /src/mod_auth_openidc/test/test_proto.c:2165,1
    - Dst: e2e_form_param
      Src: /src/mod_auth_openidc/test/test_proto.c:2166,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2167,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2168,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2169,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:2170,1
    - Dst: ck_assert_str_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:2171,1
    - Dst: ck_assert_str_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:2172,1
    - Dst: e2e_jwt_jti
      Src: /src/mod_auth_openidc/test/test_proto.c:2172,1
    - Dst: e2e_jwt_jti
      Src: /src/mod_auth_openidc/test/test_proto.c:2172,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2109
    functionDepth: 2
    functionLinenumber: 2109
    functionLinenumberEnd: 2175
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_dpop_mode_set
    - apr_table_make
    - apr_table_set
    - apr_table_setn
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_test_http_server_start_seq
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_cmd_private_keys_set
    - e2e_jwt_jti
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_captured
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_client_id_set
    - ck_assert_str_ne
    - getenv
    - e2e_form_param
    - oidc_proto_token_endpoint_request
    - oidc_test_http_server_request_count
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_cfg_provider_token_endpoint_auth_set
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_token_endpoint_request_dpop_nonce_retry_new_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2184,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2185,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2186,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2190,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2191,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2192,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2192,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2193,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2194,1
    - Dst: oidc_cfg_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2194,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:2196,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2197,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2198,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2199,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2202,1
    - Dst: oidc_proto_response_code
      Src: /src/mod_auth_openidc/test/test_proto.c:2202,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2204,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2205,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2183
    functionDepth: 1
    functionLinenumber: 2183
    functionLinenumberEnd: 2207
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_pkce_set
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - e2e_make_proto_state
    - oidc_test_http_server_wait
    - apr_table_make
    - oidc_test_http_server_stop
    - oidc_proto_state_destroy
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - oidc_proto_response_code
    - ck_assert_ptr_null
    - apr_table_setn
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_response_code_missing_access_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2223,1
    - Dst: oidc_jose_hash_string
      Src: /src/mod_auth_openidc/test/test_proto.c:2223,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_proto.c:2224,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/test/test_proto.c:2225,1
    - Dst: oidc_jose_hash_length
      Src: /src/mod_auth_openidc/test/test_proto.c:2225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2208
    functionDepth: 1
    functionLinenumber: 2208
    functionLinenumberEnd: 2228
    functionName: e2e_half_hash_b64url
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - ck_assert_int_gt
    - oidc_jose_hash_length
    - oidc_util_base64url_encode
    - ck_assert_int_eq
    - oidc_jose_hash_string
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *e2e_half_hash_b64url(request_rec *r, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2236,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_proto.c:2236,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2238,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:2239,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_proto.c:2240,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_proto.c:2240,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2241,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:2241,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2242,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:2242,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2243,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:2243,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2244,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:2244,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2245,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_proto.c:2245,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2246,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_proto.c:2246,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2248,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:2249,1
    - Dst: e2e_half_hash_b64url
      Src: /src/mod_auth_openidc/test/test_proto.c:2249,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2251,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:2252,1
    - Dst: e2e_half_hash_b64url
      Src: /src/mod_auth_openidc/test/test_proto.c:2252,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:2253,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:2254,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2258,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_proto.c:2258,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_proto.c:2259,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2260,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2261,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 5
    argNames:
    - r
    - secret
    - nonce
    - code
    - access_token
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2232
    functionDepth: 1
    functionLinenumber: 2232
    functionLinenumberEnd: 2264
    functionName: e2e_sign_hybrid_idtoken
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - apr_time_sec
    - oidc_json_object_set_new
    - apr_time_now
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - e2e_half_hash_b64url
    - oidc_json_string
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: char
    signature: "char *e2e_sign_hybrid_idtoken(request_rec *r, const char *secret,
      const char *nonce, const char *code,\n\t\t\t\t     const char *access_token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2269,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2270,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2271,1
    - Dst: oidc_cfg_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2271,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:2272,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_proto.c:2273,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:2274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - r
    - c
    - response_type
    - nonce
    - secret
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2267
    functionDepth: 1
    functionLinenumber: 2267
    functionLinenumberEnd: 2276
    functionName: e2e_make_hybrid_proto_state
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_pkce_set
    - oidc_proto_state_set_response_type
    - oidc_proto_state_set_nonce
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - ck_assert_ptr_null
    - e2e_make_proto_state
    linkageType: ''
    returnType: oidc_proto_state_t
    signature: "oidc_proto_state_t *e2e_make_hybrid_proto_state(request_rec *r, oidc_cfg_t
      *c, const char *response_type,\n\t\t\t\t\t\t       const char *nonce, const
      char *secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2281,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2282,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2283,1
    - Dst: e2e_make_hybrid_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:2286,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2294,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2295,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2296,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2296,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2297,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2299,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2300,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2301,1
    - Dst: e2e_sign_hybrid_idtoken
      Src: /src/mod_auth_openidc/test/test_proto.c:2302,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2303,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2306,1
    - Dst: oidc_proto_response_code_idtoken
      Src: /src/mod_auth_openidc/test/test_proto.c:2306,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2307,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2308,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2308,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2310,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2311,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2312,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2280
    functionDepth: 2
    functionLinenumber: 2280
    functionLinenumberEnd: 2314
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - apr_table_make
    - apr_table_setn
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - oidc_proto_response_code_idtoken
    - e2e_make_hybrid_proto_state
    - e2e_sign_hybrid_idtoken
    - oidc_jwt_destroy
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_response_code_idtoken_happy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2321,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2322,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2323,1
    - Dst: e2e_make_hybrid_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:2326,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:2329,1
    - Dst: e2e_sign_hybrid_idtoken
      Src: /src/mod_auth_openidc/test/test_proto.c:2330,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2332,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2333,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2334,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2334,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2335,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2337,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2338,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2339,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2340,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2341,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2344,1
    - Dst: oidc_proto_response_code_token
      Src: /src/mod_auth_openidc/test/test_proto.c:2344,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2345,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2348,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2348,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2350,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2351,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2352,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2315
    functionDepth: 2
    functionLinenumber: 2315
    functionLinenumberEnd: 2354
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - apr_table_make
    - apr_table_setn
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_proto_response_code_token
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - e2e_make_hybrid_proto_state
    - e2e_sign_hybrid_idtoken
    - oidc_jwt_destroy
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_code_token_happy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2360,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2361,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2362,1
    - Dst: e2e_make_hybrid_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:2365,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2369,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2370,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2371,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2371,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2372,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2374,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2375,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2376,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2377,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2378,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2381,1
    - Dst: oidc_proto_response_code_token
      Src: /src/mod_auth_openidc/test/test_proto.c:2381,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2383,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2384,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2355
    functionDepth: 2
    functionLinenumber: 2355
    functionLinenumberEnd: 2386
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_table_make
    - oidc_proto_state_destroy
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - e2e_make_hybrid_proto_state
    - apr_table_setn
    - oidc_proto_response_code_token
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_code_token_missing_id_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2393,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2394,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2395,1
    - Dst: e2e_make_hybrid_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:2398,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2401,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2402,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2403,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2403,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2404,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2406,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2407,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2408,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2409,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2410,1
    - Dst: e2e_sign_hybrid_idtoken
      Src: /src/mod_auth_openidc/test/test_proto.c:2411,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2412,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2415,1
    - Dst: oidc_proto_response_code_idtoken_token
      Src: /src/mod_auth_openidc/test/test_proto.c:2415,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2416,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2418,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2419,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2420,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2422
      start: 2387
    functionDepth: 2
    functionLinenumber: 2387
    functionLinenumberEnd: 2422
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - e2e_sign_hybrid_idtoken
    - oidc_test_http_server_wait
    - apr_table_make
    - oidc_test_http_server_stop
    - oidc_jwt_destroy
    - oidc_proto_state_destroy
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - e2e_make_hybrid_proto_state
    - apr_table_setn
    - ck_assert_int_eq
    - oidc_proto_response_code_idtoken_token
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_code_idtoken_token_happy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2428,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2429,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2430,1
    - Dst: e2e_make_hybrid_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:2433,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2435,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2436,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2437,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2438,1
    - Dst: e2e_sign_hybrid_idtoken
      Src: /src/mod_auth_openidc/test/test_proto.c:2439,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2440,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2443,1
    - Dst: oidc_proto_response_idtoken_token
      Src: /src/mod_auth_openidc/test/test_proto.c:2443,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2444,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2446,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2423
    functionDepth: 2
    functionLinenumber: 2423
    functionLinenumberEnd: 2448
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_proto_response_idtoken_token
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_sign_hybrid_idtoken
    - oidc_proto_state_destroy
    - apr_table_make
    - oidc_jwt_destroy
    - e2e_make_hybrid_proto_state
    - apr_table_setn
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_idtoken_token_happy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2455,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2456,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2457,1
    - Dst: e2e_make_hybrid_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:2462,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2463,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2464,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2465,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2466,1
    - Dst: oidc_proto_response_code_token
      Src: /src/mod_auth_openidc/test/test_proto.c:2466,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2467,1
    - Dst: e2e_make_hybrid_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:2470,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:2471,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2472,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2473,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/test/test_proto.c:2474,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2475,1
    - Dst: oidc_proto_response_code
      Src: /src/mod_auth_openidc/test/test_proto.c:2475,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2449
    functionDepth: 2
    functionLinenumber: 2449
    functionLinenumberEnd: 2477
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - apr_table_make
    - oidc_proto_response_code
    - e2e_make_hybrid_proto_state
    - apr_table_setn
    - oidc_proto_response_code_token
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_type_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2484,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2485,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2486,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2492,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_proto.c:2492,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2494,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:2495,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2496,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_proto.c:2496,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2497,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_proto.c:2497,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_proto.c:2498,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2499,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:2500,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2501,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_proto.c:2501,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2502,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_proto.c:2502,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_proto.c:2503,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2504,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2505,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2506,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2510,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2511,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:2514,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2519,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2522,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2523,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2524,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2524,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2525,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2530,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2530,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2533,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2535,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/test/test_proto.c:2535,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2535,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2536,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/test/test_proto.c:2536,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2536,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2537,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2537,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2538,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2538,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2540,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2541,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2542,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2543,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:2544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2478
    functionDepth: 1
    functionLinenumber: 2478
    functionLinenumberEnd: 2545
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_json_object_set_new
    - oidc_test_http_server_wait
    - oidc_jose_jwt_serialize
    - oidc_json_integer_value
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_proto_userinfo_request
    - ck_assert_ptr_null
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_json_decref
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_util_key_symmetric_create
    - apr_pstrdup
    - oidc_json_object_get
    - oidc_jwt_destroy
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_json_integer
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_composite_claims)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2550,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2551,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2552,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:2555,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:2555,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2556,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2557,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2557,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:2557,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2561,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2562,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2563,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2563,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2564,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2569,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2569,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2572,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2575,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2576,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2577,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:2578,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:2578,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2580,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2580,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2582,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:2583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2546
    functionDepth: 1
    functionLinenumber: 2546
    functionLinenumberEnd: 2584
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - _oidc_strstr
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_proto_userinfo_request
    - oidc_cmd_private_keys_set
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_http_server_start
    - oidc_json_decref
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - getenv
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_dpop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2588,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2589,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2590,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2595,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2596,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2597,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2597,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2598,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2603,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2603,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2606,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2607,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_proto.c:2608,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2608,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2609,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2610,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2612,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2613,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2614,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2615,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2616,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:2618,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2585
    functionDepth: 1
    functionLinenumber: 2585
    functionLinenumberEnd: 2620
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_json_object_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - ck_assert_str_eq
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - oidc_json_string_value
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2624,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2625,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2626,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2630,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2631,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2632,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2632,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2633,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2639,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2639,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2643,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2621
    functionDepth: 1
    functionLinenumber: 2621
    functionLinenumberEnd: 2645
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_sub_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2649,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2650,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2651,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2656,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2657,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2658,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2658,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2659,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2664,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2664,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2668,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2646
    functionDepth: 1
    functionLinenumber: 2646
    functionLinenumberEnd: 2670
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2674,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2675,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2676,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2681,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2682,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2683,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2683,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2684,1
    - Dst: oidc_cfg_provider_userinfo_token_method_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2686,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2691,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2691,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2694,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2696,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2697,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2698,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:2699,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:2699,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:2702,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2671
    functionDepth: 1
    functionLinenumber: 2671
    functionLinenumberEnd: 2704
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - _oidc_strstr
    - oidc_test_http_server_stop
    - oidc_cfg_provider_userinfo_token_method_int_set
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_msg
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_post_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2708,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2709,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2710,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2716,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2717,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2718,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2718,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2719,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2724,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2724,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2728,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2730,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2705
    functionDepth: 1
    functionLinenumber: 2705
    functionLinenumberEnd: 2732
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_proto_userinfo_request
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_missing_sub_required)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2736,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2737,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2738,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2742,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2743,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2744,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2744,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2745,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2748,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2753,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2753,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2756,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:2758,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_proto.c:2759,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2760,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2733
    functionDepth: 1
    functionLinenumber: 2733
    functionLinenumberEnd: 2762
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - apr_table_set
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_missing_sub_skipped_via_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2766,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2767,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2768,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:2773,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2778,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2779,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2780,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2780,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2781,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2786,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2786,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2789,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2791,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2792,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2793,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/test/test_proto.c:2793,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_proto.c:2794,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2794,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2795,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2796,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_proto.c:2797,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2797,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2798,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2799,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2801,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2801,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2802,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2802,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2804,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:2805,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:2805,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:2808,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2809,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2763
    functionDepth: 1
    functionLinenumber: 2763
    functionLinenumberEnd: 2811
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - _oidc_strstr
    - oidc_json_string_value
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_msg
    - oidc_proto_userinfo_request
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_json_is_object
    - oidc_json_decref
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_json_object_get
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_composite_embedded_jwt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2815,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2816,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2817,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2823,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2824,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2825,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2825,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2826,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2831,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2831,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2834,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2835,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2835,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:2837,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2838,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2812
    functionDepth: 1
    functionLinenumber: 2812
    functionLinenumberEnd: 2840
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_json_object_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_composite_names_without_sources)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2847,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_proto.c:2847,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2848,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:2849,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2850,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:2850,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2851,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_proto.c:2851,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_proto.c:2852,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2853,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2854,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - r
    - secret
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2841
    functionDepth: 1
    functionLinenumber: 2841
    functionLinenumberEnd: 2857
    functionName: e2e_sign_userinfo_jwt
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - oidc_json_object_set_new
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - oidc_json_string
    - ck_assert_int_eq
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *e2e_sign_userinfo_jwt(request_rec *r, const char *secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2861,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2862,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2863,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2867,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2868,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2869,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2869,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2870,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2875,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2875,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2879,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2881
      start: 2860
    functionDepth: 1
    functionLinenumber: 2860
    functionLinenumberEnd: 2881
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_userinfo_response_garbage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2886,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2887,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2888,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2890,1
    - Dst: e2e_sign_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_proto.c:2893,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2894,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2895,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2896,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2896,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2897,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2902,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2902,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2906,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2908
      start: 2882
    functionDepth: 2
    functionLinenumber: 2882
    functionLinenumberEnd: 2908
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_sign_userinfo_jwt
    - oidc_test_http_server_start
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_response_jwt_no_alg_configured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2913,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2914,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2915,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2917,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2918,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2918,1
    - Dst: e2e_sign_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_proto.c:2921,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2922,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2923,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2924,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2924,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2925,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2930,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2930,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2933,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2934,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2935,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_proto.c:2935,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2935,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:2937,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2938,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2909
    functionDepth: 2
    functionLinenumber: 2909
    functionLinenumberEnd: 2940
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - e2e_sign_userinfo_jwt
    - oidc_test_http_server_wait
    - oidc_json_string_value
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_cfg_provider_userinfo_signed_response_alg_set
    - ck_assert_ptr_null
    - oidc_proto_userinfo_request
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_json_decref
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_json_object_get
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_response_signed_jwt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2945,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2946,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2947,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2948,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2949,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2949,1
    - Dst: e2e_sign_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_proto.c:2953,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2954,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:2955,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2956,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:2956,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2957,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2962,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:2962,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:2966,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:2967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2941
    functionDepth: 2
    functionLinenumber: 2941
    functionLinenumberEnd: 2968
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_sign_userinfo_jwt
    - oidc_test_http_server_start
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_userinfo_signed_response_alg_set
    - ck_assert_ptr_null
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_response_signed_jwt_bad_signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2974,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2975,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:2976,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2978,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2979,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2979,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:2980,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:2980,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2985,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_proto.c:2986,1
    - Dst: oidc_alg2keysize
      Src: /src/mod_auth_openidc/test/test_proto.c:2986,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:2988,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:2989,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:2990,1
    - Dst: e2e_sign_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_proto.c:2991,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:2993,1
    - Dst: oidc_jwt_encrypt
      Src: /src/mod_auth_openidc/test/test_proto.c:2993,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:2993,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2995,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:2996,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:2999,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3000,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3001,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3001,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3002,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3007,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:3007,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3010,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3011,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_proto.c:3011,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3011,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:3013,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3014,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3016
      start: 2969
    functionDepth: 2
    functionLinenumber: 2969
    functionLinenumberEnd: 3016
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - e2e_sign_userinfo_jwt
    - oidc_test_http_server_wait
    - oidc_json_string_value
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_cfg_provider_userinfo_signed_response_alg_set
    - ck_assert_ptr_null
    - oidc_proto_userinfo_request
    - ck_assert_str_eq
    - oidc_jwk_destroy
    - oidc_cfg_provider_userinfo_encrypted_response_alg_set
    - ck_assert_ptr_nonnull
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_json_decref
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_util_key_symmetric_create
    - oidc_alg2keysize
    - apr_pstrdup
    - oidc_jwt_encrypt
    - oidc_json_object_get
    - oidc_jwt_destroy
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_response_encrypted_jwt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3021,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3022,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3023,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3025,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3026,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3026,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3027,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3027,1
    - Dst: e2e_sign_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_proto.c:3031,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3032,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3033,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3034,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3034,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3035,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3040,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:3040,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3044,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3017
    functionDepth: 2
    functionLinenumber: 3017
    functionLinenumberEnd: 3046
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_sign_userinfo_jwt
    - oidc_test_http_server_start
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_userinfo_signed_response_alg_set
    - ck_assert_ptr_null
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - oidc_cfg_provider_userinfo_encrypted_response_alg_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_response_encrypted_jwt_decrypt_fails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3052,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3053,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3054,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3062,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3063,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3064,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3064,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3065,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3071,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:3071,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3074,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:3076,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3077,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3079
      start: 3047
    functionDepth: 1
    functionLinenumber: 3047
    functionLinenumberEnd: 3079
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_composite_negatives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3085,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3086,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3087,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3089,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3089,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3090,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3091,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3091,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:3091,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:3093,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3094,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_proto.c:3102,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3103,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3104,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3104,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3105,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3110,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:3110,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3113,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3114,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_proto.c:3114,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3114,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3117,1
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/test_proto.c:3117,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:3119,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3121
      start: 3080
    functionDepth: 1
    functionLinenumber: 3080
    functionLinenumberEnd: 3121
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_table_make
    - apr_table_set
    - oidc_json_string_value
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_test_http_server_start_seq
    - ck_assert_ptr_null
    - oidc_proto_userinfo_request
    - ck_assert_str_eq
    - oidc_cmd_private_keys_set
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_json_decref
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - getenv
    - oidc_json_object_get
    - oidc_test_http_server_request_count
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_dpop_nonce_retry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3126,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3127,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3128,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3130,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3130,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3131,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3132,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3132,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:3132,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:3134,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3135,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_proto.c:3143,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3144,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3145,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3145,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3146,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3151,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:3151,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3122
    functionDepth: 1
    functionLinenumber: 3122
    functionLinenumberEnd: 3156
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - apr_table_make
    - oidc_test_http_server_start_seq
    - apr_table_set
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_proto_userinfo_request
    - oidc_cmd_private_keys_set
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_dpop_nonce_retry_still_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3161,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3162,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3163,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3164,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3165,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3165,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3169,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3170,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3171,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3171,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3172,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3177,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:3177,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3181,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3157
    functionDepth: 1
    functionLinenumber: 3157
    functionLinenumberEnd: 3183
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_userinfo_signed_response_alg_set
    - ck_assert_ptr_null
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_response_jwt_body_unparsable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3188,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3189,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3190,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3191,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3191,1
    - Dst: e2e_sign_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_proto.c:3195,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3196,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3197,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3198,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3198,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3199,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3204,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:3204,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3208,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 3184
    functionDepth: 2
    functionLinenumber: 3184
    functionLinenumberEnd: 3210
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_sign_userinfo_jwt
    - oidc_test_http_server_start
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_userinfo_signed_response_alg_set
    - ck_assert_ptr_null
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_response_jwt_no_client_secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3215,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3216,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3217,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_proto.c:3219,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:3220,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3221,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:3222,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3223,1
    - Dst: oidc_cfg_provider_userinfo_token_method_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3229,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3230,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:3230,1
    - Dst: oidc_cfg_provider_userinfo_token_method_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3234,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3235,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:3235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3238
      start: 3211
    functionDepth: 1
    functionLinenumber: 3211
    functionLinenumberEnd: 3238
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_free_port
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - oidc_proto_userinfo_request
    - ck_assert_int_eq
    - ck_assert_int_ne
    - oidc_cfg_provider_userinfo_token_method_int_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_endpoint_call_negatives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3243,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3244,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3245,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3247,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3247,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3248,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3249,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3249,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:3249,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3253,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3254,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3255,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3255,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3256,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3261,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:3261,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3264,1
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/test_proto.c:3264,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3267
      start: 3239
    functionDepth: 1
    functionLinenumber: 3239
    functionLinenumberEnd: 3267
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_http_server_start
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_request_count
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_proto_userinfo_request
    - oidc_cmd_private_keys_set
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_dpop_plain_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3272,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3273,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3274,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3276,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3276,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3277,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3278,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3278,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:3278,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:3280,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3281,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_proto.c:3289,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3290,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3291,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3291,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3292,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3297,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:3297,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3300,1
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/test_proto.c:3300,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3303
      start: 3268
    functionDepth: 1
    functionLinenumber: 3268
    functionLinenumberEnd: 3303
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_table_make
    - apr_table_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_test_http_server_start_seq
    - ck_assert_ptr_null
    - oidc_proto_userinfo_request
    - oidc_cmd_private_keys_set
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - getenv
    - oidc_test_http_server_request_count
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_userinfo_request_dpop_retry_garbage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3307,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3308,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3309,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3315,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3316,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3318,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3319,1
    - Dst: oidc_cfg_provider_pushed_authorization_request_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3320,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3321,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3322,1
    - Dst: oidc_cfg_provider_auth_request_method_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3323,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:3325,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:3326,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3327,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_proto.c:3328,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:3329,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_proto.c:3330,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_proto.c:3331,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3334,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3335,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3336,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3337,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3338,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3338,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3340,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3340,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3343,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3344,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3345,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3345,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3349
      start: 3304
    functionDepth: 1
    functionLinenumber: 3304
    functionLinenumberEnd: 3349
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_auth_request_method_int_set
    - oidc_request_auth
    - oidc_test_http_server_wait
    - oidc_cfg_provider_pushed_authorization_request_endpoint_url_set
    - _oidc_strstr
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_cfg_provider_authorization_endpoint_url_set
    - ck_assert_msg
    - ck_assert_str_eq
    - oidc_proto_state_set_issuer
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_proto_state_set_nonce
    - oidc_cfg_provider_get
    - oidc_proto_state_set_original_url
    - oidc_proto_state_new
    - oidc_proto_state_set_response_type
    - ck_assert_int_eq
    - oidc_proto_state_set_original_method
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_proto_state_set_timestamp_now
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_par_redirect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:3361,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:3362,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:3364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pool
    - alg
    - kid
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3366
      start: 3350
    functionDepth: 1
    functionLinenumber: 3350
    functionLinenumberEnd: 3366
    functionName: e2e_make_jwt_for_kid
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *e2e_make_jwt_for_kid(apr_pool_t *pool, const char *alg, const
      char *kid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:3376,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_proto.c:3377,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3378,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_proto.c:3379,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3380,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_proto.c:3381,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_proto.c:3382,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_proto.c:3383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3374
    functionDepth: 1
    functionLinenumber: 3374
    functionLinenumberEnd: 3385
    functionName: e2e_make_proto_state
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 2
    functionsReached:
    - oidc_proto_state_set_state
    - oidc_proto_state_set_nonce
    - oidc_proto_state_set_response_type
    - oidc_proto_state_set_original_method
    - oidc_proto_state_set_original_url
    - oidc_proto_state_new
    - oidc_proto_state_set_timestamp_now
    - oidc_proto_state_set_issuer
    linkageType: ''
    returnType: oidc_proto_state_t
    signature: oidc_proto_state_t *e2e_make_proto_state(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3388,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3389,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3393,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3393,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3394,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:3395,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3396,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:3396,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3397,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3398,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3399,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3400,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_proto.c:3401,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3402,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3404
      start: 3387
    functionDepth: 1
    functionLinenumber: 3387
    functionLinenumberEnd: 3404
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - APR_ARRAY_IDX
    - oidc_cfg_private_keys_get
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cmd_private_keys_set
    - getenv
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_private_keys_load_from_pem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3408,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3409,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3410,1
    - Dst: oidc_cfg_provider_request_object_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3415,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3417,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3418,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3420,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3421,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3422,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3425,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3427
      start: 3405
    functionDepth: 2
    functionLinenumber: 3405
    functionLinenumberEnd: 3427
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_request_auth
    - ck_assert_ptr_nonnull
    - oidc_cfg_provider_request_object_set
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - e2e_make_proto_state
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_with_request_object_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3431,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3432,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3433,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3436,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3436,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3437,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:3438,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3439,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3439,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:3439,1
    - Dst: oidc_cfg_provider_request_object_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3441,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3443,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3444,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3446,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3447,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3448,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3449,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3450
      start: 3428
    functionDepth: 2
    functionLinenumber: 3428
    functionLinenumberEnd: 3450
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_request_auth
    - ck_assert_ptr_nonnull
    - oidc_cfg_provider_request_object_set
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_cmd_private_keys_set
    - getenv
    - apr_table_get
    - e2e_make_proto_state
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_with_request_object_rs256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_request_object_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3457,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3458,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3459,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3461,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3462,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - r
    - c
    - provider
    - request_object_config
    - state
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3465
      start: 3451
    functionDepth: 2
    functionLinenumber: 3451
    functionLinenumberEnd: 3465
    functionName: e2e_request_object_location
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_request_auth
    - ck_assert_ptr_nonnull
    - oidc_cfg_provider_request_object_set
    - ck_assert_int_eq
    - apr_table_get
    - e2e_make_proto_state
    linkageType: ''
    returnType: END_TEST
    signature: "END_TEST *e2e_request_object_location(request_rec *r, oidc_cfg_t *c,
      oidc_provider_t *provider,\n\t\t\t\t\t       const char *request_object_config,
      const char *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3473,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3474,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3475,1
    - Dst: e2e_request_object_location
      Src: /src/mod_auth_openidc/test/test_proto.c:3478,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3480,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3480,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3481,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3481,1
    - Dst: e2e_request_object_location
      Src: /src/mod_auth_openidc/test/test_proto.c:3484,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3487,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3487,1
    - Dst: e2e_request_object_location
      Src: /src/mod_auth_openidc/test/test_proto.c:3490,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3492,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3492,1
    - Dst: e2e_request_object_location
      Src: /src/mod_auth_openidc/test/test_proto.c:3495,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3498,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3472
    functionDepth: 3
    functionLinenumber: 3472
    functionLinenumberEnd: 3499
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_msg
    - _oidc_strstr
    - e2e_request_object_location
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_request_auth_request_object_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3508,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3509,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3510,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3514,1
    - Dst: e2e_request_object_location
      Src: /src/mod_auth_openidc/test/test_proto.c:3515,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3516,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3516,1
    - Dst: e2e_request_object_location
      Src: /src/mod_auth_openidc/test/test_proto.c:3519,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3520,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3520,1
    - Dst: e2e_request_object_location
      Src: /src/mod_auth_openidc/test/test_proto.c:3524,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3525,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3525,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3528,1
    - Dst: e2e_request_object_location
      Src: /src/mod_auth_openidc/test/test_proto.c:3530,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3531,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3531,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3536,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3536,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3537,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3537,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3537,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:3538,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3539,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3540,1
    - Dst: oidc_cfg_provider_client_keys_set_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:3540,1
    - Dst: e2e_request_object_location
      Src: /src/mod_auth_openidc/test/test_proto.c:3542,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3543,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3543,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3548,1
    - Dst: oidc_cfg_provider_client_keys_set_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:3548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3550
      start: 3500
    functionDepth: 3
    functionLinenumber: 3500
    functionLinenumberEnd: 3550
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_private_keys_get
    - oidc_cfg_provider_client_keys_set_keys
    - oidc_cmd_private_keys_set
    - ck_assert_msg
    - ck_assert_ptr_null
    - apr_psprintf
    - _oidc_strstr
    - e2e_request_object_location
    - getenv
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_request_object_signing_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3558,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3559,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3560,1
    - Dst: e2e_request_object_location
      Src: /src/mod_auth_openidc/test/test_proto.c:3562,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3565,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3567
      start: 3551
    functionDepth: 3
    functionLinenumber: 3551
    functionLinenumberEnd: 3567
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_msg
    - _oidc_strstr
    - e2e_request_object_location
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_request_object_url_override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3574,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3575,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3576,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3578,1
    - Dst: oidc_cfg_provider_request_object_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3579,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3582,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3583,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3585,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3586,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3587,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3588,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3590
      start: 3568
    functionDepth: 2
    functionLinenumber: 3568
    functionLinenumberEnd: 3590
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_request_auth
    - ck_assert_ptr_nonnull
    - oidc_cfg_provider_request_object_set
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - e2e_make_proto_state
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_with_request_object_encrypted_symmetric)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3597,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3598,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3599,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3603,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:3603,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3604,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3605,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3605,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:3605,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/test_proto.c:3606,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3606,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3608,1
    - Dst: oidc_jwk_to_public_json
      Src: /src/mod_auth_openidc/test/test_proto.c:3608,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3610,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_proto.c:3610,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:3611,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:3611,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_proto.c:3612,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_proto.c:3612,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:3616,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/test/test_proto.c:3619,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:3620,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3622,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3623,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3624,1
    - Dst: oidc_cfg_provider_jwks_uri_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3624,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3624,1
    - Dst: oidc_cfg_provider_request_object_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3626,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3630,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3631,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3633,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3634,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3635,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3636,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3636,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3639,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3641
      start: 3591
    functionDepth: 2
    functionLinenumber: 3591
    functionLinenumberEnd: 3641
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_request_auth
    - oidc_test_http_server_wait
    - _oidc_strstr
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_json_decode_object
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_json_encode
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_cmd_private_keys_set
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_json_decref
    - oidc_test_http_server_start
    - oidc_cfg_provider_get
    - APR_ARRAY_IDX
    - oidc_cfg_provider_jwks_uri_set
    - oidc_cfg_provider_request_object_set
    - oidc_json_string
    - getenv
    - e2e_make_proto_state
    - oidc_cfg_private_keys_get
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_jwk_to_public_json
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_with_request_object_encrypted_rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3647,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3648,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3649,1
    - Dst: oidc_cfg_provider_request_object_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3651,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3654,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3655,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3657,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3658,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3659,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3660,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3662
      start: 3642
    functionDepth: 2
    functionLinenumber: 3642
    functionLinenumberEnd: 3662
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_request_auth
    - ck_assert_ptr_nonnull
    - oidc_cfg_provider_request_object_set
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - e2e_make_proto_state
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_with_request_object_encrypt_bad_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3666,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3667,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:3668,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3670,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3671,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3672,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3674,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3678,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3680,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3681,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3682,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3683,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3683,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3686,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3688
      start: 3663
    functionDepth: 2
    functionLinenumber: 3663
    functionLinenumberEnd: 3688
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - e2e_make_proto_state
    - oidc_request_auth
    - oidc_cfg_provider_authorization_endpoint_url_set
    - ck_assert_ptr_nonnull
    - oidc_cfg_provider_client_id_set
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_auth_request_params_cannot_duplicate_ours)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3693,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3694,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:3695,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3697,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3698,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3699,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3704,1
    - Dst: oidc_cfg_provider_auth_request_params_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3704,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3708,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3709,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3711,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3712,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3713,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3715,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3715,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3717,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3717,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3719,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3719,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3721,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3721,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3722,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3723
      start: 3689
    functionDepth: 2
    functionLinenumber: 3689
    functionLinenumberEnd: 3723
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_provider_auth_request_params_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - e2e_make_proto_state
    - oidc_request_auth
    - oidc_cfg_provider_authorization_endpoint_url_set
    - ck_assert_ptr_nonnull
    - oidc_cfg_provider_client_id_set
    - ck_assert_ptr_null
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_auth_request_params_configured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3728,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3729,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:3730,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3732,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3733,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3734,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3737,1
    - Dst: oidc_cfg_provider_auth_request_params_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3737,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3740,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3741,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3743,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3744,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3745,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3747,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3747,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3749,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3751
      start: 3724
    functionDepth: 2
    functionLinenumber: 3724
    functionLinenumberEnd: 3751
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_provider_auth_request_params_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - e2e_make_proto_state
    - oidc_request_auth
    - oidc_cfg_provider_authorization_endpoint_url_set
    - ck_assert_ptr_nonnull
    - oidc_cfg_provider_client_id_set
    - ck_assert_ptr_null
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_auth_request_params_repeated_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3756,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3757,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:3758,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3760,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3761,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3762,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3765,1
    - Dst: oidc_cfg_provider_auth_request_params_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3765,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3767,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3768,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3770,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3771,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3772,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3774,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3774,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3776,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3776,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:3778,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:3778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3780
      start: 3752
    functionDepth: 2
    functionLinenumber: 3752
    functionLinenumberEnd: 3780
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cfg_provider_auth_request_params_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - e2e_make_proto_state
    - oidc_request_auth
    - oidc_cfg_provider_authorization_endpoint_url_set
    - ck_assert_ptr_nonnull
    - oidc_cfg_provider_client_id_set
    - ck_assert_ptr_null
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_auth_request_params_across_directives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3789,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3790,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3791,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3793,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3794,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3795,1
    - Dst: oidc_cfg_provider_auth_request_method_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3796,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3799,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3800,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3802,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3807,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3808,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:3809,1
    - Dst: oidc_cfg_provider_pushed_authorization_request_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3809,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3810,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3812,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3813,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3815,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3816,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3818
      start: 3781
    functionDepth: 2
    functionLinenumber: 3781
    functionLinenumberEnd: 3818
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_auth_request_method_int_set
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_make_proto_state
    - oidc_request_auth
    - oidc_cfg_provider_authorization_endpoint_url_set
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_url
    - oidc_cfg_provider_pushed_authorization_request_endpoint_url_set
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_cfg_provider_client_id_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_par_failures)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3822,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3823,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:3824,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3826,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3827,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3828,1
    - Dst: oidc_cfg_provider_auth_request_method_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3829,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3831,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3832,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3835,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_proto.c:3836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3837
      start: 3819
    functionDepth: 2
    functionLinenumber: 3819
    functionLinenumberEnd: 3837
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_auth_request_method_int_set
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - e2e_make_proto_state
    - oidc_request_auth
    - oidc_cfg_provider_authorization_endpoint_url_set
    - oidc_cfg_provider_client_id_set
    - ck_assert_table_unset
    - ck_assert_int_eq
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_post_html)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3841,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3842,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:3844,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3845,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3846,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3848,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3849,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3851,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:3852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3853
      start: 3838
    functionDepth: 2
    functionLinenumber: 3838
    functionLinenumberEnd: 3853
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - e2e_make_proto_state
    - oidc_request_auth
    - oidc_cfg_provider_authorization_endpoint_url_set
    - oidc_proto_state_destroy
    - ck_assert_int_eq
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_no_client_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3857,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3858,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_proto.c:3859,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3860,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3861,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3862,1
    - Dst: oidc_cfg_provider_auth_request_method_int_set
      Src: /src/mod_auth_openidc/test/test_proto.c:3864,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:3866,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:3867,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3869,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:3870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3871
      start: 3854
    functionDepth: 2
    functionLinenumber: 3854
    functionLinenumberEnd: 3871
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_auth_request_method_int_set
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - e2e_make_proto_state
    - oidc_request_auth
    - oidc_cfg_provider_authorization_endpoint_url_set
    - oidc_proto_state_destroy
    - oidc_cfg_provider_client_id_set
    - ck_assert_int_eq
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_unknown_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3875,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3876,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3881,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3882,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3885,1
    - Dst: e2e_make_jwt_for_kid
      Src: /src/mod_auth_openidc/test/test_proto.c:3888,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_proto.c:3889,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3891,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:3891,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3892,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_proto.c:3892,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3893,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3893,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3895,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3896,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:3897,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_proto.c:3898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3872
    functionDepth: 2
    functionLinenumber: 3872
    functionLinenumberEnd: 3899
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - apr_hash_make
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - apr_hash_get
    - oidc_test_http_server_wait
    - apr_hash_count
    - oidc_test_http_server_stop
    - oidc_jwt_destroy
    - oidc_jwk_list_destroy_hash
    - oidc_proto_jwks_uri_keys
    - ck_assert_int_eq
    - e2e_make_jwt_for_kid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwks_uri_keys_kid_match)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3904,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3905,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3910,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3911,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3914,1
    - Dst: e2e_make_jwt_for_kid
      Src: /src/mod_auth_openidc/test/test_proto.c:3917,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_proto.c:3918,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3922,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:3922,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3923,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_proto.c:3923,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3925,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3926,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_proto.c:3929,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3931,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:3931,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3932,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_proto.c:3932,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3935,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3935,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:3937,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_proto.c:3938,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_proto.c:3939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3940
      start: 3900
    functionDepth: 2
    functionLinenumber: 3900
    functionLinenumberEnd: 3940
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - apr_hash_make
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_hash_count
    - apr_hash_get
    - oidc_jwt_destroy
    - oidc_jwk_list_destroy_hash
    - oidc_proto_jwks_uri_keys
    - ck_assert_int_eq
    - e2e_make_jwt_for_kid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwks_uri_keys_selection_cached)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3944,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3945,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3953,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3954,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3957,1
    - Dst: e2e_make_jwt_for_kid
      Src: /src/mod_auth_openidc/test/test_proto.c:3961,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_proto.c:3962,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3964,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:3964,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3966,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_proto.c:3966,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3967,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3967,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3969,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3970,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:3971,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_proto.c:3972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3973
      start: 3941
    functionDepth: 2
    functionLinenumber: 3941
    functionLinenumberEnd: 3973
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - apr_hash_make
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - apr_hash_get
    - oidc_test_http_server_wait
    - apr_hash_count
    - oidc_test_http_server_stop
    - oidc_jwt_destroy
    - oidc_jwk_list_destroy_hash
    - oidc_proto_jwks_uri_keys
    - ck_assert_int_eq
    - e2e_make_jwt_for_kid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwks_uri_keys_no_kid_include_matching_kty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3977,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:3978,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:3984,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:3985,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:3988,1
    - Dst: e2e_make_jwt_for_kid
      Src: /src/mod_auth_openidc/test/test_proto.c:3991,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_proto.c:3992,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3994,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:3994,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:3995,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_proto.c:3995,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:3997,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:3998,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:3999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4000
      start: 3974
    functionDepth: 2
    functionLinenumber: 3974
    functionLinenumberEnd: 4000
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - apr_hash_make
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_hash_count
    - oidc_jwt_destroy
    - oidc_proto_jwks_uri_keys
    - ck_assert_int_eq
    - e2e_make_jwt_for_kid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwks_uri_keys_no_match_after_refresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4004,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4005,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_proto.c:4007,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_proto.c:4008,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:4010,1
    - Dst: e2e_make_jwt_for_kid
      Src: /src/mod_auth_openidc/test/test_proto.c:4013,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4014,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4017,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:4017,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4020
      start: 4001
    functionDepth: 2
    functionLinenumber: 4001
    functionLinenumberEnd: 4020
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_hash_make
    - oidc_test_cfg_get
    - oidc_test_http_free_port
    - oidc_jwt_destroy
    - oidc_proto_jwks_uri_keys
    - apr_psprintf
    - ck_assert_int_eq
    - e2e_make_jwt_for_kid
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwks_uri_keys_http_failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4026,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4027,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:4031,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4032,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:4035,1
    - Dst: e2e_make_jwt_for_kid
      Src: /src/mod_auth_openidc/test/test_proto.c:4038,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4039,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4041,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:4041,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4042,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_proto.c:4042,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4044,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4044,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:4046,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:4047,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4048,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_proto.c:4049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4050
      start: 4021
    functionDepth: 2
    functionLinenumber: 4021
    functionLinenumberEnd: 4050
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - apr_hash_make
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - apr_hash_get
    - oidc_test_http_server_wait
    - apr_hash_count
    - oidc_test_http_server_stop
    - oidc_jwt_destroy
    - oidc_jwk_list_destroy_hash
    - oidc_proto_jwks_uri_keys
    - ck_assert_int_eq
    - e2e_make_jwt_for_kid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwks_uri_keys_no_kid_no_kid_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4056,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4057,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:4064,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4065,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:4068,1
    - Dst: e2e_make_jwt_for_kid
      Src: /src/mod_auth_openidc/test/test_proto.c:4071,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4072,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4074,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:4074,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4075,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_proto.c:4075,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4076,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4076,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:4078,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:4079,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4080,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_proto.c:4081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4082
      start: 4051
    functionDepth: 2
    functionLinenumber: 4051
    functionLinenumberEnd: 4082
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - apr_hash_make
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - apr_hash_get
    - oidc_test_http_server_wait
    - apr_hash_count
    - oidc_test_http_server_stop
    - oidc_jwt_destroy
    - oidc_jwk_list_destroy_hash
    - oidc_proto_jwks_uri_keys
    - ck_assert_int_eq
    - e2e_make_jwt_for_kid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwks_uri_keys_malformed_entry_skipped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4088,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4089,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:4094,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4095,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:4098,1
    - Dst: e2e_make_jwt_for_kid
      Src: /src/mod_auth_openidc/test/test_proto.c:4102,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4103,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4105,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:4105,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4106,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_proto.c:4106,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:4108,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:4109,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 4083
    functionDepth: 2
    functionLinenumber: 4083
    functionLinenumberEnd: 4111
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - apr_hash_make
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_hash_count
    - oidc_jwt_destroy
    - oidc_proto_jwks_uri_keys
    - ck_assert_int_eq
    - e2e_make_jwt_for_kid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwks_uri_keys_kty_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4117,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4118,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:4123,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4124,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:4127,1
    - Dst: e2e_make_jwt_for_kid
      Src: /src/mod_auth_openidc/test/test_proto.c:4131,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:4132,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/test/test_proto.c:4137,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4138,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:4139,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_proto.c:4139,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test_proto.c:4140,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4141,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4143,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4145,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/test/test_proto.c:4145,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4146,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_proto.c:4146,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4147,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4147,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:4149,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:4150,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_proto.c:4154,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4156
      start: 4112
    functionDepth: 2
    functionLinenumber: 4112
    functionLinenumberEnd: 4156
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - oidc_proto_jwks_uri_keys
    - e2e_make_jwt_for_kid
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_msg
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_jwk_list_destroy_hash
    - oidc_jose_e2s
    - apr_hash_get
    - apr_pstrdup
    - apr_hash_make
    - apr_hash_count
    - oidc_jwt_destroy
    - ck_assert_int_eq
    - oidc_jwk_create_symmetric_key
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_jwks_uri_keys_x5t_match)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4160,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4162,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:4162,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4163,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:4163,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4164,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:4164,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4165,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:4165,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4166,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:4166,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4167,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:4167,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4169,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:4169,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4171,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:4171,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4172,1
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/test/test_proto.c:4172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4157
    functionDepth: 1
    functionLinenumber: 4157
    functionLinenumberEnd: 4173
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_proto_flow_is_supported
    - oidc_test_pool_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_supported_flows_exhaustive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4184,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4185,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4186,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:4187,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4189,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4193,1
    - Dst: oidc_proto_response_code_idtoken
      Src: /src/mod_auth_openidc/test/test_proto.c:4194,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4197
      start: 4174
    functionDepth: 1
    functionLinenumber: 4174
    functionLinenumberEnd: 4197
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - apr_table_make
    - oidc_proto_state_new
    - oidc_proto_response_code_idtoken
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_code_idtoken_missing_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4201,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4202,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4203,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:4204,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4206,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4208,1
    - Dst: oidc_proto_response_code_token
      Src: /src/mod_auth_openidc/test/test_proto.c:4209,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4211
      start: 4198
    functionDepth: 1
    functionLinenumber: 4198
    functionLinenumberEnd: 4211
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - apr_table_make
    - oidc_proto_state_new
    - oidc_proto_response_code_token
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_code_token_missing_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4215,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4216,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4217,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:4218,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4220,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4222,1
    - Dst: oidc_proto_response_code_idtoken_token
      Src: /src/mod_auth_openidc/test/test_proto.c:4223,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4226
      start: 4212
    functionDepth: 1
    functionLinenumber: 4212
    functionLinenumberEnd: 4226
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - apr_table_make
    - oidc_proto_state_new
    - ck_assert_int_eq
    - oidc_proto_response_code_idtoken_token
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_code_idtoken_token_missing_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4230,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4231,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4232,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:4233,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4235,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4237,1
    - Dst: oidc_proto_response_idtoken_token
      Src: /src/mod_auth_openidc/test/test_proto.c:4238,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4241
      start: 4227
    functionDepth: 1
    functionLinenumber: 4227
    functionLinenumberEnd: 4241
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_proto_response_idtoken_token
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - apr_table_make
    - oidc_proto_state_new
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_idtoken_token_missing_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4245,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4246,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4247,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:4248,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4253,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4254,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4255,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4257,1
    - Dst: oidc_proto_response_code
      Src: /src/mod_auth_openidc/test/test_proto.c:4257,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4260
      start: 4242
    functionDepth: 1
    functionLinenumber: 4242
    functionLinenumberEnd: 4260
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - apr_table_make
    - apr_table_set
    - oidc_proto_state_new
    - oidc_proto_response_code
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_code_iss_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4264,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4265,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4266,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:4267,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4270,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4271,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4272,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4274,1
    - Dst: oidc_proto_response_code
      Src: /src/mod_auth_openidc/test/test_proto.c:4274,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4261
    functionDepth: 1
    functionLinenumber: 4261
    functionLinenumberEnd: 4277
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - apr_table_make
    - apr_table_set
    - oidc_proto_state_new
    - oidc_proto_response_code
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_code_client_id_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4281,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4282,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4283,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:4284,1
    - Dst: oidc_proto_state_set_response_mode
      Src: /src/mod_auth_openidc/test/test_proto.c:4289,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4290,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4291,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4293,1
    - Dst: oidc_proto_response_code
      Src: /src/mod_auth_openidc/test/test_proto.c:4293,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4296
      start: 4278
    functionDepth: 1
    functionLinenumber: 4278
    functionLinenumberEnd: 4296
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - apr_table_make
    - apr_table_set
    - oidc_proto_state_new
    - oidc_proto_state_set_response_mode
    - oidc_proto_response_code
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_code_response_mode_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4300,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4301,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4302,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_proto.c:4303,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_proto.c:4308,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4309,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4310,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4312,1
    - Dst: oidc_proto_response_code
      Src: /src/mod_auth_openidc/test/test_proto.c:4312,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4315
      start: 4297
    functionDepth: 1
    functionLinenumber: 4297
    functionLinenumberEnd: 4315
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - apr_table_make
    - apr_table_set
    - oidc_proto_state_new
    - oidc_proto_response_code
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_response_code_unexpected_id_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4319,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4320,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:4323,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:4323,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4324,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4325,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:4326,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:4326,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:4327,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4332,1
    - Dst: oidc_proto_dpop_create
      Src: /src/mod_auth_openidc/test/test_proto.c:4332,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4335,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:4338,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4339,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:4340,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4341,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/test_proto.c:4346,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_proto.c:4348,1
    - Dst: oidc_util_base64url_decode
      Src: /src/mod_auth_openidc/test/test_proto.c:4348,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4350,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_proto.c:4350,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4351,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_proto.c:4351,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4351,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:4352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4353
      start: 4316
    functionDepth: 1
    functionLinenumber: 4316
    functionLinenumberEnd: 4353
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - _oidc_strstr
    - oidc_test_cfg_get
    - oidc_json_decode_object
    - oidc_util_base64url_decode
    - ck_assert_msg
    - ck_assert_str_eq
    - apr_pstrmemdup
    - oidc_cmd_private_keys_set
    - oidc_proto_dpop_create
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_json_decref
    - ck_assert_int_gt
    - getenv
    - apr_pstrdup
    - oidc_json_object_get
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_dpop_create_with_rsa_private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4361,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_proto.c:4361,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_proto.c:4362,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:4363,1
    - Dst: json_object_update
      Src: /src/mod_auth_openidc/test/test_proto.c:4364,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4365,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_proto.c:4365,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_proto.c:4366,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4367,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_proto.c:4368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - r
    - secret
    - payload
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4370
      start: 4354
    functionDepth: 1
    functionLinenumber: 4354
    functionLinenumberEnd: 4370
    functionName: e2e_sign_jwt_hs256_payload
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - json_object_update
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - ck_assert_int_eq
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *e2e_sign_jwt_hs256_payload(request_rec *r, const char *secret,
      oidc_json_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4373,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4374,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4375,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4379,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:4380,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4380,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_proto.c:4382,1
    - Dst: e2e_sign_jwt_hs256_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:4383,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:4384,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_proto.c:4387,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4388,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4389,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_proto.c:4389,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4390,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4396,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/test/test_proto.c:4396,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4399,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4400,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4401,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_proto.c:4402,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4402,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4403,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4404,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_proto.c:4406,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_proto.c:4407,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:4408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4409
      start: 4372
    functionDepth: 2
    functionLinenumber: 4372
    functionLinenumberEnd: 4409
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - oidc_json_string_value
    - json_pack
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - e2e_sign_jwt_hs256_payload
    - oidc_cfg_provider_userinfo_signed_response_alg_set
    - ck_assert_ptr_null
    - oidc_proto_userinfo_request
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_json_decref
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_json_object_get
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_userinfo_request_signed_jwt_response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4413,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4414,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4415,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:4419,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:4419,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4420,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:4421,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4421,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:4422,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:4422,1
    - Dst: oidc_cfg_provider_request_object_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4424,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:4427,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:4428,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4430,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4431,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4432,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:4433,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:4433,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:4435,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:4435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4436
      start: 4410
    functionDepth: 2
    functionLinenumber: 4410
    functionLinenumberEnd: 4436
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_request_auth
    - ck_assert_ptr_nonnull
    - oidc_cfg_provider_request_object_set
    - ck_assert_msg
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_cmd_private_keys_set
    - getenv
    - apr_table_get
    - e2e_make_proto_state
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_request_auth_with_copy_and_remove_from_request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4444,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4445,1
    - Dst: oidc_cfg_provider_request_object_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4447,1
    - Dst: e2e_make_proto_state
      Src: /src/mod_auth_openidc/test/test_proto.c:4451,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/test/test_proto.c:4452,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4454,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4455,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4456,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:4459,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:4460,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_proto.c:4461,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:4462,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/test_proto.c:4464,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:4467,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4468,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_proto.c:4469,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4470,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_proto.c:4472,1
    - Dst: oidc_util_base64url_decode
      Src: /src/mod_auth_openidc/test/test_proto.c:4473,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/test_proto.c:4473,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_proto.c:4475,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4478
      start: 4437
    functionDepth: 2
    functionLinenumber: 4437
    functionLinenumberEnd: 4478
    functionName: oidc_json_t *e2e_request_object_copy_params_payload(request_rec
      *r)
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_request_auth
    - ck_assert_ptr_nonnull
    - ck_assert_int_gt
    - json_loads
    - oidc_util_base64url_decode
    - oidc_cfg_provider_request_object_set
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_pstrmemdup
    - apr_table_get
    - e2e_make_proto_state
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST oidc_json_t *e2e_request_object_copy_params_payload(request_rec
      *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4481,1
    - Dst: e2e_request_object_copy_params_payload
      Src: /src/mod_auth_openidc/test/test_proto.c:4483,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4486,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4487,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:4488,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/test/test_proto.c:4488,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/test/test_proto.c:4489,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4490,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/test/test_proto.c:4490,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4494,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4495,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_proto.c:4496,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/test/test_proto.c:4496,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/test/test_proto.c:4497,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4498,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_proto.c:4498,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_proto.c:4500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4501
      start: 4480
    functionDepth: 1
    functionLinenumber: 4480
    functionLinenumberEnd: 4501
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - oidc_test_request_get
    - oidc_json_typeof
    - oidc_json_is_integer
    - oidc_json_decref
    - oidc_json_object_get
    - e2e_request_object_copy_params_payload
    - oidc_json_is_string
    - ck_assert_msg
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_json_integer_value
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_proto_request_auth_request_object_copy_param_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4505,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4506,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:4508,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_proto.c:4508,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_proto.c:4509,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_proto.c:4510,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_proto.c:4510,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_proto.c:4511,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_proto.c:4511,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_proto.c:4515,1
    - Dst: oidc_proto_dpop_create
      Src: /src/mod_auth_openidc/test/test_proto.c:4515,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_proto.c:4517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4518
      start: 4502
    functionDepth: 1
    functionLinenumber: 4502
    functionLinenumberEnd: 4518
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_cmd_private_keys_set
    - getenv
    - oidc_proto_dpop_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proto_dpop_create_no_access_token_no_nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_proto.c:4522,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_proto.c:4523,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4525,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4526,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4527,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4528,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4529,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4530,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4531,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4532,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4533,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4534,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4535,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4536,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4537,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4538,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4539,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4540,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4541,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4542,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4543,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4544,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4545,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4546,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4547,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4548,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4549,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4550,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4551,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4552,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4553,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4554,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4555,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4556,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4557,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4558,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4559,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4560,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4561,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4562,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4563,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4564,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4565,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4566,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4567,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4568,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4569,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4570,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4571,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4572,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4573,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4574,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4575,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4576,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4577,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4578,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4579,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4580,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4581,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4582,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4583,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4584,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4585,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4586,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4587,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4588,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4589,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4590,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4591,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4592,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4593,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4594,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4595,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4596,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4597,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4598,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4599,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4600,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4601,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4602,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4603,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4604,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_proto.c:4606,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_proto.c:4607,1
    - Dst: tcase_set_timeout
      Src: /src/mod_auth_openidc/test/test_proto.c:4608,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4609,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4610,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4611,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4612,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4613,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4614,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4615,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4616,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4617,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4618,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4619,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4620,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4621,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4622,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4623,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4624,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4625,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4626,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4627,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4628,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4629,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4630,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4631,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4632,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4633,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4634,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4635,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4636,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4637,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4638,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4639,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4640,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4641,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4642,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4643,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4644,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4645,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4646,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4647,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4648,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4649,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4650,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4651,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4652,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4653,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4654,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4655,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4656,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4657,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4658,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4659,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4660,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4661,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4662,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4663,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4664,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4665,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4666,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4667,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4668,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4669,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4670,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4671,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4672,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4673,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4674,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4675,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_proto.c:4676,1
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_proto.c:4678,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_proto.c:4679,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_proto.c:4680,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_proto.c:4682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 155
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4683
      start: 4519
    functionDepth: 1
    functionLinenumber: 4519
    functionLinenumberEnd: 4683
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_proto.c
    functionUses: 0
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_set_timeout
    - tcase_add_checked_fixture
    - tcase_add_test
    - suite_add_tcase
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:57,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:60,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:61,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:61,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:62,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:62,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:66,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:67,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:67,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:68,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:68,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:72,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:74,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:74,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:75,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:75,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:79,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:80,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:80,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:81,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:81,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:85,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:88,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:88,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:89,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:89,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:90,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:90,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:94,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:95,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:95,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:96,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:96,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:100,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:103,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:103,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:104,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:104,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:108,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:109,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:109,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:110,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/test_http.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 112
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - apr_table_set
    - oidc_test_request_get
    - ck_assert_msg
    - oidc_http_hdr_in_accept_contains
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_http_accept)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:116,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_http.c:118,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:119,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/test_http.c:120,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:121,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:122,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:122,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:125,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_http.c:125,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:126,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_http.c:126,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:128,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_http.c:128,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:129,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_http.c:129,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:130,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_http.c:130,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:133,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/test_http.c:133,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:134,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/test_http.c:134,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:136,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/test_http.c:136,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:137,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/test_http.c:137,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:138,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/test_http.c:138,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:139,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/test_http.c:139,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:140,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/test_http.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 141
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ck_assert_ptr_nonnull
    - _oidc_strcmp
    - ck_assert_msg
    - oidc_http_url_encode
    - ck_assert_str_eq
    - oidc_http_url_decode
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_url_encode_decode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:145,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:148,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:148,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:152,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:152,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:156,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:157,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:163,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:163,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:167,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:167,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:171,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:171,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:176,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:176,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:178,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:178,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:179,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:179,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:180,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:180,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:181,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:181,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:184,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 186
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    - oidc_test_request_get
    - oidc_http_redact_body_for_log
    - ck_assert_ptr_null
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_redact_body_for_log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:190,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:193,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:193,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:197,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:197,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:200,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:201,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:207,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:207,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:213,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:213,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:217,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:217,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:220,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:220,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:225,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:225,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:229,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:229,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:231,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:232,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:236,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/test_http.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 239
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_redact_json_for_log
    - ck_assert_str_eq
    - oidc_test_request_get
    - ck_assert_ptr_null
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_redact_json_for_log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:243,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:244,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:245,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:246,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:247,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:248,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:249,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:251,1
    - Dst: oidc_http_hdr_in_user_agent_get
      Src: /src/mod_auth_openidc/test/test_http.c:251,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:252,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:252,1
    - Dst: oidc_http_hdr_in_user_agent_get
      Src: /src/mod_auth_openidc/test/test_http.c:252,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:253,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:253,1
    - Dst: oidc_http_hdr_in_content_type_get
      Src: /src/mod_auth_openidc/test/test_http.c:253,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:254,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:254,1
    - Dst: oidc_http_hdr_in_content_length_get
      Src: /src/mod_auth_openidc/test/test_http.c:254,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:255,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:255,1
    - Dst: oidc_http_hdr_in_x_forwarded_for_get
      Src: /src/mod_auth_openidc/test/test_http.c:255,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:257,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:257,1
    - Dst: oidc_http_hdr_in_x_forwarded_host_get
      Src: /src/mod_auth_openidc/test/test_http.c:257,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:259,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:259,1
    - Dst: oidc_http_hdr_forwarded_get
      Src: /src/mod_auth_openidc/test/test_http.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 260
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_http_hdr_in_user_agent_get
    - oidc_http_hdr_in_content_type_get
    - oidc_http_hdr_in_x_forwarded_host_get
    - oidc_http_hdr_in_x_forwarded_for_get
    - apr_table_set
    - _oidc_strcmp
    - ck_assert_msg
    - oidc_http_hdr_forwarded_get
    - oidc_http_hdr_in_content_length_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_hdr_getters_and_forwarded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:264,1
    - Dst: oidc_http_hdr_normalize_name
      Src: /src/mod_auth_openidc/test/test_http.c:266,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:267,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:269,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:269,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_http.c:271,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:272,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:273,1
    - Dst: oidc_http_query_encoded_url
      Src: /src/mod_auth_openidc/test/test_http.c:274,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:275,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:277,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:277,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:278,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:278,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:278,1
    - Dst: oidc_http_form_encoded_data
      Src: /src/mod_auth_openidc/test/test_http.c:281,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:282,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:283,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 284
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_table_make
    - apr_table_set
    - ck_assert_msg
    - oidc_http_query_encoded_url
    - oidc_http_form_encoded_data
    - _oidc_strstr
    - oidc_http_hdr_normalize_name
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_hdr_normalize_query_form)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:288,1
    - Dst: oidc_http_get_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:290,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:291,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:292,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:292,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:296,1
    - Dst: oidc_http_get_chunked_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:297,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:298,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:299,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ck_assert_ptr_nonnull
    - apr_table_set
    - ck_assert_msg
    - oidc_http_get_cookie
    - oidc_http_get_chunked_cookie
    - _oidc_strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cookies_and_chunking)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_proxy_auth_options
      Src: /src/mod_auth_openidc/test/test_http.c:304,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:305,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:308,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:310,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:312,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:314,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:317,1
    - Dst: oidc_http_proxy_s2auth
      Src: /src/mod_auth_openidc/test/test_http.c:320,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:321,1
    - Dst: oidc_http_proxy_s2auth
      Src: /src/mod_auth_openidc/test/test_http.c:322,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:323,1
    - Dst: oidc_http_proxy_s2auth
      Src: /src/mod_auth_openidc/test/test_http.c:324,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:325,1
    - Dst: oidc_http_proxy_s2auth
      Src: /src/mod_auth_openidc/test/test_http.c:326,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 328
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - ck_assert_ptr_nonnull
    - oidc_http_proxy_auth_options
    - ck_assert_msg
    - oidc_http_proxy_s2auth
    - _oidc_strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proxy_options_and_s2auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:332,1
    - Dst: oidc_http_hdr_in_set
      Src: /src/mod_auth_openidc/test/test_http.c:333,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:334,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:334,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_http.c:334,1
    - Dst: oidc_http_hdr_in_cookie_set
      Src: /src/mod_auth_openidc/test/test_http.c:337,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:338,1
    - Dst: oidc_http_hdr_in_cookie_get
      Src: /src/mod_auth_openidc/test/test_http.c:338,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:339,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:339,1
    - Dst: oidc_http_hdr_in_cookie_get
      Src: /src/mod_auth_openidc/test/test_http.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 340
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_http_hdr_in_cookie_get
    - ck_assert_ptr_nonnull
    - oidc_http_hdr_in_set
    - ck_assert_msg
    - oidc_http_hdr_in_cookie_set
    - apr_table_get
    - _oidc_strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_hdr_setters_and_cookie_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:344,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/test/test_http.c:345,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:346,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:346,1
    - Dst: oidc_http_hdr_out_location_get
      Src: /src/mod_auth_openidc/test/test_http.c:346,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:349,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:350,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:350,1
    - Dst: oidc_http_hdr_in_traceparent_get
      Src: /src/mod_auth_openidc/test/test_http.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 353
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_hdr_out_location_set
    - oidc_test_request_get
    - apr_table_set
    - ck_assert_msg
    - oidc_http_hdr_in_traceparent_get
    - oidc_http_hdr_out_location_get
    - _oidc_strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_hdr_out_location_and_traceparent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:357,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_http.c:358,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_http.c:358,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:360,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_http.c:361,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:365,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:365,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:366,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:372,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_http.c:379,1
    - Dst: oidc_http_set_chunked_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:379,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_http.c:381,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:385,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:390,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 391
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_time_now
    - ck_assert
    - oidc_http_set_cookie
    - ck_assert_msg
    - _oidc_strstr
    - apr_table_elts
    - apr_time_from_sec
    - oidc_http_set_chunked_cookie
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_set_cookie_and_chunked_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:399,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_http.c:400,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_http.c:400,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_http.c:402,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_http.c:403,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_http.c:406,1
    - Dst: oidc_http_set_chunked_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:406,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_http.c:409,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:412,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:412,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_http.c:416,1
    - Dst: oidc_http_set_chunked_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 417
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - _oidc_memset
    - oidc_test_request_get
    - apr_time_now
    - ck_assert
    - ck_assert_ptr_null
    - _oidc_strstr
    - apr_palloc
    - apr_table_elts
    - apr_time_from_sec
    - oidc_http_set_chunked_cookie
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_set_chunked_cookie_too_many_chunks)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:422,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_http.c:423,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_http.c:423,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_http.c:424,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_http.c:429,1
    - Dst: oidc_http_set_chunked_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:429,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_http.c:433,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_http.c:435,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:437,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_http.c:439,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/test_http.c:440,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/test_http.c:443,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_http.c:448,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:450,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_http.c:453,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_http.c:456,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:458,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:459,1
    - Dst: oidc_http_get_chunked_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:461,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:462,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:463,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 464
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - apr_pstrdup
    - oidc_test_request_get
    - ck_assert_ptr_nonnull
    - ck_assert
    - apr_time_now
    - oidc_http_get_chunked_cookie
    - apr_table_make
    - apr_table_set
    - _oidc_strcmp
    - apr_psprintf
    - ck_assert_str_eq
    - apr_palloc
    - strchr
    - apr_table_elts
    - apr_time_from_sec
    - oidc_http_set_chunked_cookie
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_set_chunked_cookie_exact_multiple_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:471,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/test/test_http.c:472,1
    - Dst: oidc_http_hdr_out_location_get
      Src: /src/mod_auth_openidc/test/test_http.c:473,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:474,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:475,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:475,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:476,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:476,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:477,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 478
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_hdr_out_location_set
    - oidc_test_request_get
    - ck_assert_ptr_null
    - _oidc_strstr
    - oidc_http_hdr_out_location_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_hdr_out_crlf_sanitized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:485,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:486,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:487,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:487,1
    - Dst: oidc_http_hdr_forwarded_get
      Src: /src/mod_auth_openidc/test/test_http.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 489
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_table_set
    - oidc_http_hdr_forwarded_get
    - ck_assert_msg
    - _oidc_strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_forwarded_space_terminated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:493,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:494,1
    - Dst: oidc_http_form_encoded_data
      Src: /src/mod_auth_openidc/test/test_http.c:494,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_http.c:495,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:496,1
    - Dst: oidc_http_form_encoded_data
      Src: /src/mod_auth_openidc/test/test_http.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 497
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ck_assert_ptr_null
    - apr_table_make
    - oidc_http_form_encoded_data
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_form_encoded_data_empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:501,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_http.c:504,1
    - Dst: apr_table_add
      Src: /src/mod_auth_openidc/test/test_http.c:505,1
    - Dst: apr_table_add
      Src: /src/mod_auth_openidc/test/test_http.c:506,1
    - Dst: apr_table_add
      Src: /src/mod_auth_openidc/test/test_http.c:507,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:509,1
    - Dst: oidc_http_query_encoded_url
      Src: /src/mod_auth_openidc/test/test_http.c:509,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:512,1
    - Dst: oidc_http_query_encoded_url
      Src: /src/mod_auth_openidc/test/test_http.c:512,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:514,1
    - Dst: oidc_http_form_encoded_data
      Src: /src/mod_auth_openidc/test/test_http.c:514,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_http.c:523,1
    - Dst: apr_table_addn
      Src: /src/mod_auth_openidc/test/test_http.c:525,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_http.c:525,1
    - Dst: oidc_http_query_encoded_url
      Src: /src/mod_auth_openidc/test/test_http.c:526,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:527,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:528,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:528,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:529,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:529,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_http.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 530
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - apr_table_add
    - oidc_test_request_get
    - ck_assert_ptr_nonnull
    - apr_table_make
    - _oidc_strstr
    - apr_table_addn
    - ck_assert_msg
    - apr_psprintf
    - oidc_http_query_encoded_url
    - ck_assert_str_eq
    - oidc_http_form_encoded_data
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_query_encoded_url_order_and_scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:535,1
    - Dst: oidc_http_proxy_s2auth
      Src: /src/mod_auth_openidc/test/test_http.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 538
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - oidc_http_proxy_s2auth
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_proxy_s2auth_negotiate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:545,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:547,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_http.c:548,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:552,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:552,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 555
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_http_set_cookie
    - ck_assert_msg
    - _oidc_strstr
    - apr_table_elts
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cookie_path_request_path_null)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:562,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_http.c:563,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_http.c:564,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:565,1
    - Dst: oidc_cmd_dir_cookie_path_set
      Src: /src/mod_auth_openidc/test/test_http.c:565,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:566,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_http.c:567,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:571,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:571,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 574
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_cookie_path_set
    - oidc_http_set_cookie
    - ck_assert_msg
    - ck_assert_ptr_null
    - _oidc_strstr
    - apr_table_elts
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cookie_path_mismatch_warns)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:582,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:583,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:584,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_http.c:585,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:589,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:589,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:590,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:592,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_http.c:593,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_http.c:595,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_http.c:596,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:598,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_http.c:599,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:603,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:605,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 606
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - _oidc_memset
    - oidc_test_request_get
    - oidc_http_set_cookie
    - apr_table_set
    - ck_assert_msg
    - _oidc_strstr
    - apr_palloc
    - apr_table_elts
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_set_cookie_append_env_and_size_warn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:613,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:616,1
    - Dst: oidc_http_get_chunked_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:617,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:618,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:619,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:619,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:622,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:623,1
    - Dst: oidc_http_get_chunked_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:623,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:626,1
    - Dst: oidc_http_get_chunked_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:627,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 629
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_table_set
    - _oidc_strcmp
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_http_get_chunked_cookie
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_get_chunked_cookie_negatives)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:636,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:637,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_http.c:638,1
    - Dst: oidc_http_set_chunked_cookie
      Src: /src/mod_auth_openidc/test/test_http.c:638,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_http.c:639,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:643,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:643,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:645,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:645,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:647,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:647,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:650,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 651
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ck_assert
    - apr_table_set
    - ck_assert_msg
    - _oidc_strstr
    - apr_table_elts
    - oidc_http_set_chunked_cookie
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_set_chunked_cookie_clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:655,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:656,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:657,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:658,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:659,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:660,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:661,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:662,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:664,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:664,1
    - Dst: oidc_http_hdr_in_x_requested_with_get
      Src: /src/mod_auth_openidc/test/test_http.c:664,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:666,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:666,1
    - Dst: oidc_http_hdr_in_sec_fetch_mode_get
      Src: /src/mod_auth_openidc/test/test_http.c:666,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:667,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:667,1
    - Dst: oidc_http_hdr_in_sec_fetch_dest_get
      Src: /src/mod_auth_openidc/test/test_http.c:667,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:668,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:668,1
    - Dst: oidc_http_hdr_in_authorization_get
      Src: /src/mod_auth_openidc/test/test_http.c:668,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:670,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:670,1
    - Dst: oidc_http_hdr_in_x_forwarded_proto_get
      Src: /src/mod_auth_openidc/test/test_http.c:670,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:672,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:672,1
    - Dst: oidc_http_hdr_in_x_forwarded_port_get
      Src: /src/mod_auth_openidc/test/test_http.c:672,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:674,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:674,1
    - Dst: oidc_http_hdr_in_host_get
      Src: /src/mod_auth_openidc/test/test_http.c:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 675
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_http_hdr_in_x_forwarded_port_get
    - apr_table_set
    - ck_assert_msg
    - oidc_http_hdr_in_authorization_get
    - oidc_http_hdr_in_sec_fetch_mode_get
    - oidc_http_hdr_in_x_forwarded_proto_get
    - oidc_http_hdr_in_host_get
    - oidc_http_hdr_in_x_requested_with_get
    - oidc_http_hdr_in_sec_fetch_dest_get
    - _oidc_strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_other_header_getters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_init
      Src: /src/mod_auth_openidc/test/test_http.c:679,1
    - Dst: oidc_http_cleanup
      Src: /src/mod_auth_openidc/test/test_http.c:680,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 682
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_cleanup
    - ck_assert_msg
    - oidc_http_init
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_init_and_cleanup_noop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:692,1
    - Dst: oidc_http_response_data
      Src: /src/mod_auth_openidc/test/test_http.c:698,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:698,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:699,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:699,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:700,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:700,1
    - Dst: oidc_http_response_data
      Src: /src/mod_auth_openidc/test/test_http.c:702,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:702,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:703,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:703,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:704,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:704,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:704,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:706,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:707,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 708
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_http_response_data
    - _oidc_strcmp
    - ck_assert_msg
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_response_data_accumulates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:712,1
    - Dst: oidc_http_response_data
      Src: /src/mod_auth_openidc/test/test_http.c:719,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:720,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 722
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ck_assert_msg
    - oidc_http_response_data
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_response_data_rejects_oversize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:726,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_http.c:727,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_http.c:730,1
    - Dst: oidc_http_response_header
      Src: /src/mod_auth_openidc/test/test_http.c:736,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:736,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:737,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:737,1
    - Dst: oidc_http_response_header
      Src: /src/mod_auth_openidc/test/test_http.c:739,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:739,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:740,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:740,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_http.c:742,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:743,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:744,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:744,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:747,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_http.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 748
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_request_get
    - apr_hash_set
    - apr_hash_make
    - ck_assert_ptr_nonnull
    - _oidc_strcmp
    - oidc_http_response_header
    - ck_assert_msg
    - ck_assert_ptr_null
    - apr_hash_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_response_header_captures_requested_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:752,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_http.c:753,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_http.c:754,1
    - Dst: oidc_http_response_header
      Src: /src/mod_auth_openidc/test/test_http.c:759,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:759,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:760,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:760,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_http.c:762,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:763,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:764,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 765
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_request_get
    - apr_hash_set
    - apr_hash_make
    - ck_assert_ptr_nonnull
    - _oidc_strcmp
    - oidc_http_response_header
    - ck_assert_msg
    - apr_hash_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_response_header_empty_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:769,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_http.c:771,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:775,1
    - Dst: oidc_http_response_header
      Src: /src/mod_auth_openidc/test/test_http.c:775,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:775,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:775,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:777,1
    - Dst: oidc_http_response_header
      Src: /src/mod_auth_openidc/test/test_http.c:777,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:777,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 779
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_request_get
    - apr_hash_make
    - ck_assert_msg
    - oidc_http_response_header
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_response_header_no_wanted_headers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct curl_slist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 788
    functionName: slist_count
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST slist_count(struct curl_slist *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - l
    - needle
    argTypes:
    - struct curl_slist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 796
    functionName: slist_contains
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - _oidc_strstr
    linkageType: ''
    returnType: int
    signature: int slist_contains(struct curl_slist *l, const char *needle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:799,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_http.c:800,1
    - Dst: oidc_http_request_build_header_list
      Src: /src/mod_auth_openidc/test/test_http.c:802,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:803,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:804,1
    - Dst: slist_count
      Src: /src/mod_auth_openidc/test/test_http.c:804,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:805,1
    - Dst: slist_contains
      Src: /src/mod_auth_openidc/test/test_http.c:805,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:806,1
    - Dst: slist_contains
      Src: /src/mod_auth_openidc/test/test_http.c:806,1
    - Dst: curl_slist_free_all
      Src: /src/mod_auth_openidc/test/test_http.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 808
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - slist_count
    - oidc_http_request_build_header_list
    - ck_assert_msg
    - slist_contains
    - curl_slist_free_all
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_build_header_list_bearer_and_content_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:812,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_http.c:813,1
    - Dst: oidc_http_request_build_header_list
      Src: /src/mod_auth_openidc/test/test_http.c:815,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:816,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:817,1
    - Dst: slist_contains
      Src: /src/mod_auth_openidc/test/test_http.c:817,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:819,1
    - Dst: slist_contains
      Src: /src/mod_auth_openidc/test/test_http.c:819,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:820,1
    - Dst: slist_contains
      Src: /src/mod_auth_openidc/test/test_http.c:820,1
    - Dst: curl_slist_free_all
      Src: /src/mod_auth_openidc/test/test_http.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 822
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_http_request_build_header_list
    - ck_assert_msg
    - slist_contains
    - curl_slist_free_all
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_build_header_list_dpop_switches_scheme_and_adds_header)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:826,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_http.c:827,1
    - Dst: oidc_http_request_build_header_list
      Src: /src/mod_auth_openidc/test/test_http.c:829,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_http.c:831,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:832,1
    - Dst: slist_count
      Src: /src/mod_auth_openidc/test/test_http.c:832,1
    - Dst: curl_slist_free_all
      Src: /src/mod_auth_openidc/test/test_http.c:834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 835
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - slist_count
    - oidc_http_request_build_header_list
    - ck_assert_msg
    - curl_slist_free_all
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_build_header_list_no_inputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:839,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_http.c:841,1
    - Dst: oidc_http_user_agent
      Src: /src/mod_auth_openidc/test/test_http.c:842,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:843,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:844,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:844,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:846,1
    - Dst: oidc_http_user_agent
      Src: /src/mod_auth_openidc/test/test_http.c:847,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:848,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:849,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:849,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_http.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 852
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - apr_table_set
    - _oidc_strcmp
    - ck_assert_msg
    - oidc_http_user_agent
    - _oidc_strstr
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_user_agent_defaults_and_override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:856,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_http.c:858,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:859,1
    - Dst: oidc_http_interface
      Src: /src/mod_auth_openidc/test/test_http.c:859,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:861,1
    - Dst: oidc_http_interface
      Src: /src/mod_auth_openidc/test/test_http.c:862,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:863,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:864,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:864,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_http.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 867
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - apr_table_set
    - _oidc_strcmp
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_http_interface
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_interface_env_var_passthrough)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 886
    functionName: oidc_http_timeout_t::e2e_timeout
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST oidc_http_timeout_t e2e_timeout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 891
    functionName: e2e_no_proxy
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: oidc_http_outgoing_proxy_t
    signature: oidc_http_outgoing_proxy_t e2e_no_proxy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:897,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:900,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:901,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_http.c:905,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:906,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_http.c:908,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:909,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:910,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_http.c:910,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_http.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 911
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_request_get
    - apr_time_now
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - e2e_no_proxy
    - e2e_timeout
    - apr_time_from_sec
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_e2e_get_null_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:915,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:918,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:919,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:921,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:924,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:925,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:926,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:929,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:930,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:931,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:932,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:933,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:933,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:934,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:935,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:935,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:936,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:936,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 939
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - _oidc_strcmp
    - ck_assert_msg
    - e2e_no_proxy
    - e2e_timeout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_get_happy_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:943,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:945,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:946,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:948,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_http.c:949,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:950,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:951,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:955,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:956,1
    - Dst: oidc_http_post_form
      Src: /src/mod_auth_openidc/test/test_http.c:957,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:960,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:961,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:962,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:963,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:963,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_http.c:964,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:965,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:966,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:966,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:967,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:968,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:968,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:970,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:970,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 973
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_post_form
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_table_make
    - apr_table_set
    - _oidc_strcmp
    - ck_assert_msg
    - _oidc_strstr
    - e2e_no_proxy
    - e2e_timeout
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_post_form)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:977,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:980,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:981,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:983,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_http.c:984,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:987,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:988,1
    - Dst: oidc_http_post_json
      Src: /src/mod_auth_openidc/test/test_http.c:989,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_http.c:991,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:993,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:994,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_http.c:995,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:996,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:997,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:997,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:998,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:999,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:999,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:999,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1001,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1001,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 1004
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_http_post_json
    - ck_assert_msg
    - _oidc_strcmp
    - e2e_no_proxy
    - _oidc_strstr
    - e2e_timeout
    - json_pack
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_post_json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1008,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:1010,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1011,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1013,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1016,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1017,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1018,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:1021,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1022,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_http.c:1023,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1024,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1025,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:1025,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_http.c:1026,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1029
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - _oidc_strcmp
    - ck_assert_msg
    - ck_assert_table_unset
    - e2e_no_proxy
    - e2e_timeout
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_bearer_authorization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1033,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:1035,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1036,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1038,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1041,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1042,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1043,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:1046,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1047,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_http.c:1048,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1049,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1050,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:1050,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_http.c:1051,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1052,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1053,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:1053,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1056
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - _oidc_strcmp
    - ck_assert_msg
    - e2e_no_proxy
    - e2e_timeout
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_dpop_authorization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1060,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_http.c:1061,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:1062,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:1067,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1068,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1070,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_http.c:1071,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_http.c:1072,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_http.c:1073,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1077,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1078,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1079,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:1082,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1084,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1085,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_http.c:1086,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1087,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1088,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_http.c:1088,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_http.c:1089,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1090,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1091,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1091,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1094
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_http_server_start
    - oidc_test_request_get
    - apr_hash_set
    - apr_hash_make
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - apr_hash_get
    - oidc_test_http_server_stop
    - apr_table_make
    - apr_table_set
    - _oidc_strcmp
    - ck_assert_msg
    - _oidc_strstr
    - e2e_no_proxy
    - e2e_timeout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_response_hdrs_and_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1098,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:1100,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1101,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1103,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1106,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1107,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1108,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:1111,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1112,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_http.c:1113,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1114,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1116,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1116,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1117,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1117,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1120
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - ck_assert_msg
    - _oidc_strstr
    - e2e_no_proxy
    - e2e_timeout
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_basic_auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1124,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:1126,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1127,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:1130,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/test_http.c:1131,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1134,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1137,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1138,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1139,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:1142,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1143,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_http.c:1144,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1145,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1146,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1146,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1147,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1147,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1150
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_table_set
    - ck_assert_msg
    - apr_array_make
    - _oidc_strstr
    - e2e_no_proxy
    - e2e_timeout
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_pass_cookies)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1154,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:1156,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1157,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_http.c:1159,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:1160,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:1161,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1163,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1166,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1167,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1168,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:1171,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1172,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1173,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1174,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1174,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1176,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1176,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1179
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_table_make
    - apr_table_set
    - ck_assert_msg
    - _oidc_strstr
    - e2e_no_proxy
    - e2e_timeout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_get_with_query_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1183,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_http.c:1186,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1187,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_http.c:1189,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1193,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_http.c:1195,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1196,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_http.c:1198,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1200,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1180
    functionDepth: 1
    functionLinenumber: 1180
    functionLinenumberEnd: 1204
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_request_get
    - oidc_test_http_free_port
    - apr_time_now
    - ck_assert_msg
    - apr_psprintf
    - e2e_no_proxy
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_retry_on_connect_refused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1208,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_http.c:1217,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1218,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1219,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1220,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1221,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1226,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1227,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1232,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1234,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1235,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1236,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1239,1
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/test_http.c:1239,1
    - Dst: oidc_test_http_server_captured
      Src: /src/mod_auth_openidc/test/test_http.c:1240,1
    - Dst: oidc_test_http_server_captured
      Src: /src/mod_auth_openidc/test/test_http.c:1241,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1242,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1243,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1244,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1245,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_http.c:1247,1
    - Dst: oidc_test_http_server_captured
      Src: /src/mod_auth_openidc/test/test_http.c:1247,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1250
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_captured
    - oidc_http_get
    - oidc_test_request_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_test_http_server_start_seq
    - oidc_test_http_server_request_count
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - e2e_no_proxy
    - e2e_timeout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_scripted_sequence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1260,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:1262,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1263,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:1265,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1272,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1275,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1276,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1277,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:1280,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1281,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1282,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_http.c:1284,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1286
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - apr_table_unset
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_table_set
    - ck_assert_msg
    - ck_assert_int_eq
    - e2e_no_proxy
    - e2e_timeout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_ssl_options_and_client_cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1293,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_http.c:1294,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:1296,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1297,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_http.c:1299,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:1300,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1302,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1305,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1306,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1307,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:1310,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1311,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_http.c:1313,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1316
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - apr_pstrdup
    - oidc_test_http_server_start
    - oidc_test_request_get
    - apr_table_unset
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_table_set
    - ck_assert_msg
    - e2e_no_proxy
    - e2e_timeout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_ca_bundle_and_interface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1324,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:1326,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1327,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1329,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_http.c:1331,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1338,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1339,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:1342,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1343,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1344,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1346,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1346,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1349
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - _oidc_strlen
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - ck_assert_msg
    - _oidc_strstr
    - e2e_timeout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_outgoing_proxy_auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1356,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_http.c:1357,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:1359,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1360,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:1363,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1365,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1368,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1369,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1370,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:1373,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1374,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1375,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_http.c:1376,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1377,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1378,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1378,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1350
    functionDepth: 1
    functionLinenumber: 1350
    functionLinenumberEnd: 1382
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_table_set
    - ck_assert_msg
    - _oidc_strstr
    - e2e_no_proxy
    - e2e_timeout
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_traceparent_propagated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1389,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_http.c:1391,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1392,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_http.c:1394,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/test_http.c:1395,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_http.c:1399,1
    - Dst: e2e_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1402,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1403,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1404,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_http.c:1407,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1408,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_http.c:1409,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_http.c:1410,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1411,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1411,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1412,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_http.c:1412,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_http.c:1414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1383
    functionDepth: 1
    functionLinenumber: 1383
    functionLinenumberEnd: 1415
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_table_set
    - ck_assert_msg
    - apr_array_make
    - _oidc_strstr
    - e2e_no_proxy
    - e2e_timeout
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_pass_cookies_missing_entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_http.c:1423,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1428,1
    - Dst: apr_sockaddr_info_get
      Src: /src/mod_auth_openidc/test/test_http.c:1428,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1429,1
    - Dst: apr_socket_create
      Src: /src/mod_auth_openidc/test/test_http.c:1429,1
    - Dst: apr_socket_opt_set
      Src: /src/mod_auth_openidc/test/test_http.c:1430,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1431,1
    - Dst: apr_socket_bind
      Src: /src/mod_auth_openidc/test/test_http.c:1431,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1432,1
    - Dst: apr_socket_listen
      Src: /src/mod_auth_openidc/test/test_http.c:1432,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_http.c:1434,1
    - Dst: apr_socket_addr_get
      Src: /src/mod_auth_openidc/test/test_http.c:1434,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_http.c:1436,1
    - Dst: e2e_no_proxy
      Src: /src/mod_auth_openidc/test/test_http.c:1441,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_http.c:1443,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/test/test_http.c:1444,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_http.c:1446,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1448,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_http.c:1451,1
    - Dst: apr_socket_close
      Src: /src/mod_auth_openidc/test/test_http.c:1453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1454
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_test_request_get
    - apr_socket_addr_get
    - apr_socket_bind
    - apr_time_now
    - apr_sockaddr_info_get
    - apr_socket_create
    - apr_socket_close
    - ck_assert_msg
    - apr_psprintf
    - e2e_no_proxy
    - ck_assert_int_eq
    - apr_socket_opt_set
    - apr_socket_listen
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_e2e_timeout_no_retry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_http.c:1458,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_http.c:1459,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1461,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1462,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1463,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1464,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1465,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1466,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1467,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1468,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1469,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1470,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1471,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1472,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1473,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1474,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1475,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1476,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1477,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1478,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1479,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1480,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1481,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1482,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1483,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1484,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1485,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_http.c:1487,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_http.c:1488,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1489,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1490,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1491,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1492,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1493,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1494,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1495,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1496,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1497,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1498,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_http.c:1500,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_http.c:1501,1
    - Dst: tcase_set_timeout
      Src: /src/mod_auth_openidc/test/test_http.c:1503,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1504,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1505,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1506,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1507,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1508,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1509,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1510,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1511,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1512,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1513,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1514,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1515,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1516,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1517,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1518,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1519,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1520,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_http.c:1521,1
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_http.c:1523,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_http.c:1524,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_http.c:1525,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_http.c:1526,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_http.c:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1529
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_http.c
    functionUses: 0
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_set_timeout
    - tcase_add_checked_fixture
    - tcase_add_test
    - suite_add_tcase
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_session.c:62,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_session.c:66,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:69,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/test_session.c:70,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:73,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_session.c:75,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 78
    functionName: replay_set_cookies
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - apr_pstrdup
    - apr_table_set
    - apr_psprintf
    - strchr
    - apr_table_elts
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: void replay_set_cookies(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:81,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:87,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:89,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:90,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:91,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:91,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:92,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_session.c:93,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:95,1
    - Dst: oidc_session_set_session_expires
      Src: /src/mod_auth_openidc/test/test_session.c:96,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:97,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:97,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:99,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:99,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_session.c:99,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:102,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:102,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:103,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:104,1
    - Dst: oidc_session_get_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:104,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:105,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/test/test_session.c:105,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_session.c:106,1
    - Dst: oidc_session_get_session_expires
      Src: /src/mod_auth_openidc/test/test_session.c:106,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:108,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 110
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - apr_time_now
    - apr_table_set
    - oidc_session_set_access_token
    - oidc_cfg_dir_cookie_get
    - oidc_session_get_issuer
    - ck_assert
    - oidc_session_save
    - ck_assert_str_eq
    - oidc_test_request_get
    - oidc_session_load
    - oidc_session_set_session_expires
    - oidc_session_get_access_token
    - apr_pstrdup
    - oidc_session_set_issuer
    - oidc_session_get_session_expires
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_session_cache_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:114,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_session.c:115,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:120,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:122,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:123,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:124,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:125,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:126,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:126,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_session.c:127,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:128,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:128,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:132,1
    - Dst: oidc_cache_get_session
      Src: /src/mod_auth_openidc/test/test_session.c:132,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_session.c:133,1
    - Dst: oidc_session_reset
      Src: /src/mod_auth_openidc/test/test_session.c:135,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_session.c:138,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_session.c:139,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_session.c:139,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:140,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:141,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:142,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:143,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/test/test_session.c:143,1
    - Dst: oidc_cache_get_session
      Src: /src/mod_auth_openidc/test/test_session.c:147,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:148,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 151
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cache_get_session
    - oidc_test_cfg_get
    - apr_time_now
    - oidc_session_save
    - oidc_session_reset
    - oidc_session_get_refresh_token
    - oidc_session_set_refresh_token
    - ck_assert_msg
    - _oidc_strcmp
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_reset_starts_a_new_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:155,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_session.c:156,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:164,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:165,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:166,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:166,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:167,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_session.c:168,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:169,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:169,1
    - Dst: replay_set_cookies
      Src: /src/mod_auth_openidc/test/test_session.c:171,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:174,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:174,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:175,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:176,1
    - Dst: oidc_session_get_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:176,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:177,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/test/test_session.c:177,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:179,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 181
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - oidc_session_get_issuer
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - oidc_session_set_issuer
    - apr_time_now
    - oidc_session_save
    - oidc_session_get_access_token
    - oidc_session_set_access_token
    - ck_assert_str_eq
    - replay_set_cookies
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_cookie_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:186,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_session.c:187,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:193,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:194,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:195,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:195,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_session.c:196,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:197,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:197,1
    - Dst: replay_set_cookies
      Src: /src/mod_auth_openidc/test/test_session.c:198,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:202,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:202,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:203,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_session.c:206,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_session.c:211,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_session.c:212,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:217,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_session.c:218,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_session.c:223,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:225,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:225,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:226,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:228,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:229,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:230,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 232
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - apr_time_now
    - oidc_session_save
    - oidc_cfg_server_create
    - ap_set_module_config
    - ck_assert_msg
    - oidc_session_set_access_token
    - ck_assert_str_eq
    - oidc_test_crypto_passphrase_rederive
    - replay_set_cookies
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_cookie_not_shared_across_vhosts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:236,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:239,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:242,1
    - Dst: oidc_session_set_access_token_last_refresh
      Src: /src/mod_auth_openidc/test/test_session.c:243,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:244,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_session.c:244,1
    - Dst: oidc_session_get_access_token_last_refresh
      Src: /src/mod_auth_openidc/test/test_session.c:244,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_session.c:244,1
    - Dst: oidc_session_reset_userinfo_last_refresh
      Src: /src/mod_auth_openidc/test/test_session.c:249,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_session.c:250,1
    - Dst: oidc_session_get_userinfo_last_refresh
      Src: /src/mod_auth_openidc/test/test_session.c:250,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 253
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_time_sec
    - oidc_session_set_access_token_last_refresh
    - oidc_session_load
    - oidc_session_get_userinfo_last_refresh
    - oidc_session_get_access_token_last_refresh
    - apr_time_now
    - ck_assert
    - oidc_session_reset_userinfo_last_refresh
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_last_refresh_timestamps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:257,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:260,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:262,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_session.c:263,1
    - Dst: oidc_session_set_access_token_type
      Src: /src/mod_auth_openidc/test/test_session.c:264,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_session.c:265,1
    - Dst: oidc_session_set_scope
      Src: /src/mod_auth_openidc/test/test_session.c:266,1
    - Dst: oidc_session_set_session_state
      Src: /src/mod_auth_openidc/test/test_session.c:267,1
    - Dst: oidc_session_set_original_url
      Src: /src/mod_auth_openidc/test/test_session.c:268,1
    - Dst: oidc_session_set_path_auth_request_params
      Src: /src/mod_auth_openidc/test/test_session.c:269,1
    - Dst: oidc_session_set_path_scope
      Src: /src/mod_auth_openidc/test/test_session.c:270,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:272,1
    - Dst: oidc_session_get_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:272,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:273,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/test/test_session.c:273,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:274,1
    - Dst: oidc_session_get_access_token_type
      Src: /src/mod_auth_openidc/test/test_session.c:274,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:275,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/test/test_session.c:275,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:276,1
    - Dst: oidc_session_get_scope
      Src: /src/mod_auth_openidc/test/test_session.c:276,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:277,1
    - Dst: oidc_session_get_session_state
      Src: /src/mod_auth_openidc/test/test_session.c:277,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:278,1
    - Dst: oidc_session_get_original_url
      Src: /src/mod_auth_openidc/test/test_session.c:278,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:279,1
    - Dst: oidc_session_get_path_auth_request_params
      Src: /src/mod_auth_openidc/test/test_session.c:279,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:280,1
    - Dst: oidc_session_get_path_scope
      Src: /src/mod_auth_openidc/test/test_session.c:280,1
    - Dst: oidc_session_set_path_scope
      Src: /src/mod_auth_openidc/test/test_session.c:282,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:283,1
    - Dst: oidc_session_get_path_scope
      Src: /src/mod_auth_openidc/test/test_session.c:283,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 286
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - oidc_session_set_access_token_type
    - oidc_session_set_refresh_token
    - oidc_session_set_access_token
    - oidc_session_get_issuer
    - oidc_session_get_path_auth_request_params
    - oidc_session_set_session_state
    - ck_assert_ptr_null
    - oidc_session_set_scope
    - oidc_session_get_path_scope
    - ck_assert_str_eq
    - oidc_test_request_get
    - oidc_session_load
    - oidc_session_set_path_scope
    - oidc_session_get_access_token_type
    - oidc_session_get_access_token
    - oidc_session_get_refresh_token
    - oidc_session_set_original_url
    - oidc_session_set_path_auth_request_params
    - oidc_session_set_issuer
    - oidc_session_get_session_state
    - oidc_session_get_original_url
    - oidc_session_get_scope
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_getter_setter_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:291,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_session.c:292,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:297,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:298,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:299,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:299,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:300,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:301,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:301,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:302,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:305,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:306,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_session.c:306,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:308,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:308,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 310
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_issuer
    - apr_time_now
    - oidc_session_save
    - apr_table_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    - oidc_cfg_dir_cookie_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_cookie_no_crypto_passphrase)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:315,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_session.c:316,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:321,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:322,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:323,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:324,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:324,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:325,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:326,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:326,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_session.c:327,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_session.c:331,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_session.c:332,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_session.c:334,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_session.c:338,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_session.c:341,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:342,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:342,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_session.c:343,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_session.c:346,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_session.c:347,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_session.c:350,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_session.c:354,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:355,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:355,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/test/test_session.c:356,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_session.c:359,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_session.c:360,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_session.c:363,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:365,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 366
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_issuer
    - apr_time_now
    - oidc_session_free
    - oidc_session_save
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_elts
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_cookie_samesite_variants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:372,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_session.c:373,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:376,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:377,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_session.c:377,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:380,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:380,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:381,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:387,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:388,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:389,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:389,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:390,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:391,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:391,1
    - Dst: replay_set_cookies
      Src: /src/mod_auth_openidc/test/test_session.c:392,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:395,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:395,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:396,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:397,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:398,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:402,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:403,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:404,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:404,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_session.c:405,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_session.c:406,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:408,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:411,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 413
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - _oidc_memset
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_issuer
    - apr_time_now
    - oidc_session_save
    - apr_table_set
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - apr_palloc
    - replay_set_cookies
    - oidc_session_free
    - apr_time_from_sec
    - oidc_cfg_dir_cookie_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_load_cache_fallback_to_cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:419,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:421,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:421,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:424,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:424,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_session.c:424,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:427,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_session.c:428,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:429,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/test/test_session.c:429,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:430,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:430,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:431,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:434,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_session.c:435,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:435,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:435,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:436,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/test/test_session.c:436,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:437,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:437,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_session.c:437,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:438,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:438,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:439,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:443,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_session.c:443,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:444,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/test/test_session.c:444,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:445,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:445,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_session.c:445,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:446,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:446,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 448
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_time_sec
    - oidc_session_load
    - apr_time_now
    - apr_table_set
    - oidc_cache_set_session
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    - oidc_cfg_dir_cookie_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_cache_corruption)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:457,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:459,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:459,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:464,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:464,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_session.c:464,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:465,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_session.c:465,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:466,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/test/test_session.c:466,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:467,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:467,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:468,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:469,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:472,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:472,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_session.c:472,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:474,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_session.c:474,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:475,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/test/test_session.c:475,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:476,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:476,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:477,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:482,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:482,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_session.c:482,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:484,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_session.c:484,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:485,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/test/test_session.c:485,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:486,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:486,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:487,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:488,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_session.c:493,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:494,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:495,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:497,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:498,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:498,1
    - Dst: oidc_cache_get_session
      Src: /src/mod_auth_openidc/test/test_session.c:500,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_session.c:501,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_session.c:502,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_session.c:502,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 505
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - apr_time_sec
    - oidc_cache_get_session
    - apr_time_now
    - apr_table_set
    - _oidc_strstr
    - oidc_cfg_dir_cookie_get
    - oidc_session_save
    - oidc_cache_set_session
    - ck_assert_ptr_null
    - ck_assert_msg
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - apr_table_unset
    - oidc_test_request_get
    - oidc_session_load
    - apr_pstrdup
    - oidc_session_set_issuer
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_format_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:511,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:515,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:516,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:517,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:518,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:518,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:519,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:520,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:520,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:521,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:523,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_session.c:523,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_session.c:523,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:525,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:525,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:526,1
    - Dst: oidc_session_get_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:526,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:527,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:528,1
    - Dst: oidc_session_get_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:528,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:529,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:533,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:533,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:534,1
    - Dst: oidc_session_get_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:534,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:535,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_session.c:539,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:541,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:542,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:543,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:544,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:545,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:546,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:546,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 548
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - oidc_session_get_issuer
    - apr_pstrdup
    - oidc_test_request_get
    - apr_table_unset
    - oidc_session_load
    - oidc_session_set_issuer
    - apr_time_now
    - oidc_session_save
    - apr_table_set
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_session_free
    - apr_time_from_sec
    - oidc_cfg_dir_cookie_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_load_mutate_reload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:553,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:561,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:562,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:563,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:564,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:565,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:566,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:566,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:567,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:568,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:568,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:569,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:572,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:573,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:574,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:575,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:576,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_session.c:577,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_session.c:577,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_session.c:578,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:579,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:579,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:580,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:582,1
    - Dst: oidc_cache_get_sid
      Src: /src/mod_auth_openidc/test/test_session.c:582,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:583,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:587,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:588,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:589,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:590,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:591,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:591,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:592,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:595,1
    - Dst: oidc_cache_get_sid
      Src: /src/mod_auth_openidc/test/test_session.c:595,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_session.c:596,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_session.c:597,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:601,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:602,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:603,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_session.c:604,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:605,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_session.c:605,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:606,1
    - Dst: oidc_cache_get_sid
      Src: /src/mod_auth_openidc/test/test_session.c:609,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 611
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_cache_get_sid
    - oidc_session_load
    - oidc_session_set_issuer
    - apr_time_now
    - oidc_session_save
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_session_free
    - apr_time_from_sec
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_sub_index_survives_older_session_kill)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:616,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_session.c:617,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:619,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_session.c:622,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:623,1
    - Dst: oidc_cmd_black_listed_claims_set
      Src: /src/mod_auth_openidc/test/test_session.c:623,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_session.c:624,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_session.c:625,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_session.c:626,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_session.c:627,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_session.c:627,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:628,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_session.c:628,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_session.c:629,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_session.c:633,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:634,1
    - Dst: oidc_cmd_white_listed_claims_set
      Src: /src/mod_auth_openidc/test/test_session.c:634,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_session.c:635,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_session.c:636,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_session.c:637,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_session.c:638,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_session.c:638,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:639,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_session.c:639,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_session.c:640,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_session.c:644,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_session.c:645,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_session.c:646,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_session.c:647,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_session.c:648,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_session.c:648,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_session.c:649,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_session.c:650,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 653
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_cmd_black_listed_claims_set
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_json_object_get
    - oidc_session_set_userinfo_claims
    - apr_table_set
    - ck_assert_ptr_null
    - oidc_session_get_userinfo_claims
    - oidc_cmd_white_listed_claims_set
    - json_pack
    - oidc_session_free
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_session_claim_filtering)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:659,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:661,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_session.c:663,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:664,1
    - Dst: oidc_cmd_filter_claims_expr_set
      Src: /src/mod_auth_openidc/test/test_session.c:664,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_session.c:666,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_session.c:667,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_session.c:668,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_session.c:669,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_session.c:670,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_session.c:670,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:671,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_session.c:671,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_session.c:672,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_session.c:675,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:676,1
    - Dst: oidc_cmd_filter_claims_expr_set
      Src: /src/mod_auth_openidc/test/test_session.c:676,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_session.c:677,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_session.c:678,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:679,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_session.c:679,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_session.c:680,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 683
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_session_load
    - oidc_json_object_get
    - oidc_session_free
    - oidc_session_set_userinfo_claims
    - ck_assert_ptr_null
    - oidc_session_get_userinfo_claims
    - json_pack
    - oidc_cmd_filter_claims_expr_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_session_claim_jq_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_session.c:689,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_session.c:691,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_session.c:692,1
    - Dst: oidc_session_set_session_new
      Src: /src/mod_auth_openidc/test/test_session.c:693,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:694,1
    - Dst: oidc_session_get_session_new
      Src: /src/mod_auth_openidc/test/test_session.c:694,1
    - Dst: oidc_session_set_session_new
      Src: /src/mod_auth_openidc/test/test_session.c:695,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_session.c:696,1
    - Dst: oidc_session_get_session_new
      Src: /src/mod_auth_openidc/test/test_session.c:696,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_session.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 698
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - oidc_session_set_session_new
    - oidc_test_request_get
    - oidc_session_load
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_session_get_session_new
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_session_set_new_on_empty_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_session.c:702,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_session.c:704,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_session.c:705,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:706,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:707,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:708,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:709,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:710,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:711,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:712,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:713,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:714,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:715,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:716,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:717,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:718,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:719,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:721,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_session.c:723,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_session.c:724,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_session.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 727
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_session.c
    functionUses: 0
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_add_checked_fixture
    - suite_add_tcase
    - tcase_add_test
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/util.c:69,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/test/util.c:70,1
    - Dst: oidc_util_key_derive_passphrase_key
      Src: /src/mod_auth_openidc/test/util.c:74,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/util.c:77,1
    - Dst: _oidc_strcpy
      Src: /src/mod_auth_openidc/test/util.c:78,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/test/util.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - secret
    - out
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: oidc_test_key_derive_cached
    functionSourceFile: /src/mod_auth_openidc/test/util.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - _oidc_memcpy
    - oidc_util_key_derive_passphrase_key
    - _oidc_strcpy
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_test_key_derive_cached(const char *secret, unsigned
      char *out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/util.c:92,1
    - Dst: oidc_test_key_derive_cached
      Src: /src/mod_auth_openidc/test/util.c:93,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/util.c:97,1
    - Dst: oidc_test_key_derive_cached
      Src: /src/mod_auth_openidc/test/util.c:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - cp
    argTypes:
    - oidc_crypto_passphrase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: oidc_test_crypto_passphrase_derive_keys_cached
    functionSourceFile: /src/mod_auth_openidc/test/util.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_key_derive_cached
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_test_crypto_passphrase_derive_keys_cached(oidc_crypto_passphrase_t
      *cp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/util.c:108,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/util.c:110,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/util.c:112,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/util.c:114,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/util.c:115,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/util.c:116,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/util.c:118,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/util.c:119,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/util.c:120,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/util.c:125,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/util.c:126,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/util.c:127,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/util.c:128,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/util.c:129,1
    - Dst: apr_bucket_alloc_create
      Src: /src/mod_auth_openidc/test/util.c:130,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/util.c:131,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/util.c:134,1
    - Dst: apr_pool_userdata_set
      Src: /src/mod_auth_openidc/test/util.c:137,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/test/util.c:142,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/util.c:145,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/util.c:147,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/util.c:147,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/util.c:149,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/util.c:149,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/util.c:151,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/util.c:151,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/util.c:155,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/util.c:158,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/util.c:160,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/util.c:161,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/util.c:162,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/util.c:165,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/util.c:166,1
    - Dst: oidc_test_crypto_passphrase_derive_keys_cached
      Src: /src/mod_auth_openidc/test/util.c:169,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/util.c:170,1
    - Dst: exit
      Src: /src/mod_auth_openidc/test/util.c:171,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/util.c:176,1
    - Dst: strtol
      Src: /src/mod_auth_openidc/test/util.c:179,1
    - Dst: oidc_cfg_post_config
      Src: /src/mod_auth_openidc/test/util.c:186,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/util.c:187,1
    - Dst: exit
      Src: /src/mod_auth_openidc/test/util.c:188,1
    - Dst: oidc_cfg_dir_post_config
      Src: /src/mod_auth_openidc/test/util.c:191,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/util.c:192,1
    - Dst: exit
      Src: /src/mod_auth_openidc/test/util.c:193,1
    - Dst: oidc_http_curl_pool_init
      Src: /src/mod_auth_openidc/test/util.c:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 59
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 199
    functionName: oidc_test_request_init
    functionSourceFile: /src/mod_auth_openidc/test/util.c
    functionUses: 0
    functionsReached:
    - apr_table_make
    - apr_table_set
    - apr_uri_parse
    - apr_bucket_alloc_create
    - oidc_cfg_provider_authorization_endpoint_url_set
    - exit
    - apr_pool_userdata_set
    - strtol
    - oidc_cfg_post_config
    - oidc_cfg_provider_get
    - oidc_test_crypto_passphrase_derive_keys_cached
    - oidc_cfg_provider_client_id_set
    - getenv
    - oidc_http_curl_pool_init
    - oidc_cfg_dir_post_config
    - apr_pool_create
    - oidc_cfg_dir_config_create
    - oidc_cfg_server_create
    - ap_set_module_config
    - apr_pcalloc
    - apr_array_make
    - fprintf
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: request_rec
    signature: request_rec *oidc_test_request_init(apr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_initialize
      Src: /src/mod_auth_openidc/test/util.c:202,1
    - Dst: oidc_pre_config_init
      Src: /src/mod_auth_openidc/test/util.c:203,1
    - Dst: oidc_test_set_auth_type
      Src: /src/mod_auth_openidc/test/util.c:206,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/util.c:207,1
    - Dst: oidc_test_request_init
      Src: /src/mod_auth_openidc/test/util.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: oidc_test_setup
    functionSourceFile: /src/mod_auth_openidc/test/util.c
    functionUses: 0
    functionsReached:
    - apr_pool_create
    - oidc_pre_config_init
    - oidc_test_set_auth_type
    - oidc_test_request_init
    - apr_initialize
    linkageType: ''
    returnType: void
    signature: void oidc_test_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/util.c:214,1
    - Dst: oidc_cfg_process_cleanup
      Src: /src/mod_auth_openidc/test/util.c:215,1
    - Dst: EVP_cleanup
      Src: /src/mod_auth_openidc/test/util.c:217,1
    - Dst: apr_terminate
      Src: /src/mod_auth_openidc/test/util.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: oidc_test_teardown
    functionSourceFile: /src/mod_auth_openidc/test/util.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_cfg_process_cleanup
    - EVP_cleanup
    - apr_terminate
    linkageType: ''
    returnType: void
    signature: void oidc_test_teardown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: oidc_test_pool_get
    functionSourceFile: /src/mod_auth_openidc/test/util.c
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: apr_pool_t
    signature: apr_pool_t *oidc_test_pool_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: oidc_test_request_get
    functionSourceFile: /src/mod_auth_openidc/test/util.c
    functionUses: 321
    functionsReached: []
    linkageType: ''
    returnType: request_rec
    signature: request_rec *oidc_test_request_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/util.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: oidc_test_cfg_get
    functionSourceFile: /src/mod_auth_openidc/test/util.c
    functionUses: 295
    functionsReached:
    - ap_get_module_config
    linkageType: ''
    returnType: oidc_cfg_t
    signature: oidc_cfg_t *oidc_test_cfg_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/util.c:236,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/util.c:237,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/util.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - primitive
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 244
    functionName: oidc_test_cmd_get
    functionSourceFile: /src/mod_auth_openidc/test/util.c
    functionUses: 122
    functionsReached:
    - oidc_test_request_get
    - apr_pcalloc
    linkageType: ''
    returnType: cmd_parms
    signature: cmd_parms *oidc_test_cmd_get(const char *primitive)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_crypto_passphrase_derive_keys_cached
      Src: /src/mod_auth_openidc/test/util.c:250,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/util.c:251,1
    - Dst: exit
      Src: /src/mod_auth_openidc/test/util.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: oidc_test_crypto_passphrase_rederive
    functionSourceFile: /src/mod_auth_openidc/test/util.c
    functionUses: 1
    functionsReached:
    - exit
    - fprintf
    - oidc_test_crypto_passphrase_derive_keys_cached
    linkageType: ''
    returnType: void
    signature: void oidc_test_crypto_passphrase_rederive(oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/test/test_util.c:70,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:70,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:71,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:72,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/test/test_util.c:75,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:75,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_util.c:75,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:76,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:77,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:78,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/test/test_util.c:82,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:82,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_util.c:82,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:83,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:84,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 86
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_util_base64url_encode
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_util_base64url_encode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_base64_decode
      Src: /src/mod_auth_openidc/test/test_util.c:95,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:95,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:96,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:97,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:98,1
    - Dst: oidc_util_base64_decode
      Src: /src/mod_auth_openidc/test/test_util.c:100,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:100,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:101,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:102,1
    - Dst: oidc_util_base64_decode
      Src: /src/mod_auth_openidc/test/test_util.c:104,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:104,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:105,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:106,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 108
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_pool_get
    - oidc_util_base64_decode
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_base64_decode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_base64url_decode
      Src: /src/mod_auth_openidc/test/test_util.c:115,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:115,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:116,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:117,1
    - Dst: ck_assert_mem_eq
      Src: /src/mod_auth_openidc/test/test_util.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - ck_assert_mem_eq
    - oidc_test_pool_get
    - oidc_util_base64url_decode
    - ck_assert_msg
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_base64url_decode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:125,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_util.c:127,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:144,1
    - Dst: oidc_util_appinfo_set_all
      Src: /src/mod_auth_openidc/test/test_util.c:146,1
    - Dst: oidc_util_appinfo_set_all
      Src: /src/mod_auth_openidc/test/test_util.c:148,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:149,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:150,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:151,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:152,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:153,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:154,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:156,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:157,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:158,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:159,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:160,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:161,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:163,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:164,1
    - Dst: oidc_util_appinfo_set_all
      Src: /src/mod_auth_openidc/test/test_util.c:166,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:168,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:169,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:170,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:171,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:173,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:174,1
    - Dst: oidc_util_appinfo_set_all
      Src: /src/mod_auth_openidc/test/test_util.c:176,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:178,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:179,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:180,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:181,1
    - Dst: oidc_util_appinfo_set_all
      Src: /src/mod_auth_openidc/test/test_util.c:183,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:185,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:186,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:187,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 190
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_json_decode_object
    - ck_assert_table_str
    - ck_assert_table_unset
    - ck_assert_int_eq
    - oidc_util_appinfo_set_all
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_appinfo_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:196,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_util.c:198,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:204,1
    - Dst: oidc_util_appinfo_set_all
      Src: /src/mod_auth_openidc/test/test_util.c:208,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:209,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:210,1
    - Dst: oidc_util_appinfo_set_all
      Src: /src/mod_auth_openidc/test/test_util.c:213,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:215,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 218
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_json_decode_object
    - ck_assert_table_str
    - ck_assert_int_eq
    - oidc_util_appinfo_set_all
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_appinfo_array_delimiter_escape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:223,1
    - Dst: oidc_util_regexp_substitute
      Src: /src/mod_auth_openidc/test/test_util.c:230,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:231,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:232,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_util.c:236,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_util.c:237,1
    - Dst: oidc_util_regexp_substitute
      Src: /src/mod_auth_openidc/test/test_util.c:239,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:240,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:241,1
    - Dst: oidc_util_regexp_substitute
      Src: /src/mod_auth_openidc/test/test_util.c:244,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:245,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:246,1
    - Dst: oidc_util_regexp_substitute
      Src: /src/mod_auth_openidc/test/test_util.c:249,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:250,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:251,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:252,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_util.c:257,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_util.c:258,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:260,1
    - Dst: oidc_util_regexp_substitute
      Src: /src/mod_auth_openidc/test/test_util.c:261,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:262,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:263,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:264,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_util.c:264,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 266
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - _oidc_memset
    - _oidc_strlen
    - oidc_test_pool_get
    - oidc_util_regexp_substitute
    - ck_assert_msg
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - apr_palloc
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_expr_substitute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:271,1
    - Dst: oidc_util_regexp_first_match
      Src: /src/mod_auth_openidc/test/test_util.c:278,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:279,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:280,1
    - Dst: oidc_util_regexp_first_match
      Src: /src/mod_auth_openidc/test/test_util.c:283,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:284,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:285,1
    - Dst: oidc_util_regexp_first_match
      Src: /src/mod_auth_openidc/test/test_util.c:288,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:289,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:290,1
    - Dst: oidc_util_regexp_first_match
      Src: /src/mod_auth_openidc/test/test_util.c:293,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:294,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:295,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 297
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_regexp_first_match
    - oidc_test_pool_get
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_expr_first_match)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_util.c:302,1
    - Dst: oidc_util_apr_expr_parse
      Src: /src/mod_auth_openidc/test/test_util.c:308,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:309,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:310,1
    - Dst: oidc_util_apr_expr_parse
      Src: /src/mod_auth_openidc/test/test_util.c:318,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:319,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 321
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_apr_expr_parse
    - oidc_test_cmd_get
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_expr_parse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_util.c:327,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:328,1
    - Dst: oidc_util_apr_expr_parse
      Src: /src/mod_auth_openidc/test/test_util.c:333,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:334,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:335,1
    - Dst: oidc_util_apr_expr_exec
      Src: /src/mod_auth_openidc/test/test_util.c:338,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:339,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:340,1
    - Dst: oidc_util_apr_expr_exec
      Src: /src/mod_auth_openidc/test/test_util.c:342,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:343,1
    - Dst: oidc_util_apr_expr_parse
      Src: /src/mod_auth_openidc/test/test_util.c:347,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:348,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 350
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_util_apr_expr_exec
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_util_apr_expr_parse
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_expr_exec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:354,1
    - Dst: apr_temp_dir_get
      Src: /src/mod_auth_openidc/test/test_util.c:360,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:361,1
    - Dst: oidc_util_rand_str
      Src: /src/mod_auth_openidc/test/test_util.c:363,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:365,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:366,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:368,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:369,1
    - Dst: oidc_util_file_read
      Src: /src/mod_auth_openidc/test/test_util.c:372,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:372,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:373,1
    - Dst: oidc_util_file_read
      Src: /src/mod_auth_openidc/test/test_util.c:376,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:377,1
    - Dst: oidc_util_file_read
      Src: /src/mod_auth_openidc/test/test_util.c:379,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:380,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:381,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 383
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_file_write
    - oidc_test_request_get
    - apr_temp_dir_get
    - oidc_util_file_read
    - oidc_util_rand_str
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:388,1
    - Dst: apr_temp_dir_get
      Src: /src/mod_auth_openidc/test/test_util.c:392,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:393,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:394,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:394,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:396,1
    - Dst: unlink
      Src: /src/mod_auth_openidc/test/test_util.c:397,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:398,1
    - Dst: symlink
      Src: /src/mod_auth_openidc/test/test_util.c:398,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:399,1
    - Dst: oidc_util_file_read
      Src: /src/mod_auth_openidc/test/test_util.c:399,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:400,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:401,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:404,1
    - Dst: unlink
      Src: /src/mod_auth_openidc/test/test_util.c:405,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:406,1
    - Dst: symlink
      Src: /src/mod_auth_openidc/test/test_util.c:406,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:408,1
    - Dst: oidc_util_file_read
      Src: /src/mod_auth_openidc/test/test_util.c:408,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:409,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:412,1
    - Dst: unlink
      Src: /src/mod_auth_openidc/test/test_util.c:413,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:414,1
    - Dst: symlink
      Src: /src/mod_auth_openidc/test/test_util.c:414,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:414,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:416,1
    - Dst: oidc_util_file_read
      Src: /src/mod_auth_openidc/test/test_util.c:416,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:417,1
    - Dst: unlink
      Src: /src/mod_auth_openidc/test/test_util.c:419,1
    - Dst: unlink
      Src: /src/mod_auth_openidc/test/test_util.c:420,1
    - Dst: unlink
      Src: /src/mod_auth_openidc/test/test_util.c:421,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/test/test_util.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 423
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_file_write
    - unlink
    - oidc_test_request_get
    - apr_temp_dir_get
    - oidc_util_file_read
    - apr_file_remove
    - symlink
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_file_read_symlink)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:428,1
    - Dst: apr_temp_dir_get
      Src: /src/mod_auth_openidc/test/test_util.c:435,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:436,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:437,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:437,1
    - Dst: open
      Src: /src/mod_auth_openidc/test/test_util.c:439,1
    - Dst: ck_assert_int_ge
      Src: /src/mod_auth_openidc/test/test_util.c:440,1
    - Dst: close
      Src: /src/mod_auth_openidc/test/test_util.c:441,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:443,1
    - Dst: getrlimit
      Src: /src/mod_auth_openidc/test/test_util.c:443,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:446,1
    - Dst: setrlimit
      Src: /src/mod_auth_openidc/test/test_util.c:446,1
    - Dst: oidc_util_file_read
      Src: /src/mod_auth_openidc/test/test_util.c:448,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:451,1
    - Dst: setrlimit
      Src: /src/mod_auth_openidc/test/test_util.c:451,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:453,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:454,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/test/test_util.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 457
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_file_write
    - oidc_test_request_get
    - apr_temp_dir_get
    - close
    - setrlimit
    - oidc_util_file_read
    - apr_file_remove
    - getrlimit
    - open
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_int_ge
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_file_read_open_fails_after_stat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:464,1
    - Dst: apr_temp_dir_get
      Src: /src/mod_auth_openidc/test/test_util.c:472,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:473,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:475,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_util.c:476,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:478,1
    - Dst: apr_file_seek
      Src: /src/mod_auth_openidc/test/test_util.c:478,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:479,1
    - Dst: apr_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:479,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_util.c:480,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:482,1
    - Dst: oidc_util_file_read
      Src: /src/mod_auth_openidc/test/test_util.c:482,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:483,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/test/test_util.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 486
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - apr_file_open
    - oidc_test_request_get
    - apr_temp_dir_get
    - oidc_util_file_read
    - apr_file_seek
    - apr_file_remove
    - apr_file_close
    - apr_file_write
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_file_read_too_large)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:493,1
    - Dst: apr_temp_dir_get
      Src: /src/mod_auth_openidc/test/test_util.c:501,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:504,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:505,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:505,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:506,1
    - Dst: oidc_util_file_read_server
      Src: /src/mod_auth_openidc/test/test_util.c:506,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:507,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/test/test_util.c:508,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:512,1
    - Dst: oidc_util_file_read_server
      Src: /src/mod_auth_openidc/test/test_util.c:513,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:513,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:515,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:519,1
    - Dst: oidc_util_file_read_server
      Src: /src/mod_auth_openidc/test/test_util.c:519,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:520,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:523,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:524,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_util.c:525,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:527,1
    - Dst: apr_file_seek
      Src: /src/mod_auth_openidc/test/test_util.c:527,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:528,1
    - Dst: apr_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:528,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_util.c:529,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:531,1
    - Dst: oidc_util_file_read_server
      Src: /src/mod_auth_openidc/test/test_util.c:531,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:532,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/test/test_util.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 534
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_file_write
    - apr_file_open
    - oidc_test_request_get
    - apr_temp_dir_get
    - apr_file_seek
    - oidc_util_file_read_server
    - apr_file_remove
    - apr_file_close
    - apr_file_write
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_file_read_server)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:539,1
    - Dst: apr_temp_dir_get
      Src: /src/mod_auth_openidc/test/test_util.c:546,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:547,1
    - Dst: apr_dir_remove
      Src: /src/mod_auth_openidc/test/test_util.c:548,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:549,1
    - Dst: apr_dir_make
      Src: /src/mod_auth_openidc/test/test_util.c:549,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:551,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:551,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:555,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_util.c:555,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:556,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:558,1
    - Dst: apr_dir_open
      Src: /src/mod_auth_openidc/test/test_util.c:558,1
    - Dst: apr_dir_read
      Src: /src/mod_auth_openidc/test/test_util.c:559,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_util.c:560,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_util.c:560,1
    - Dst: apr_dir_close
      Src: /src/mod_auth_openidc/test/test_util.c:564,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:565,1
    - Dst: apr_dir_remove
      Src: /src/mod_auth_openidc/test/test_util.c:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 568
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_file_write
    - oidc_test_request_get
    - apr_temp_dir_get
    - apr_dir_make
    - _oidc_strcmp
    - apr_dir_close
    - apr_psprintf
    - apr_dir_open
    - ck_assert_int_eq
    - apr_dir_read
    - apr_dir_remove
    - apr_stat
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_file_write_rename_fails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:575,1
    - Dst: apr_temp_dir_get
      Src: /src/mod_auth_openidc/test/test_util.c:584,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:585,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/test/test_util.c:586,1
    - Dst: signal
      Src: /src/mod_auth_openidc/test/test_util.c:594,1
    - Dst: getrlimit
      Src: /src/mod_auth_openidc/test/test_util.c:595,1
    - Dst: setrlimit
      Src: /src/mod_auth_openidc/test/test_util.c:598,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:600,1
    - Dst: setrlimit
      Src: /src/mod_auth_openidc/test/test_util.c:602,1
    - Dst: signal
      Src: /src/mod_auth_openidc/test/test_util.c:603,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:605,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:606,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:607,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:608,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_util.c:610,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_util.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 611
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_file_write
    - oidc_test_request_get
    - apr_temp_dir_get
    - setrlimit
    - apr_file_remove
    - getrlimit
    - apr_psprintf
    - signal
    - ck_assert_int_eq
    - ck_assert_int_ne
    - apr_stat
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_file_write_hard_failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:615,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:617,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/test/test_util.c:617,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:618,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/test/test_util.c:618,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:619,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/test/test_util.c:619,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:623,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/test/test_util.c:623,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:624,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/test/test_util.c:624,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:628,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/test/test_util.c:628,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:646,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/test/test_util.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 647
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_pool_get
    - oidc_util_html_javascript_escape
    - oidc_util_html_escape
    - ck_assert_str_eq
    - ck_assert_ptr_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_html_escape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:652,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/test/test_util.c:655,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:656,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:657,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:658,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_util.c:658,1
    - Dst: oidc_util_html_content_send
      Src: /src/mod_auth_openidc/test/test_util.c:661,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:662,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:663,1
    - Dst: oidc_util_html_send
      Src: /src/mod_auth_openidc/test/test_util.c:666,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:667,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:668,1
    - Dst: oidc_util_html_send
      Src: /src/mod_auth_openidc/test/test_util.c:671,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:672,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:673,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/test/test_util.c:675,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:676,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:677,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 679
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_util_html_send
    - oidc_util_html_content_send
    - oidc_util_html_send_error
    - ck_assert_msg
    - oidc_request_state_get
    - ck_assert_ptr_null
    - ck_assert_table_str
    - ck_assert_str_eq
    - oidc_util_html_content_prep
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_html_content)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:685,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_util.c:686,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_util.c:686,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:687,1
    - Dst: oidc_util_html_send_in_template
      Src: /src/mod_auth_openidc/test/test_util.c:689,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:691,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:692,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_util.c:692,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:693,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/test/test_util.c:693,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:694,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_util.c:694,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:695,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_util.c:695,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_util.c:695,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:696,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_util.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 697
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - _oidc_strncmp
    - _oidc_strlen
    - oidc_test_request_get
    - _oidc_strstr
    - ck_assert_msg
    - apr_psprintf
    - oidc_request_state_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - getenv
    - oidc_util_html_send_in_template
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_html_template)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:705,1
    - Dst: apr_temp_dir_get
      Src: /src/mod_auth_openidc/test/test_util.c:707,1
    - Dst: oidc_util_html_send_in_template
      Src: /src/mod_auth_openidc/test/test_util.c:711,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:711,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:714,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:715,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:719,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:720,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:720,1
    - Dst: oidc_util_html_send_in_template
      Src: /src/mod_auth_openidc/test/test_util.c:722,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:724,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:725,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_util.c:725,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:729,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:730,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:730,1
    - Dst: oidc_util_html_send_in_template
      Src: /src/mod_auth_openidc/test/test_util.c:732,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:734,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:737,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:738,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/test/test_util.c:738,1
    - Dst: oidc_util_html_send_in_template
      Src: /src/mod_auth_openidc/test/test_util.c:740,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 743
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_file_write
    - oidc_test_request_get
    - apr_temp_dir_get
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_request_state_get
    - oidc_util_html_send_in_template
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_html_template_escape_and_format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:747,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_util.c:749,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:751,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/test/test_util.c:751,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:752,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/test/test_util.c:752,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:753,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/test/test_util.c:753,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:754,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/test/test_util.c:754,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:755,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/test/test_util.c:755,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:758,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/test/test_util.c:758,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:760,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/test/test_util.c:760,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:762,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:763,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/test/test_util.c:763,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:764,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:766,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/test/test_util.c:766,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 769
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_json_decode_object
    - oidc_util_jq_filter
    - apr_table_set
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_jq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:773,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:779,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:783,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/test/test_util.c:783,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:785,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:786,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/test/test_util.c:786,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:787,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:788,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/test/test_util.c:788,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:790,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:791,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/test/test_util.c:791,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:793,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_util.c:795,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:796,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:797,1
    - Dst: oidc_json_array_has_value
      Src: /src/mod_auth_openidc/test/test_util.c:797,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:798,1
    - Dst: oidc_json_array_has_value
      Src: /src/mod_auth_openidc/test/test_util.c:798,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:799,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_util.c:801,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:802,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:803,1
    - Dst: oidc_json_object_get_string_array
      Src: /src/mod_auth_openidc/test/test_util.c:803,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:804,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:805,1
    - Dst: oidc_json_object_get_string_array
      Src: /src/mod_auth_openidc/test/test_util.c:805,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:806,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:807,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:808,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_util.c:810,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:811,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:812,1
    - Dst: oidc_json_object_get_int
      Src: /src/mod_auth_openidc/test/test_util.c:812,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:813,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:814,1
    - Dst: oidc_json_object_get_int
      Src: /src/mod_auth_openidc/test/test_util.c:814,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:815,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:816,1
    - Dst: oidc_json_object_get_bool
      Src: /src/mod_auth_openidc/test/test_util.c:816,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:817,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:818,1
    - Dst: oidc_json_object_get_bool
      Src: /src/mod_auth_openidc/test/test_util.c:818,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:819,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:820,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_util.c:822,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:823,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_util.c:824,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:825,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:826,1
    - Dst: oidc_json_merge
      Src: /src/mod_auth_openidc/test/test_util.c:826,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:827,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:828,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:829,1
    - Dst: oidc_json_object_get_bool
      Src: /src/mod_auth_openidc/test/test_util.c:829,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:830,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:831,1
    - Dst: oidc_json_object_get_bool
      Src: /src/mod_auth_openidc/test/test_util.c:831,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:832,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:833,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 835
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_json_object_get_int
    - ck_assert_int_eq
    - oidc_json_object_get_bool
    - json_loads
    - oidc_test_pool_get
    - oidc_json_merge
    - oidc_json_array_has_value
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_json_object_get_string_array
    - oidc_json_decode_and_check_error
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:839,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:845,1
    - Dst: oidc_crypto_passphrase_derive_keys
      Src: /src/mod_auth_openidc/test/test_util.c:845,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:852,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_util.c:852,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:853,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/test/test_util.c:853,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:854,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:856,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:857,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_util.c:857,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:858,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/test/test_util.c:858,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:859,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:862,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:863,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_util.c:863,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:864,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:865,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/test/test_util.c:865,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:867,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:870,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_util.c:870,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:871,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:872,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/test/test_util.c:872,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:874,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:877,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_util.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 878
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_util_jwt_create
    - apr_table_set
    - ck_assert_msg
    - ck_assert_str_eq
    - oidc_crypto_passphrase_derive_keys
    - oidc_util_jwt_verify
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_jwt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:883,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:891,1
    - Dst: oidc_crypto_passphrase_derive_keys
      Src: /src/mod_auth_openidc/test/test_util.c:891,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:892,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_util.c:892,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:893,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_util.c:893,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:894,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:899,1
    - Dst: oidc_crypto_passphrase_derive_keys
      Src: /src/mod_auth_openidc/test/test_util.c:899,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:900,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/test/test_util.c:900,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:901,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:905,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_util.c:905,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:907,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_util.c:907,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:908,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:910,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/test/test_util.c:910,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:911,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:916,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/test/test_util.c:916,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 918
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_proto_jwt_header_peek
    - oidc_util_jwt_create
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_crypto_passphrase_derive_keys
    - oidc_util_jwt_verify
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_jwt_passphrase_rotation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:926,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:933,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_util.c:933,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:937,1
    - Dst: oidc_crypto_passphrase_derive_keys
      Src: /src/mod_auth_openidc/test/test_util.c:937,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:938,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_util.c:938,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:939,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/test/test_util.c:939,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:940,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:947,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/test/test_util.c:947,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 949
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_util_jwt_create
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_crypto_passphrase_derive_keys
    - oidc_util_jwt_verify
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_jwt_without_derived_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:957,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:964,1
    - Dst: oidc_crypto_passphrase_derive_keys
      Src: /src/mod_auth_openidc/test/test_util.c:964,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_util.c:967,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/test/test_util.c:968,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:971,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:972,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 974
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_util_jwt_create
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_crypto_passphrase_derive_keys
    - oidc_util_jwt_verify
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_jwt_without_subprocess_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:979,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:983,1
    - Dst: oidc_crypto_passphrase_derive_keys
      Src: /src/mod_auth_openidc/test/test_util.c:983,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:986,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_util.c:990,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:991,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_util.c:991,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:992,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/test/test_util.c:992,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:994,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 998
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_util_jwt_create
    - apr_table_set
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_crypto_passphrase_derive_keys
    - oidc_util_jwt_verify
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_jwt_payload_that_looks_compressed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1002,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:1003,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1014,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_util.c:1014,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1015,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1017,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_util.c:1017,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1019,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1021,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_util.c:1021,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1023,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1024,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_util.c:1025,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1027,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_util.c:1027,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1029,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1030,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_util.c:1031,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1033,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_util.c:1033,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1035,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1036,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/test/test_util.c:1038,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1039,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1040,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1040,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/test_util.c:1042,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1043,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_util.c:1043,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1045,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1046,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/test/test_util.c:1049,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1050,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1051,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1051,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/test/test_util.c:1053,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1054,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1054,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1055,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_util.c:1055,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1056,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_util.c:1056,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/test/test_util.c:1058,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1059,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_util.c:1059,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1061,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1062,1
    - Dst: oidc_util_key_sets_merge
      Src: /src/mod_auth_openidc/test/test_util.c:1064,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1065,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1066,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1066,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1067,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_util.c:1067,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1068,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_util.c:1068,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1069,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_util.c:1069,1
    - Dst: oidc_util_key_sets_hash_merge
      Src: /src/mod_auth_openidc/test/test_util.c:1071,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1072,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1073,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1073,1
    - Dst: oidc_util_key_sets_hash_merge
      Src: /src/mod_auth_openidc/test/test_util.c:1076,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1077,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1078,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1079,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1079,1
    - Dst: oidc_util_key_sets_hash_merge
      Src: /src/mod_auth_openidc/test/test_util.c:1082,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1083,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1084,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1084,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1086,1
    - Dst: oidc_util_key_list_first
      Src: /src/mod_auth_openidc/test/test_util.c:1086,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1087,1
    - Dst: oidc_util_key_list_first
      Src: /src/mod_auth_openidc/test/test_util.c:1087,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1088,1
    - Dst: oidc_util_key_list_first
      Src: /src/mod_auth_openidc/test/test_util.c:1088,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_util.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1091
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_array_make
    - oidc_jwk_list_destroy_hash
    - apr_hash_get
    - oidc_util_key_list_first
    - apr_hash_count
    - oidc_test_pool_get
    - oidc_util_key_sets_merge
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_ptr_eq
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_jwk_destroy
    - oidc_util_key_symmetric_merge
    - oidc_util_key_sets_hash_merge
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1095,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:1096,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_util.c:1097,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_util.c:1098,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1103,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_util.c:1103,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1104,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_util.c:1104,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1105,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1106,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_util.c:1109,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_util.c:1110,1
    - Dst: oidc_util_key_sets_hash_merge
      Src: /src/mod_auth_openidc/test/test_util.c:1117,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1118,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1118,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1119,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_util.c:1119,1
    - Dst: oidc_util_key_sets_hash_merge
      Src: /src/mod_auth_openidc/test/test_util.c:1121,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1122,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1122,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1123,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test_util.c:1123,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_util.c:1125,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_util.c:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1127
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_hash_set
    - apr_hash_make
    - ck_assert
    - apr_hash_get
    - apr_hash_count
    - oidc_test_pool_get
    - ck_assert_int_eq
    - oidc_jwk_destroy
    - ck_assert_ptr_eq
    - oidc_util_key_sets_hash_merge
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_key_sets_hash_merge_precedence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1131,1
    - Dst: oidc_util_rand_int
      Src: /src/mod_auth_openidc/test/test_util.c:1135,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1136,1
    - Dst: oidc_util_rand_int
      Src: /src/mod_auth_openidc/test/test_util.c:1137,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1138,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1140,1
    - Dst: oidc_util_rand_str
      Src: /src/mod_auth_openidc/test/test_util.c:1140,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1141,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_util.c:1141,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1142,1
    - Dst: oidc_util_rand_str
      Src: /src/mod_auth_openidc/test/test_util.c:1142,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1143,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_util.c:1143,1
    - Dst: oidc_util_rand_hex_str
      Src: /src/mod_auth_openidc/test/test_util.c:1145,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1146,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1147,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_util.c:1147,1
    - Dst: oidc_util_rand_hex_str
      Src: /src/mod_auth_openidc/test/test_util.c:1148,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1149,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1150,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_util.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1151
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_util_rand_int
    - oidc_util_rand_str
    - ck_assert_msg
    - oidc_util_rand_hex_str
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_random)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1155,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_util.c:1158,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1160,1
    - Dst: oidc_util_url_cur_host
      Src: /src/mod_auth_openidc/test/test_util.c:1160,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1162,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1162,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1163,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1164,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1164,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1165,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1165,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1167,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1168,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1168,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1171,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1172,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1172,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1173,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1173,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1175,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1175,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1178,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1179,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1179,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1180,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1180,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1182,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1182,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1184,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1185,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1188,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1189,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1190,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1193,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1194,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1195,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:1198,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:1199,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1200,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1200,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1203,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1204,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1205,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1205,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1208,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1210,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1210,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1213,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1214,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1214,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1217,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1218,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1218,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:1221,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:1222,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1224,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1225,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1225,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1228,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1229,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1229,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1232,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1233,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1233,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1236,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1237,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1237,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1240,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1241,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1241,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_util.c:1244,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1246,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1246,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1248,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1252,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/test_util.c:1252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1253
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_util_url_cur_host
    - apr_pstrcat
    - apr_table_set
    - ck_assert_str_eq
    - oidc_util_url_cur
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1257,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1258,1
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/test/test_util.c:1258,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_util.c:1258,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1259,1
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/test/test_util.c:1259,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_util.c:1259,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1261,1
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/test/test_util.c:1261,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_util.c:1261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1262
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_util_url_abs
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_url_abs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1266,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_util.c:1267,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1269,1
    - Dst: oidc_util_url_cur_matches
      Src: /src/mod_auth_openidc/test/test_util.c:1269,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1270,1
    - Dst: oidc_util_url_cur_matches
      Src: /src/mod_auth_openidc/test/test_util.c:1270,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1271,1
    - Dst: oidc_util_url_cur_matches
      Src: /src/mod_auth_openidc/test/test_util.c:1271,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1272,1
    - Dst: oidc_util_url_cur_matches
      Src: /src/mod_auth_openidc/test/test_util.c:1272,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1274,1
    - Dst: oidc_util_url_cur_matches
      Src: /src/mod_auth_openidc/test/test_util.c:1274,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1275,1
    - Dst: oidc_util_url_matches_redirect_uri
      Src: /src/mod_auth_openidc/test/test_util.c:1275,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/test/test_util.c:1276,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1277,1
    - Dst: oidc_util_url_matches_redirect_uri
      Src: /src/mod_auth_openidc/test/test_util.c:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1278
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_util_url_matches_redirect_uri
    - ck_assert_msg
    - oidc_util_url_cur_matches
    - apr_uri_parse
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_url_matches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_strnenvcmp
      Src: /src/mod_auth_openidc/test/test_util.c:1284,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1285,1
    - Dst: oidc_util_strnenvcmp
      Src: /src/mod_auth_openidc/test/test_util.c:1287,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1288,1
    - Dst: oidc_util_strcasestr
      Src: /src/mod_auth_openidc/test/test_util.c:1290,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1291,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1292,1
    - Dst: oidc_util_strcasestr
      Src: /src/mod_auth_openidc/test/test_util.c:1292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1293
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_util_strnenvcmp
    - oidc_util_strcasestr
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_strenv_and_casestr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:1297,1
    - Dst: oidc_util_spaced_string_to_hashtable
      Src: /src/mod_auth_openidc/test/test_util.c:1300,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1301,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1302,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1302,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1304,1
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/test/test_util.c:1304,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1306,1
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/test/test_util.c:1306,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1309,1
    - Dst: oidc_util_spaced_string_equals
      Src: /src/mod_auth_openidc/test/test_util.c:1309,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1311,1
    - Dst: oidc_util_spaced_string_equals
      Src: /src/mod_auth_openidc/test/test_util.c:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1313
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - apr_hash_count
    - oidc_test_pool_get
    - oidc_util_spaced_string_contains
    - oidc_util_spaced_string_equals
    - ck_assert_msg
    - ck_assert_int_eq
    - oidc_util_spaced_string_to_hashtable
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_spaced_string_helpers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1317,1
    - Dst: oidc_util_hex_encode
      Src: /src/mod_auth_openidc/test/test_util.c:1322,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1323,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1324,1
    - Dst: oidc_util_hex_encode
      Src: /src/mod_auth_openidc/test/test_util.c:1327,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1328,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1329,1
    - Dst: oidc_util_hex_encode
      Src: /src/mod_auth_openidc/test/test_util.c:1333,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1334,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1337,1
    - Dst: oidc_util_hash_string_and_base64url_encode
      Src: /src/mod_auth_openidc/test/test_util.c:1337,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1340
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_hex_encode
    - oidc_test_request_get
    - oidc_util_hash_string_and_base64url_encode
    - ck_assert_msg
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_hex_and_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1344,1
    - Dst: oidc_util_cookie_domain_valid
      Src: /src/mod_auth_openidc/test/test_util.c:1344,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1346,1
    - Dst: oidc_util_cookie_domain_valid
      Src: /src/mod_auth_openidc/test/test_util.c:1346,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1349,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/test_util.c:1349,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1351,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/test_util.c:1351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1353
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_issuer_match
    - ck_assert_msg
    - oidc_util_cookie_domain_valid
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_cookie_domain_and_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:1357,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_util.c:1358,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test_util.c:1359,1
    - Dst: oidc_util_table_add_query_encoded_params
      Src: /src/mod_auth_openidc/test/test_util.c:1361,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:1362,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:1364,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:1365,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_util.c:1367,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test_util.c:1368,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1369,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1369,1
    - Dst: oidc_util_apr_hash_clear
      Src: /src/mod_auth_openidc/test/test_util.c:1370,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1371,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/test/test_util.c:1371,1
    - Dst: oidc_util_openssl_version
      Src: /src/mod_auth_openidc/test/test_util.c:1373,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1374,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_util.c:1375,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_util.c:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1376
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_hash_set
    - apr_hash_make
    - oidc_util_openssl_version
    - ck_assert_ptr_nonnull
    - ck_assert_int_gt
    - apr_hash_count
    - oidc_test_pool_get
    - apr_table_make
    - oidc_util_apr_hash_clear
    - ck_assert_table_str
    - ck_assert_int_eq
    - oidc_util_table_add_query_encoded_params
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_table_and_hash_clear_and_openssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1380,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_util.c:1381,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1384,1
    - Dst: oidc_util_log_mask_secrets
      Src: /src/mod_auth_openidc/test/test_util.c:1384,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1387,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/test/test_util.c:1387,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1390,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/test/test_util.c:1390,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1391,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/test/test_util.c:1391,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1392,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/test/test_util.c:1392,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1395,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/test/test_util.c:1395,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1396,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/test/test_util.c:1396,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1399,1
    - Dst: oidc_cmd_debug_mask_secrets_set
      Src: /src/mod_auth_openidc/test/test_util.c:1399,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1400,1
    - Dst: oidc_util_log_mask_secrets
      Src: /src/mod_auth_openidc/test/test_util.c:1400,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1401,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/test/test_util.c:1401,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1402,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/test/test_util.c:1402,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1404,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/test/test_util.c:1404,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1407,1
    - Dst: oidc_cmd_debug_mask_secrets_set
      Src: /src/mod_auth_openidc/test/test_util.c:1407,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1408,1
    - Dst: oidc_util_log_mask_secrets
      Src: /src/mod_auth_openidc/test/test_util.c:1408,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1409,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/test/test_util.c:1409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1377
    functionDepth: 2
    functionLinenumber: 1377
    functionLinenumberEnd: 1410
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_mask_value
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_util_log_mask_secrets
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cmd_debug_mask_secrets_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_mask_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1417,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1417,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1417,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1418,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1418,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1418,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1421,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1421,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1421,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1424,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1424,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1425,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1425,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1426,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1426,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1427,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1427,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1430,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1430,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1431,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1431,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1432,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1432,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1435,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1435,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1436,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1436,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1439,1
    - Dst: oidc_util_apr_time_add
      Src: /src/mod_auth_openidc/test/test_util.c:1439,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1440,1
    - Dst: oidc_util_apr_time_add
      Src: /src/mod_auth_openidc/test/test_util.c:1440,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1441,1
    - Dst: oidc_util_apr_time_add
      Src: /src/mod_auth_openidc/test/test_util.c:1441,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1442,1
    - Dst: oidc_util_apr_time_add
      Src: /src/mod_auth_openidc/test/test_util.c:1442,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1443,1
    - Dst: oidc_util_apr_time_add
      Src: /src/mod_auth_openidc/test/test_util.c:1443,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1444,1
    - Dst: oidc_util_apr_time_add
      Src: /src/mod_auth_openidc/test/test_util.c:1444,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_util.c:1444,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_util.c:1444,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1447,1
    - Dst: oidc_util_apr_time_add
      Src: /src/mod_auth_openidc/test/test_util.c:1447,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_util.c:1448,1
    - Dst: oidc_util_apr_time_add
      Src: /src/mod_auth_openidc/test/test_util.c:1448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1449
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_util_apr_time_add
    - ck_assert
    - apr_time_now
    - oidc_util_apr_time_from_sec
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_apr_time_saturating)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:1455,1
    - Dst: oidc_pcre_compile
      Src: /src/mod_auth_openidc/test/test_util.c:1462,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1463,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_util.c:1464,1
    - Dst: oidc_pcre_exec
      Src: /src/mod_auth_openidc/test/test_util.c:1464,1
    - Dst: ck_assert_int_lt
      Src: /src/mod_auth_openidc/test/test_util.c:1479,1
    - Dst: oidc_pcre_get_substring
      Src: /src/mod_auth_openidc/test/test_util.c:1479,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1480,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1481,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1482,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_util.c:1482,1
    - Dst: oidc_pcre_free_match
      Src: /src/mod_auth_openidc/test/test_util.c:1486,1
    - Dst: oidc_pcre_free
      Src: /src/mod_auth_openidc/test/test_util.c:1487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1454
    functionDepth: 1
    functionLinenumber: 1454
    functionLinenumberEnd: 1488
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_pcre_exec
    - oidc_pcre_get_substring
    - ck_assert_int_gt
    - oidc_pcre_free_match
    - oidc_pcre_free
    - oidc_test_pool_get
    - oidc_pcre_compile
    - ck_assert_msg
    - ck_assert_ptr_null
    - _oidc_strstr
    - ck_assert_int_lt
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_util_pcre_get_substring_error_arms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:1499,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1505,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/test_util.c:1505,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1508,1
    - Dst: oidc_pcre_compile
      Src: /src/mod_auth_openidc/test/test_util.c:1508,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_util.c:1512,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1514,1
    - Dst: oidc_pcre_compile
      Src: /src/mod_auth_openidc/test/test_util.c:1514,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_util.c:1515,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1516,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1522,1
    - Dst: oidc_pcre_compile
      Src: /src/mod_auth_openidc/test/test_util.c:1522,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1523,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1524,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_util.c:1524,1
    - Dst: oidc_pcre_compile
      Src: /src/mod_auth_openidc/test/test_util.c:1528,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1529,1
    - Dst: oidc_pcre_free
      Src: /src/mod_auth_openidc/test/test_util.c:1530,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/test_util.c:1532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1533
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - apr_pool_create
    - oidc_pcre_free
    - oidc_test_pool_get
    - oidc_pcre_compile
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_pool_destroy
    - apr_palloc
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_util_pcre_compile_failure_allocates_nothing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1537,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_util.c:1538,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1541,1
    - Dst: oidc_util_read_form_encoded_params
      Src: /src/mod_auth_openidc/test/test_util.c:1541,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:1544,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:1545,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:1546,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_util.c:1550,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1551,1
    - Dst: oidc_util_read_form_encoded_params_reject_dup
      Src: /src/mod_auth_openidc/test/test_util.c:1551,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_util.c:1552,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_util.c:1556,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1557,1
    - Dst: oidc_util_read_form_encoded_params_reject_dup
      Src: /src/mod_auth_openidc/test/test_util.c:1557,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_util.c:1559,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1560,1
    - Dst: oidc_util_read_form_encoded_params_reject_dup
      Src: /src/mod_auth_openidc/test/test_util.c:1560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1534
    functionDepth: 1
    functionLinenumber: 1534
    functionLinenumberEnd: 1561
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_table_make
    - oidc_util_read_form_encoded_params_reject_dup
    - ck_assert_msg
    - ck_assert_table_str
    - ck_assert_int_eq
    - oidc_util_read_form_encoded_params
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_read_form_encoded_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1565,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_util.c:1566,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1569,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1570,1
    - Dst: oidc_util_read_post_params
      Src: /src/mod_auth_openidc/test/test_util.c:1570,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1574,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1575,1
    - Dst: oidc_util_read_post_params
      Src: /src/mod_auth_openidc/test/test_util.c:1575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1562
    functionDepth: 1
    functionLinenumber: 1562
    functionLinenumberEnd: 1577
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_table_make
    - apr_table_set
    - ck_assert_msg
    - oidc_util_read_post_params
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_read_post_params_wrong_content_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1581,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_util.c:1582,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1585,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1589,1
    - Dst: oidc_util_read_post_params
      Src: /src/mod_auth_openidc/test/test_util.c:1589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1578
    functionDepth: 1
    functionLinenumber: 1578
    functionLinenumberEnd: 1591
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_table_make
    - apr_table_set
    - ck_assert_msg
    - oidc_util_read_post_params
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_read_post_params_oversized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1595,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_util.c:1596,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_util.c:1599,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_util.c:1601,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_util.c:1602,1
    - Dst: oidc_util_read_post_params
      Src: /src/mod_auth_openidc/test/test_util.c:1604,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1605,1
    - Dst: apr_pool_userdata_get
      Src: /src/mod_auth_openidc/test/test_util.c:1608,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1609,1
    - Dst: oidc_util_read_post_params
      Src: /src/mod_auth_openidc/test/test_util.c:1611,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1592
    functionDepth: 1
    functionLinenumber: 1592
    functionLinenumberEnd: 1613
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - _oidc_strlen
    - oidc_test_request_get
    - apr_table_make
    - apr_table_set
    - apr_pool_userdata_get
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_util_read_post_params
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_read_post_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1617,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_util.c:1618,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1622,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/test/test_util.c:1622,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1624,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/test/test_util.c:1624,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1626,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1629,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/test/test_util.c:1629,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1630,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/test/test_util.c:1630,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1631,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/test/test_util.c:1631,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1633,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/test/test_util.c:1633,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1636,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/test/test_util.c:1636,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1637,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1638,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1641,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/test/test_util.c:1641,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1642,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1643,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1646,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/test/test_util.c:1646,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1647,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1650,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/test/test_util.c:1650,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1656,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/test/test_util.c:1656,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1659,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/test/test_util.c:1659,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1661,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/test/test_util.c:1661,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1665,1
    - Dst: oidc_util_url_cur_is_secure
      Src: /src/mod_auth_openidc/test/test_util.c:1665,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1667,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/test/test_util.c:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1614
    functionDepth: 1
    functionLinenumber: 1614
    functionLinenumberEnd: 1668
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_util_url_cur_is_secure
    - oidc_test_cfg_get
    - oidc_util_url_parameter_get
    - oidc_util_url_has_parameter
    - oidc_util_url_redirect_uri
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_url_parameter_helpers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1677,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1681,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_util.c:1681,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:1684,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_util.c:1686,1
    - Dst: memset
      Src: /src/mod_auth_openidc/test/test_util.c:1687,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1689,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_util.c:1689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1669
    functionDepth: 1
    functionLinenumber: 1669
    functionLinenumberEnd: 1690
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decode_object
    - oidc_test_pool_get
    - ck_assert_int_eq
    - memset
    - apr_palloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_legacy_json_decode_object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_util.c:1694,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1695,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1701,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/test/test_util.c:1701,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/test/test_util.c:1704,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1705,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1706,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/test/test_util.c:1710,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1711,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1713,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_util.c:1713,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1715,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/test/test_util.c:1719,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1720,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/test/test_util.c:1724,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1725,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/test/test_util.c:1729,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1730,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/test/test_util.c:1733,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1734,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1735,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_util.c:1736,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1740,1
    - Dst: oidc_json_decode_object_err
      Src: /src/mod_auth_openidc/test/test_util.c:1740,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1741,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1745,1
    - Dst: oidc_json_decode_object_err
      Src: /src/mod_auth_openidc/test/test_util.c:1745,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1747,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1752,1
    - Dst: oidc_json_decode_object_err
      Src: /src/mod_auth_openidc/test/test_util.c:1752,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1691
    functionDepth: 1
    functionLinenumber: 1691
    functionLinenumberEnd: 1755
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_json_decode_object
    - oidc_json_encode
    - oidc_test_pool_get
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_json_decode_object_err
    - ck_assert_str_eq
    - oidc_json_object_get_string
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_json_string_and_encode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_strnenvcmp
      Src: /src/mod_auth_openidc/test/test_util.c:1762,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1763,1
    - Dst: oidc_util_strnenvcmp
      Src: /src/mod_auth_openidc/test/test_util.c:1765,1
    - Dst: ck_assert_int_lt
      Src: /src/mod_auth_openidc/test/test_util.c:1766,1
    - Dst: oidc_util_strnenvcmp
      Src: /src/mod_auth_openidc/test/test_util.c:1769,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1770,1
    - Dst: oidc_util_strnenvcmp
      Src: /src/mod_auth_openidc/test/test_util.c:1773,1
    - Dst: ck_assert_int_lt
      Src: /src/mod_auth_openidc/test/test_util.c:1774,1
    - Dst: oidc_util_strnenvcmp
      Src: /src/mod_auth_openidc/test/test_util.c:1775,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_util.c:1776,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1779,1
    - Dst: oidc_util_strcasestr
      Src: /src/mod_auth_openidc/test/test_util.c:1779,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_util.c:1780,1
    - Dst: oidc_util_strcasestr
      Src: /src/mod_auth_openidc/test/test_util.c:1780,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_util.c:1784,1
    - Dst: oidc_util_strcasestr
      Src: /src/mod_auth_openidc/test/test_util.c:1784,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1787,1
    - Dst: oidc_util_strcasestr
      Src: /src/mod_auth_openidc/test/test_util.c:1787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1756
    functionDepth: 1
    functionLinenumber: 1756
    functionLinenumberEnd: 1788
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - ck_assert_int_gt
    - ck_assert_ptr_nonnull
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_util_strnenvcmp
    - oidc_util_strcasestr
    - ck_assert_int_lt
    - ck_assert_ptr_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_strenv_length_and_casestr_edge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1793,1
    - Dst: oidc_util_cookie_domain_valid
      Src: /src/mod_auth_openidc/test/test_util.c:1793,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1796,1
    - Dst: oidc_util_cookie_domain_valid
      Src: /src/mod_auth_openidc/test/test_util.c:1796,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1799,1
    - Dst: oidc_util_cookie_domain_valid
      Src: /src/mod_auth_openidc/test/test_util.c:1799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1789
    functionDepth: 1
    functionLinenumber: 1789
    functionLinenumberEnd: 1801
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - oidc_util_cookie_domain_valid
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_cookie_domain_dot_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1806,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/test_util.c:1806,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1808,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/test_util.c:1808,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1811,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/test_util.c:1811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1802
    functionDepth: 1
    functionLinenumber: 1802
    functionLinenumberEnd: 1813
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - oidc_util_issuer_match
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_issuer_match_trailing_slash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1818,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/test_util.c:1818,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1826,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/test_util.c:1826,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1827,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/test_util.c:1827,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1830,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/test_util.c:1830,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1831,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/test_util.c:1831,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1832,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/test_util.c:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1834
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - oidc_util_issuer_match
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_issuer_match_empty_and_null)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_util.c:1838,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_util.c:1839,1
    - Dst: oidc_cmd_trace_parent_set
      Src: /src/mod_auth_openidc/test/test_util.c:1841,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_util.c:1841,1
    - Dst: oidc_cmd_metrics_hook_data_set
      Src: /src/mod_auth_openidc/test/test_util.c:1842,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_util.c:1842,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/test/test_util.c:1844,1
    - Dst: oidc_util_set_trace_parent
      Src: /src/mod_auth_openidc/test/test_util.c:1845,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_util.c:1847,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_util.c:1848,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_util.c:1849,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1850,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_util.c:1851,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/test/test_util.c:1851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1835
    functionDepth: 2
    functionLinenumber: 1835
    functionLinenumberEnd: 1853
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - _oidc_strncmp
    - _oidc_strlen
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cmd_trace_parent_set
    - ck_assert_msg
    - oidc_cmd_metrics_hook_data_set
    - apr_table_get
    - oidc_util_set_trace_parent
    - oidc_request_state_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_util_set_trace_parent_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_util.c:1858,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1860,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1861,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1863,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1864,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1865,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1866,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1868,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1869,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1870,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1871,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1872,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1874,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1875,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1876,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1877,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1878,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1879,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1880,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1882,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1883,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1884,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1885,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1886,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1887,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1888,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1889,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1890,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1891,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1893,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1894,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1895,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1896,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1897,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1898,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1899,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1901,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1902,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1903,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1904,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1906,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1907,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1908,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1909,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1910,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1912,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1913,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1914,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1915,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1916,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1917,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1918,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1919,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1921,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1922,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1923,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1924,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1925,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1927,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1928,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1929,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1930,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1932,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1933,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1934,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1935,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1936,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1937,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1939,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1940,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1941,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1942,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1943,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1944,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1945,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1946,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1947,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1948,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1949,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1950,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1951,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1952,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1953,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1954,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1955,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1956,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1958,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1960,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1961,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1963,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1964,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1965,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1966,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_util.c:1968,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_util.c:1969,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_util.c:1970,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_util.c:1971,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_util.c:1973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 98
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1854
    functionDepth: 1
    functionLinenumber: 1854
    functionLinenumberEnd: 1974
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_util.c
    functionUses: 0
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_add_checked_fixture
    - suite_add_tcase
    - tcase_add_test
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:74,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cache.c:75,1
    - Dst: oidc_cache_mutex_create
      Src: /src/mod_auth_openidc/test/test_cache.c:78,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:79,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:81,1
    - Dst: oidc_cache_mutex_post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:81,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:83,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/test/test_cache.c:83,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:84,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/test/test_cache.c:84,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:86,1
    - Dst: oidc_cache_mutex_destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:86,1
    - Dst: oidc_cache_status2str
      Src: /src/mod_auth_openidc/test/test_cache.c:89,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:90,1
    - Dst: ck_assert_int_ge
      Src: /src/mod_auth_openidc/test/test_cache.c:91,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_cache.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 92
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_cache_status2str
    - oidc_cache_mutex_unlock
    - oidc_test_request_get
    - _oidc_strlen
    - oidc_cache_mutex_create
    - oidc_test_pool_get
    - oidc_cache_mutex_post_config
    - oidc_cache_mutex_lock
    - ck_assert_int_eq
    - oidc_cache_mutex_destroy
    - ck_assert_int_ge
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cache_mutex_and_status2str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:96,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:101,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:104,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:104,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:105,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:105,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:106,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:106,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:107,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:108,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:111,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:111,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:112,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:112,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:116,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:116,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:117,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 121
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - apr_table_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_set_get_encrypted_and_expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:125,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:127,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:127,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:130,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_cache.c:134,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:140,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:140,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:141,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:141,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:142,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:143,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:146,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:147,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:147,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:149,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:149,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:150,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:151,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:153,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 157
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - apr_table_set
    - apr_pcalloc
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_long_key_and_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:161,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cache.c:162,1
    - Dst: oidc_cache_mutex_create
      Src: /src/mod_auth_openidc/test/test_cache.c:165,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:166,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:169,1
    - Dst: oidc_cache_mutex_post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:169,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:172,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/test/test_cache.c:172,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:173,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/test/test_cache.c:173,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/test_cache.c:177,1
    - Dst: oidc_cache_mutex_child_init
      Src: /src/mod_auth_openidc/test/test_cache.c:178,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:180,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:181,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:184,1
    - Dst: oidc_cache_mutex_destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 185
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_cache_mutex_unlock
    - oidc_test_request_get
    - apr_pool_create
    - oidc_cache_mutex_create
    - oidc_test_pool_get
    - oidc_cache_mutex_child_init
    - oidc_cache_mutex_post_config
    - oidc_cache_mutex_lock
    - ck_assert_int_eq
    - apr_pool_destroy
    - oidc_cache_mutex_destroy
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_mutex_global_and_child_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:189,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:191,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:191,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:194,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cache.c:195,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:200,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:200,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:203,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:203,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:208,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 212
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_time_now
    - ck_assert_int_eq
    - oidc_cache_get
    - oidc_cfg_crypto_passphrase_secret1_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_encrypt_no_secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_cache.c:216,1
    - Dst: oidc_cache_status2str
      Src: /src/mod_auth_openidc/test/test_cache.c:217,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:218,1
    - Dst: ck_assert_int_ge
      Src: /src/mod_auth_openidc/test/test_cache.c:219,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_cache.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 220
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_cache_status2str
    - _oidc_strlen
    - oidc_test_pool_get
    - ck_assert_int_ge
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_status2str_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:224,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:226,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:226,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:229,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cache.c:230,1
    - Dst: oidc_cfg_crypto_passphrase_secret2_get
      Src: /src/mod_auth_openidc/test/test_cache.c:231,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:237,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:241,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:244,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:244,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:249,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:253,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:253,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:254,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:255,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:260,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 263
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - oidc_cfg_crypto_passphrase_secret2_get
    - apr_table_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_test_crypto_passphrase_rederive
    - oidc_cache_get
    - oidc_cfg_crypto_passphrase_secret1_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_second_passphrase_retry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:269,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:270,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:272,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:272,1
    - Dst: oidc_cfg_cache_shm_size_max_get
      Src: /src/mod_auth_openidc/test/test_cache.c:273,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:278,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:279,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:279,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:284,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:285,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:285,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:287,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:288,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:291,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:292,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:292,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:295,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:296,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:296,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:298,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:301,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:302,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:302,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:305,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:306,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:306,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:308,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:311,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 312
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_cache_shm_size_max_get
    - apr_time_now
    - ck_assert_ptr_nonnull
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_shm_eviction_and_delete)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:317,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:318,1
    - Dst: oidc_cfg_cache_shm_size_max_get
      Src: /src/mod_auth_openidc/test/test_cache.c:319,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:321,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:321,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:322,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:322,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:327,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:329,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:329,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:330,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:334,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:334,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:339,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:340,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:340,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:345,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:346,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:347,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:347,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:351,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:353,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:355,1
    - Dst: oidc_cache_shm_validate
      Src: /src/mod_auth_openidc/test/test_cache.c:355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 357
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_cache_shm_size_max_get
    - apr_time_now
    - oidc_cache_shm_validate
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_shm_churn_never_crosses_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:361,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:363,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:363,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:366,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_cache.c:372,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_cache.c:375,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:381,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:381,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:384,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 388
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_time_now
    - apr_pcalloc
    - ck_assert_int_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_shm_get_key_bounds_negative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_uint_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:396,1
    - Dst: oidc_cache_shm_siphash
      Src: /src/mod_auth_openidc/test/test_cache.c:396,1
    - Dst: ck_assert_uint_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:397,1
    - Dst: oidc_cache_shm_siphash
      Src: /src/mod_auth_openidc/test/test_cache.c:397,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:400,1
    - Dst: oidc_cache_shm_segment_size
      Src: /src/mod_auth_openidc/test/test_cache.c:400,1
    - Dst: ck_assert_uint_gt
      Src: /src/mod_auth_openidc/test/test_cache.c:401,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:402,1
    - Dst: oidc_cache_shm_segment_size
      Src: /src/mod_auth_openidc/test/test_cache.c:402,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:403,1
    - Dst: oidc_cache_shm_segment_size
      Src: /src/mod_auth_openidc/test/test_cache.c:403,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:404,1
    - Dst: oidc_cache_shm_segment_size
      Src: /src/mod_auth_openidc/test/test_cache.c:404,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:406,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:407,1
    - Dst: oidc_cache_shm_value_size_max
      Src: /src/mod_auth_openidc/test/test_cache.c:410,1
    - Dst: oidc_cfg_cache_shm_entry_size_max_get
      Src: /src/mod_auth_openidc/test/test_cache.c:410,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test_cache.c:411,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_cache.c:412,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:415,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:416,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:416,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:416,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:419,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:419,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:420,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 423
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - ck_assert_uint_eq
    - _oidc_memset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_time_now
    - oidc_cache_shm_segment_size
    - ck_assert_uint_gt
    - oidc_cache_shm_siphash
    - oidc_cache_shm_value_size_max
    - oidc_cfg_cache_shm_entry_size_max_get
    - ck_assert_int_eq
    - apr_palloc
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_shm_hash_size_and_value_boundaries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:427,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:428,1
    - Dst: oidc_cfg_cache_shm_size_max_get
      Src: /src/mod_auth_openidc/test/test_cache.c:430,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:431,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:431,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:435,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:435,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:435,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:436,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:438,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:438,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:441,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:442,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:442,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:443,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:444,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:444,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:447,1
    - Dst: oidc_cache_shm_validate
      Src: /src/mod_auth_openidc/test/test_cache.c:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 450
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_cache_shm_size_max_get
    - apr_time_now
    - ck_assert_ptr_nonnull
    - oidc_cache_shm_validate
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_shm_delete_missing_from_full_cache_is_noop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:454,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:455,1
    - Dst: oidc_cfg_cache_shm_size_max_get
      Src: /src/mod_auth_openidc/test/test_cache.c:457,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:458,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:458,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:459,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:459,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:463,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:463,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:463,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:467,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:467,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:468,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:469,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:473,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:474,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:474,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:476,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:477,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:477,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:480,1
    - Dst: oidc_cache_shm_validate
      Src: /src/mod_auth_openidc/test/test_cache.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 483
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_cache_shm_size_max_get
    - apr_time_now
    - ck_assert_ptr_nonnull
    - oidc_cache_shm_validate
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_shm_pressure_reclaims_expired_before_live)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: oidc_cache_shm_thread_ctx_t
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST oidc_cache_shm_thread_ctx_t
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/test_cache.c:495,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:501,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:501,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:503,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:504,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:506,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:510,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_cache.c:514,1
    - Dst: apr_pool_clear
      Src: /src/mod_auth_openidc/test/test_cache.c:518,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:520,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - thread
    - data
    argTypes:
    - apr_thread_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 522
    functionName: APR_THREAD_FUNC::oidc_cache_shm_thread
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_pool_clear
    - apr_pool_create
    - apr_time_now
    - _oidc_strcmp
    - apr_psprintf
    - apr_pool_destroy
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: void
    signature: void *APR_THREAD_FUNC oidc_cache_shm_thread(apr_thread_t *thread, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:525,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:526,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:536,1
    - Dst: apr_thread_create
      Src: /src/mod_auth_openidc/test/test_cache.c:536,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:541,1
    - Dst: apr_thread_join
      Src: /src/mod_auth_openidc/test/test_cache.c:541,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:542,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:543,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:546,1
    - Dst: oidc_cache_shm_validate
      Src: /src/mod_auth_openidc/test/test_cache.c:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 549
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cache_shm_validate
    - apr_thread_create
    - ck_assert_msg
    - ck_assert_int_eq
    - apr_thread_join
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cache_shm_concurrent_shard_churn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:554,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:555,1
    - Dst: fork
      Src: /src/mod_auth_openidc/test/test_cache.c:561,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:562,1
    - Dst: oidc_cfg_t*::cache::impl::child_init
      Src: /src/mod_auth_openidc/test/test_cache.c:565,1
    - Dst: _exit
      Src: /src/mod_auth_openidc/test/test_cache.c:566,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:567,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:567,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:569,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:570,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:572,1
    - Dst: _exit
      Src: /src/mod_auth_openidc/test/test_cache.c:573,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:574,1
    - Dst: _exit
      Src: /src/mod_auth_openidc/test/test_cache.c:575,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_cache.c:576,1
    - Dst: _exit
      Src: /src/mod_auth_openidc/test/test_cache.c:577,1
    - Dst: _exit
      Src: /src/mod_auth_openidc/test/test_cache.c:579,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:583,1
    - Dst: waitpid
      Src: /src/mod_auth_openidc/test/test_cache.c:583,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:584,1
    - Dst: WIFEXITED
      Src: /src/mod_auth_openidc/test/test_cache.c:584,1
    - Dst: WEXITSTATUS
      Src: /src/mod_auth_openidc/test/test_cache.c:584,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:588,1
    - Dst: oidc_cache_shm_validate
      Src: /src/mod_auth_openidc/test/test_cache.c:588,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 591
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - _exit
    - oidc_test_cfg_get
    - oidc_cache_shm_validate
    - apr_time_now
    - _oidc_strcmp
    - ck_assert_msg
    - apr_psprintf
    - WEXITSTATUS
    - ck_assert_int_eq
    - fork
    - oidc_cache_get
    - WIFEXITED
    - waitpid
    - oidc_cfg_t*::cache::impl::child_init
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cache_shm_multiprocess_churn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:596,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:598,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:598,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:601,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cache.c:602,1
    - Dst: oidc_cfg_crypto_passphrase_secret2_get
      Src: /src/mod_auth_openidc/test/test_cache.c:603,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:609,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:613,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:616,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:616,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:621,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:625,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:625,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:626,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:627,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:632,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 592
    functionDepth: 4
    functionLinenumber: 592
    functionLinenumberEnd: 635
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - oidc_cfg_crypto_passphrase_secret2_get
    - apr_table_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_test_crypto_passphrase_rederive
    - oidc_cache_get
    - oidc_cfg_crypto_passphrase_secret1_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_secret1_empty_secret2_fallback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:639,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:641,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:641,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:644,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:649,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:649,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:653,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:653,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 658
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_time_now
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_backend_true_null_miss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:663,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:664,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:667,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:667,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:671,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:671,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:672,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:672,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:673,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:674,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_cache.c:678,1
    - Dst: memset
      Src: /src/mod_auth_openidc/test/test_cache.c:679,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:681,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:681,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:682,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:682,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:683,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 687
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - memset
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - apr_pcalloc
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_unencrypted_hit_and_long_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - r
    - section
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 700
    functionName: e2e_flaky_get
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t e2e_flaky_get(request_rec *r, const char *section, const
      char *key, char **value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:705,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:706,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cache.c:707,1
    - Dst: oidc_cfg_crypto_passphrase_secret2_get
      Src: /src/mod_auth_openidc/test/test_cache.c:708,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:715,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:720,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:720,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:721,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:722,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 704
    functionDepth: 4
    functionLinenumber: 704
    functionLinenumberEnd: 729
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_crypto_passphrase_secret2_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_test_crypto_passphrase_rederive
    - oidc_cache_get
    - oidc_cfg_crypto_passphrase_secret1_get
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cache_second_passphrase_retry_backend_error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:733,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:735,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:735,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:738,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:741,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_cache.c:744,1
    - Dst: oidc_cfg_crypto_passphrase_get
      Src: /src/mod_auth_openidc/test/test_cache.c:744,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:746,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:751,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:751,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:752,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:752,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:753,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:754,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 758
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - oidc_util_jwt_create
    - oidc_cfg_crypto_passphrase_get
    - apr_table_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_compression_enabled_set_get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:762,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:764,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:764,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:767,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:770,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cache.c:771,1
    - Dst: oidc_cfg_crypto_passphrase_secret2_get
      Src: /src/mod_auth_openidc/test/test_cache.c:772,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:778,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_cache.c:784,1
    - Dst: oidc_cfg_crypto_passphrase_get
      Src: /src/mod_auth_openidc/test/test_cache.c:784,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:787,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:789,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:792,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:795,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:800,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:800,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:805,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:809,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:809,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:810,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:811,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:816,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 759
    functionDepth: 4
    functionLinenumber: 759
    functionLinenumberEnd: 820
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - oidc_cfg_crypto_passphrase_secret2_get
    - oidc_util_jwt_create
    - oidc_cfg_crypto_passphrase_get
    - apr_table_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_test_crypto_passphrase_rederive
    - oidc_cache_get
    - oidc_cfg_crypto_passphrase_secret1_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_compression_enabled_second_passphrase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:824,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:826,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:826,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:829,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:832,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_cache.c:833,1
    - Dst: oidc_cfg_crypto_passphrase_secret2_get
      Src: /src/mod_auth_openidc/test/test_cache.c:834,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:839,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/test/test_cache.c:845,1
    - Dst: oidc_cfg_crypto_passphrase_get
      Src: /src/mod_auth_openidc/test/test_cache.c:845,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:848,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:850,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:852,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:855,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:860,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:860,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:865,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:868,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:868,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:869,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:870,1
    - Dst: oidc_test_crypto_passphrase_rederive
      Src: /src/mod_auth_openidc/test/test_cache.c:875,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 821
    functionDepth: 4
    functionLinenumber: 821
    functionLinenumberEnd: 879
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - oidc_cfg_crypto_passphrase_secret2_get
    - oidc_util_jwt_create
    - oidc_cfg_crypto_passphrase_get
    - apr_table_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_test_crypto_passphrase_rederive
    - oidc_cache_get
    - oidc_cfg_crypto_passphrase_secret1_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_compression_enabled_empty_secret2_fallback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:885,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:889,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_cache.c:890,1
    - Dst: mkdtemp
      Src: /src/mod_auth_openidc/test/test_cache.c:890,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:896,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:898,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 900
    functionName: oidc_cache_t *e2e_switch_to_file_backend(request_rec *r)
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - mkdtemp
    - oidc_test_cfg_get
    - apr_table_set
    - ck_assert_msg
    - post_config
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST oidc_cache_t *e2e_switch_to_file_backend(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:903,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:904,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - prev
    argTypes:
    - oidc_cache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 907
    functionName: e2e_restore_cache_backend
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - apr_table_unset
    - oidc_test_request_get
    linkageType: ''
    returnType: void
    signature: void e2e_restore_cache_backend(oidc_cache_t *prev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:910,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:911,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:913,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:913,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:914,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:914,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:917,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:917,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:918,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:919,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 922
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - e2e_switch_to_file_backend
    - oidc_test_request_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - e2e_restore_cache_backend
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cache_file_set_get_basic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:926,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:927,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:931,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:931,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:932,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 923
    functionDepth: 2
    functionLinenumber: 923
    functionLinenumberEnd: 935
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - e2e_switch_to_file_backend
    - oidc_test_request_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - e2e_restore_cache_backend
    - oidc_cache_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_file_miss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:939,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:940,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:943,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:943,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:944,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:944,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:947,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:947,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:948,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 951
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - e2e_switch_to_file_backend
    - oidc_test_request_get
    - apr_time_now
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - e2e_restore_cache_backend
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_file_expired_entry_is_miss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:955,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:956,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:958,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:958,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:959,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:959,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:960,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:960,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:962,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:962,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:963,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:966,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:966,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:968,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:968,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:969,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 972
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - e2e_switch_to_file_backend
    - oidc_test_request_get
    - apr_time_now
    - e2e_restore_cache_backend
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_get
    - apr_time_from_sec
    - oidc_cache_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_file_overwrite_and_delete)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:976,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:977,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:982,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:984,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:984,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:985,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:987,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:987,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:988,1
    - Dst: oidc_cache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:988,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:990,1
    - Dst: oidc_cache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:990,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:991,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 995
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_time_now
    - apr_table_set
    - post_config
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_get
    - oidc_cache_set
    - apr_time_from_sec
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_file_default_tmp_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1000,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - section
    - key
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1002
    functionName: e2e_file_cache_path
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - apr_psprintf
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *e2e_file_cache_path(request_rec *r, const char *section,
      const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1007,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_cache.c:1007,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1010,1
    - Dst: apr_file_write_full
      Src: /src/mod_auth_openidc/test/test_cache.c:1010,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_cache.c:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - r
    - path
    - bytes
    - len
    argTypes:
    - request_rec*
    - char*
    - char*
    - apr_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1012
    functionName: e2e_file_write_raw
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_file_write_full
    - apr_file_open
    - apr_file_close
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void e2e_file_write_raw(request_rec *r, const char *path, const char
      *bytes, apr_size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1016,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_cache.c:1016,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1017,1
    - Dst: apr_file_trunc
      Src: /src/mod_auth_openidc/test/test_cache.c:1017,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_cache.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - r
    - path
    - len
    argTypes:
    - request_rec*
    - char*
    - apr_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1019
    functionName: e2e_file_truncate
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_file_open
    - apr_file_close
    - apr_file_trunc
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void e2e_file_truncate(request_rec *r, const char *path, apr_off_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1026,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1027,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1033,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1033,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1034,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1034,1
    - Dst: e2e_file_cache_path
      Src: /src/mod_auth_openidc/test/test_cache.c:1038,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1039,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_cache.c:1039,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_cache.c:1040,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_cache.c:1041,1
    - Dst: e2e_file_truncate
      Src: /src/mod_auth_openidc/test/test_cache.c:1044,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1045,1
    - Dst: get
      Src: /src/mod_auth_openidc/test/test_cache.c:1045,1
    - Dst: e2e_file_truncate
      Src: /src/mod_auth_openidc/test/test_cache.c:1048,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1050,1
    - Dst: get
      Src: /src/mod_auth_openidc/test/test_cache.c:1050,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1051,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1054
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - e2e_switch_to_file_backend
    - oidc_test_request_get
    - _oidc_strlen
    - ck_assert_int_gt
    - apr_time_now
    - e2e_file_truncate
    - set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - e2e_restore_cache_backend
    - get
    - e2e_file_cache_path
    - apr_time_from_sec
    - apr_stat
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cache_file_truncated_entry_is_an_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1058,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1059,1
    - Dst: e2e_file_cache_path
      Src: /src/mod_auth_openidc/test/test_cache.c:1060,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1066,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1066,1
    - Dst: e2e_file_write_raw
      Src: /src/mod_auth_openidc/test/test_cache.c:1070,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1071,1
    - Dst: get
      Src: /src/mod_auth_openidc/test/test_cache.c:1071,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1072,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1075
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - e2e_switch_to_file_backend
    - oidc_test_request_get
    - e2e_file_write_raw
    - apr_time_now
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - e2e_restore_cache_backend
    - get
    - e2e_file_cache_path
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_file_rejects_oversized_value_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1080,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1081,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1082,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1089,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1089,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1090,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1090,1
    - Dst: e2e_file_cache_path
      Src: /src/mod_auth_openidc/test/test_cache.c:1091,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1094,1
    - Dst: get
      Src: /src/mod_auth_openidc/test/test_cache.c:1094,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1095,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1097,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_cache.c:1097,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1101,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1101,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1102,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1102,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1104,1
    - Dst: get
      Src: /src/mod_auth_openidc/test/test_cache.c:1104,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:1105,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1106,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1076
    functionDepth: 2
    functionLinenumber: 1076
    functionLinenumberEnd: 1109
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - e2e_switch_to_file_backend
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - set
    - e2e_restore_cache_backend
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - get
    - e2e_file_cache_path
    - apr_time_from_sec
    - apr_stat
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_file_expired_entry_left_for_cleaner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1117,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1118,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1119,1
    - Dst: e2e_file_cache_path
      Src: /src/mod_auth_openidc/test/test_cache.c:1126,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1127,1
    - Dst: apr_dir_make
      Src: /src/mod_auth_openidc/test/test_cache.c:1127,1
    - Dst: e2e_file_cache_path
      Src: /src/mod_auth_openidc/test/test_cache.c:1131,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1132,1
    - Dst: symlink
      Src: /src/mod_auth_openidc/test/test_cache.c:1132,1
    - Dst: e2e_file_cache_path
      Src: /src/mod_auth_openidc/test/test_cache.c:1135,1
    - Dst: e2e_file_write_raw
      Src: /src/mod_auth_openidc/test/test_cache.c:1136,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:1139,1
    - Dst: e2e_file_write_raw
      Src: /src/mod_auth_openidc/test/test_cache.c:1140,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1143,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1143,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1144,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1144,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_cache.c:1148,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_cache.c:1148,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1149,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_cache.c:1149,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1150,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_cache.c:1150,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1152,1
    - Dst: get
      Src: /src/mod_auth_openidc/test/test_cache.c:1152,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1153,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1157,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1158,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1158,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1158,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1160,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1160,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_cache.c:1161,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_cache.c:1162,1
    - Dst: e2e_file_cache_path
      Src: /src/mod_auth_openidc/test/test_cache.c:1162,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1164,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_cache.c:1165,1
    - Dst: e2e_file_cache_path
      Src: /src/mod_auth_openidc/test/test_cache.c:1165,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/test/test_cache.c:1168,1
    - Dst: apr_dir_remove
      Src: /src/mod_auth_openidc/test/test_cache.c:1169,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1171
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_time_now
    - apr_file_remove
    - symlink
    - e2e_restore_cache_backend
    - e2e_switch_to_file_backend
    - e2e_file_write_raw
    - oidc_test_cfg_get
    - set
    - ck_assert_str_eq
    - get
    - apr_stat
    - oidc_test_request_get
    - apr_dir_make
    - apr_dir_remove
    - e2e_file_cache_path
    - apr_psprintf
    - apr_time_from_sec
    - ck_assert_int_eq
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_file_clean_cycle_handles_junk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1179,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1180,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1181,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1183,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1183,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1184,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1184,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1190,1
    - Dst: apr_file_perms_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1190,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1191,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1192,1
    - Dst: apr_file_perms_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1193,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1195,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1198,1
    - Dst: get
      Src: /src/mod_auth_openidc/test/test_cache.c:1198,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1199,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1202
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - e2e_switch_to_file_backend
    - oidc_test_request_get
    - apr_file_perms_set
    - oidc_test_cfg_get
    - apr_time_now
    - set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - get
    - apr_time_from_sec
    - e2e_restore_cache_backend
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_file_clean_cycle_unreadable_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1210,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1211,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1212,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:1214,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1216,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1216,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1217,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1217,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1221,1
    - Dst: get
      Src: /src/mod_auth_openidc/test/test_cache.c:1221,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1222,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1203
    functionDepth: 2
    functionLinenumber: 1203
    functionLinenumberEnd: 1225
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - e2e_switch_to_file_backend
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_time_now
    - set
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - e2e_restore_cache_backend
    - get
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_file_missing_dir_fails_the_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1232,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1233,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1238,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1238,1
    - Dst: e2e_file_cache_path
      Src: /src/mod_auth_openidc/test/test_cache.c:1242,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1243,1
    - Dst: apr_dir_make
      Src: /src/mod_auth_openidc/test/test_cache.c:1243,1
    - Dst: e2e_file_write_raw
      Src: /src/mod_auth_openidc/test/test_cache.c:1244,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:1244,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1246,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1246,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1247,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1247,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1248,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_cache.c:1248,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/test/test_cache.c:1250,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:1250,1
    - Dst: apr_dir_remove
      Src: /src/mod_auth_openidc/test/test_cache.c:1251,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1226
    functionDepth: 2
    functionLinenumber: 1226
    functionLinenumberEnd: 1253
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - e2e_switch_to_file_backend
    - oidc_test_request_get
    - apr_dir_make
    - e2e_file_write_raw
    - apr_time_now
    - apr_file_remove
    - set
    - apr_psprintf
    - ck_assert_int_eq
    - e2e_restore_cache_backend
    - apr_dir_remove
    - e2e_file_cache_path
    - apr_time_from_sec
    - apr_stat
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_file_delete_missing_and_rename_failure)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1261,1
    - Dst: e2e_switch_to_file_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1262,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1270,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1270,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1274,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1274,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1275,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/test/test_cache.c:1276,1
    - Dst: e2e_file_cache_path
      Src: /src/mod_auth_openidc/test/test_cache.c:1276,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_cache.c:1278,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1280,1
    - Dst: getrlimit
      Src: /src/mod_auth_openidc/test/test_cache.c:1280,1
    - Dst: signal
      Src: /src/mod_auth_openidc/test/test_cache.c:1281,1
    - Dst: setrlimit
      Src: /src/mod_auth_openidc/test/test_cache.c:1285,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1287,1
    - Dst: setrlimit
      Src: /src/mod_auth_openidc/test/test_cache.c:1290,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_cache.c:1291,1
    - Dst: setrlimit
      Src: /src/mod_auth_openidc/test/test_cache.c:1292,1
    - Dst: signal
      Src: /src/mod_auth_openidc/test/test_cache.c:1294,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1301,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1302,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1306,1
    - Dst: get
      Src: /src/mod_auth_openidc/test/test_cache.c:1306,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1307,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1308,1
    - Dst: get
      Src: /src/mod_auth_openidc/test/test_cache.c:1308,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1309,1
    - Dst: e2e_restore_cache_backend
      Src: /src/mod_auth_openidc/test/test_cache.c:1311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1254
    functionDepth: 2
    functionLinenumber: 1254
    functionLinenumberEnd: 1312
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - e2e_switch_to_file_backend
    - oidc_test_request_get
    - _oidc_strlen
    - setrlimit
    - apr_time_now
    - getrlimit
    - set
    - signal
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - e2e_restore_cache_backend
    - get
    - e2e_file_cache_path
    - apr_time_from_sec
    - apr_stat
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_file_short_write_fails_the_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mod_auth_openidc/test/test_cache.c:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1341
    functionName: redis_mock_reset
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void redis_mock_reset(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/mod_auth_openidc/test/test_cache.c:1344,1
    - Dst: strdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1347,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/test_cache.c:1348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - type
    - str
    - force_len
    argTypes:
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1353
    functionName: redis_mock_make_reply
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - strlen
    - calloc
    - strdup
    linkageType: ''
    returnType: redisReply
    signature: redisReply *redis_mock_make_reply(int type, const char *str, int force_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - r
    - context
    argTypes:
    - request_rec*
    - oidc_cache_cfg_redis_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1355
    functionDepth: 0
    functionLinenumber: 1355
    functionLinenumberEnd: 1364
    functionName: redis_mock_connect
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t redis_mock_connect(request_rec *r, oidc_cache_cfg_redis_t
      *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1371,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1372,1
    - Dst: redis_mock_make_reply
      Src: /src/mod_auth_openidc/test/test_cache.c:1375,1
    - Dst: redis_mock_make_reply
      Src: /src/mod_auth_openidc/test/test_cache.c:1379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - r
    - context
    - errstr
    - format
    - ap
    argTypes:
    - request_rec*
    - oidc_cache_cfg_redis_t*
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1380
    functionName: redis_mock_command
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - redis_mock_make_reply
    linkageType: ''
    returnType: redisReply
    signature: "redisReply *redis_mock_command(request_rec *r, oidc_cache_cfg_redis_t
      *context, char **errstr,\n\t\t\t\t      const char *format, va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - oidc_cache_cfg_redis_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1386
    functionName: redis_mock_disconnect
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t redis_mock_disconnect(oidc_cache_cfg_redis_t *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1393,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1401,1
    - Dst: oidc_cache_redis_post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1401,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:1404,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1416,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1417,1
    - Dst: redis_mock_reset
      Src: /src/mod_auth_openidc/test/test_cache.c:1419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1392
    functionDepth: 1
    functionLinenumber: 1392
    functionLinenumberEnd: 1422
    functionName: redis_mock_install
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_cache_redis_post_config
    - oidc_test_cfg_get
    - redis_mock_reset
    - apr_table_set
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: oidc_cache_cfg_redis_t
    signature: oidc_cache_cfg_redis_t *redis_mock_install(request_rec *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1425,1
    - Dst: oidc_cfg_t*::cache::impl::destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:1428,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:1431,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:1432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1433
    functionName: redis_mock_restore
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_cfg_t*::cache::impl::destroy
    - apr_table_unset
    linkageType: ''
    returnType: void
    signature: void redis_mock_restore(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1440,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1443,1
    - Dst: oidc_cache_redis_redact
      Src: /src/mod_auth_openidc/test/test_cache.c:1443,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1444,1
    - Dst: oidc_cache_redis_redact
      Src: /src/mod_auth_openidc/test/test_cache.c:1444,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1447,1
    - Dst: oidc_cache_redis_redact
      Src: /src/mod_auth_openidc/test/test_cache.c:1447,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1448,1
    - Dst: oidc_cache_redis_redact
      Src: /src/mod_auth_openidc/test/test_cache.c:1448,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1451,1
    - Dst: oidc_cache_redis_redact
      Src: /src/mod_auth_openidc/test/test_cache.c:1451,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1452,1
    - Dst: oidc_cache_redis_redact
      Src: /src/mod_auth_openidc/test/test_cache.c:1452,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1454,1
    - Dst: oidc_cache_redis_redact
      Src: /src/mod_auth_openidc/test/test_cache.c:1454,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1458,1
    - Dst: oidc_cache_redis_redact
      Src: /src/mod_auth_openidc/test/test_cache.c:1458,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1461,1
    - Dst: oidc_cache_redis_redact
      Src: /src/mod_auth_openidc/test/test_cache.c:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1462
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    - oidc_cache_redis_redact
    - oidc_test_request_get
    - ck_assert_ptr_null
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cache_redis_redact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1466,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1467,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1475,1
    - Dst: oidc_cache_redis_post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1481
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_cache_redis_post_config
    - oidc_test_request_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_post_config_no_server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1485,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1486,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1493,1
    - Dst: oidc_cache_redis_post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1493,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:1496,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:1497,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1499,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1500,1
    - Dst: oidc_cache_mutex_destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:1504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1508
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_cache_redis_post_config
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_cache_mutex_destroy
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_post_config_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1512,1
    - Dst: redis_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:1513,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1518,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1518,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:1519,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1520,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1521,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1522,1
    - Dst: strncmp
      Src: /src/mod_auth_openidc/test/test_cache.c:1522,1
    - Dst: redis_mock_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1509
    functionDepth: 2
    functionLinenumber: 1509
    functionLinenumberEnd: 1525
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ck_assert_ptr_nonnull
    - redis_mock_restore
    - redis_mock_install
    - strncmp
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cache_redis_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_get_hit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1529,1
    - Dst: redis_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:1530,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1535,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1535,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1536,1
    - Dst: redis_mock_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:1538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1526
    functionDepth: 2
    functionLinenumber: 1526
    functionLinenumberEnd: 1539
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - redis_mock_restore
    - redis_mock_install
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cache_redis_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_get_miss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1543,1
    - Dst: redis_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:1544,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1550,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1550,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1551,1
    - Dst: redis_mock_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:1553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1540
    functionDepth: 2
    functionLinenumber: 1540
    functionLinenumberEnd: 1554
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - redis_mock_restore
    - redis_mock_install
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cache_redis_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_get_len_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1558,1
    - Dst: redis_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:1559,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1563,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1563,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1564,1
    - Dst: redis_mock_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1567
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - redis_mock_restore
    - redis_mock_install
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cache_redis_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_get_wrong_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1571,1
    - Dst: redis_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:1572,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1576,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1576,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1578,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1579,1
    - Dst: redis_mock_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:1581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1568
    functionDepth: 2
    functionLinenumber: 1568
    functionLinenumberEnd: 1582
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - redis_mock_restore
    - redis_mock_install
    - ck_assert_int_eq
    - oidc_cache_redis_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_get_connect_failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1586,1
    - Dst: redis_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:1587,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1593,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1593,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1594,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1595,1
    - Dst: ck_assert_int_ge
      Src: /src/mod_auth_openidc/test/test_cache.c:1596,1
    - Dst: redis_mock_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:1598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1583
    functionDepth: 2
    functionLinenumber: 1583
    functionLinenumberEnd: 1599
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - redis_mock_restore
    - redis_mock_install
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_int_ge
    - oidc_cache_redis_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_get_error_then_recover)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1603,1
    - Dst: redis_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:1604,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1608,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1608,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1609,1
    - Dst: redis_mock_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:1611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1600
    functionDepth: 2
    functionLinenumber: 1600
    functionLinenumberEnd: 1612
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - redis_mock_restore
    - redis_mock_install
    - ck_assert_int_eq
    - oidc_cache_redis_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_get_null_reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1616,1
    - Dst: redis_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:1617,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1621,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1621,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1622,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1622,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1623,1
    - Dst: strncmp
      Src: /src/mod_auth_openidc/test/test_cache.c:1623,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:1624,1
    - Dst: strstr
      Src: /src/mod_auth_openidc/test/test_cache.c:1624,1
    - Dst: redis_mock_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:1626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1627
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_time_now
    - strstr
    - redis_mock_restore
    - redis_mock_install
    - strncmp
    - ck_assert_int_eq
    - oidc_cache_redis_set
    - apr_time_from_sec
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_set_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1631,1
    - Dst: redis_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:1632,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1636,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1636,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1637,1
    - Dst: strncmp
      Src: /src/mod_auth_openidc/test/test_cache.c:1637,1
    - Dst: redis_mock_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:1639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1628
    functionDepth: 2
    functionLinenumber: 1628
    functionLinenumberEnd: 1640
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - redis_mock_restore
    - redis_mock_install
    - strncmp
    - ck_assert_int_eq
    - oidc_cache_redis_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_set_delete)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1644,1
    - Dst: redis_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:1645,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1648,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1648,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1649,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1649,1
    - Dst: redis_mock_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:1651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1641
    functionDepth: 2
    functionLinenumber: 1641
    functionLinenumberEnd: 1652
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_time_now
    - redis_mock_restore
    - redis_mock_install
    - ck_assert_int_eq
    - oidc_cache_redis_set
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_set_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1656,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1659,1
    - Dst: oidc_cache_redis_set_keepalive
      Src: /src/mod_auth_openidc/test/test_cache.c:1659,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1661,1
    - Dst: oidc_cache_redis_set_auth
      Src: /src/mod_auth_openidc/test/test_cache.c:1661,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1663,1
    - Dst: oidc_cache_redis_set_database
      Src: /src/mod_auth_openidc/test/test_cache.c:1663,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1665,1
    - Dst: oidc_cache_redis_disconnect
      Src: /src/mod_auth_openidc/test/test_cache.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1653
    functionDepth: 1
    functionLinenumber: 1653
    functionLinenumberEnd: 1666
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_cache_redis_set_auth
    - oidc_test_request_get
    - oidc_cache_redis_disconnect
    - oidc_cache_redis_set_keepalive
    - ck_assert_int_eq
    - oidc_cache_redis_set_database
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_helpers_short_circuit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1674,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1675,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1682,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cache.c:1682,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1684,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1684,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1687,1
    - Dst: oidc_cache_redis_child_init
      Src: /src/mod_auth_openidc/test/test_cache.c:1687,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:1690,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1690,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1691,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1691,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1695,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1695,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1696,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1699,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1699,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1701,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1701,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:1702,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1703,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1706,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1706,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1708,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1708,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1709,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1712,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1712,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1714,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1714,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1715,1
    - Dst: destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:1718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1667
    functionDepth: 1
    functionLinenumber: 1667
    functionLinenumberEnd: 1722
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - oidc_cache_redis_get
    - post_config
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - destroy
    - getenv
    - oidc_cache_redis_set
    - apr_time_from_sec
    - oidc_cache_redis_child_init
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_live_roundtrip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1729,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1730,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cache.c:1730,1
    - Dst: strrchr
      Src: /src/mod_auth_openidc/test/test_cache.c:1733,1
    - Dst: atoi
      Src: /src/mod_auth_openidc/test/test_cache.c:1736,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:1741,1
    - Dst: oidc_cache_redis_connect_with_timeout
      Src: /src/mod_auth_openidc/test/test_cache.c:1741,1
    - Dst: oidc_cache_redis_connect_with_timeout
      Src: /src/mod_auth_openidc/test/test_cache.c:1744,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:1745,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1748,1
    - Dst: oidc_cache_redis_set_keepalive
      Src: /src/mod_auth_openidc/test/test_cache.c:1748,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1749,1
    - Dst: oidc_cache_redis_set_keepalive
      Src: /src/mod_auth_openidc/test/test_cache.c:1749,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1753,1
    - Dst: oidc_cache_redis_set_auth
      Src: /src/mod_auth_openidc/test/test_cache.c:1753,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1754,1
    - Dst: oidc_cache_redis_set_auth
      Src: /src/mod_auth_openidc/test/test_cache.c:1754,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1755,1
    - Dst: oidc_cache_redis_set_auth
      Src: /src/mod_auth_openidc/test/test_cache.c:1755,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1758,1
    - Dst: oidc_cache_redis_set_database
      Src: /src/mod_auth_openidc/test/test_cache.c:1758,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1759,1
    - Dst: oidc_cache_redis_set_database
      Src: /src/mod_auth_openidc/test/test_cache.c:1759,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1760,1
    - Dst: oidc_cache_redis_set_database
      Src: /src/mod_auth_openidc/test/test_cache.c:1760,1
    - Dst: redisFree
      Src: /src/mod_auth_openidc/test/test_cache.c:1762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1763
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_cache_redis_set_auth
    - atoi
    - ck_assert_ptr_null
    - oidc_cache_redis_set_keepalive
    - ck_assert_int_eq
    - redisFree
    - oidc_cache_redis_connect_with_timeout
    - getenv
    - oidc_cache_redis_set_database
    - strrchr
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_live_connection_helpers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1770,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1771,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1777,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cache.c:1777,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1778,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1779,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1785,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1785,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1786,1
    - Dst: oidc_cache_redis_child_init
      Src: /src/mod_auth_openidc/test/test_cache.c:1786,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:1788,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1788,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1789,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1789,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1791,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1791,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1792,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1792,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:1793,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1794,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1795,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1795,1
    - Dst: destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:1797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1807
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - oidc_cache_redis_get
    - post_config
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - destroy
    - getenv
    - oidc_cache_redis_set
    - apr_time_from_sec
    - oidc_cache_redis_child_init
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_live_config_options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1812,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1813,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1821,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1822,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1822,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1827,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1828,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1828,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1833,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1834,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1834,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1839,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cache.c:1839,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1841,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1841,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1842,1
    - Dst: oidc_cache_redis_child_init
      Src: /src/mod_auth_openidc/test/test_cache.c:1842,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1843,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1845,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1845,1
    - Dst: destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:1846,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1851,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1852,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1852,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1853,1
    - Dst: oidc_cache_redis_child_init
      Src: /src/mod_auth_openidc/test/test_cache.c:1853,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1854,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1854,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:1855,1
    - Dst: destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:1856,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cache.c:1860,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_cache.c:1861,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1863,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1864,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1864,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1865,1
    - Dst: oidc_cache_redis_child_init
      Src: /src/mod_auth_openidc/test/test_cache.c:1865,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:1866,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1866,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1867,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1867,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1868,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1868,1
    - Dst: destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1876
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_time_now
    - oidc_cache_redis_get
    - apr_table_set
    - post_config
    - apr_psprintf
    - ck_assert_int_eq
    - _oidc_strstr
    - destroy
    - getenv
    - oidc_cache_redis_set
    - apr_time_from_sec
    - oidc_cache_redis_child_init
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_live_server_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1882,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1883,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1889,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cache.c:1889,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1891,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1891,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1892,1
    - Dst: oidc_cache_redis_child_init
      Src: /src/mod_auth_openidc/test/test_cache.c:1892,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:1897,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1897,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1898,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1898,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1901,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1901,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1902,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1902,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1903,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1904,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1904,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:1905,1
    - Dst: destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:1908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1877
    functionDepth: 1
    functionLinenumber: 1877
    functionLinenumberEnd: 1912
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_nonnull
    - apr_time_now
    - oidc_cache_redis_get
    - post_config
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - destroy
    - getenv
    - oidc_cache_redis_set
    - apr_time_from_sec
    - oidc_cache_redis_child_init
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_live_legacy_shared_connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1918,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1919,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1925,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cache.c:1925,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1927,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1927,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1928,1
    - Dst: oidc_cache_redis_child_init
      Src: /src/mod_auth_openidc/test/test_cache.c:1928,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:1931,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1931,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:1932,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:1932,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1937,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/test_cache.c:1937,1
    - Dst: apr_pmemdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1938,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1940,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1940,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:1941,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1942,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1946,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1946,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1947,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1948,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1949,1
    - Dst: oidc_cache_redis_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1949,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1952,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/test_cache.c:1952,1
    - Dst: apr_pmemdup
      Src: /src/mod_auth_openidc/test/test_cache.c:1953,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1956,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1956,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:1957,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1958,1
    - Dst: destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:1960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1913
    functionDepth: 1
    functionLinenumber: 1913
    functionLinenumberEnd: 1964
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - apr_pool_create
    - oidc_test_cfg_get
    - apr_time_now
    - oidc_cache_redis_set
    - oidc_cache_redis_get
    - post_config
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - apr_pool_destroy
    - destroy
    - getenv
    - apr_pmemdup
    - apr_time_from_sec
    - oidc_cache_redis_child_init
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_live_idle_pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1970,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1971,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1979,1
    - Dst: apr_sockaddr_info_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1979,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1980,1
    - Dst: apr_socket_create
      Src: /src/mod_auth_openidc/test/test_cache.c:1980,1
    - Dst: apr_socket_opt_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1981,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1982,1
    - Dst: apr_socket_bind
      Src: /src/mod_auth_openidc/test/test_cache.c:1982,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1983,1
    - Dst: apr_socket_listen
      Src: /src/mod_auth_openidc/test/test_cache.c:1983,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1985,1
    - Dst: apr_socket_addr_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1985,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:1988,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1992,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:1992,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1993,1
    - Dst: oidc_cache_redis_child_init
      Src: /src/mod_auth_openidc/test/test_cache.c:1993,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_cache.c:1996,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:1998,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:1998,1
    - Dst: apr_socket_close
      Src: /src/mod_auth_openidc/test/test_cache.c:2001,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2002,1
    - Dst: oidc_cache_redis_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2002,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_cache.c:2003,1
    - Dst: destroy
      Src: /src/mod_auth_openidc/test/test_cache.c:2005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 2011
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - apr_socket_addr_get
    - oidc_test_cfg_get
    - apr_socket_bind
    - apr_sockaddr_info_get
    - apr_socket_create
    - oidc_cache_redis_get
    - apr_table_set
    - apr_socket_close
    - post_config
    - apr_psprintf
    - ck_assert_int_eq
    - apr_socket_opt_set
    - destroy
    - apr_socket_listen
    - oidc_cache_redis_child_init
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_redis_live_half_dead_server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/test_cache.c:2016,1
    - Dst: redis_mock_reset
      Src: /src/mod_auth_openidc/test/test_cache.c:2017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2012
    functionDepth: 5
    functionLinenumber: 2012
    functionLinenumberEnd: 2018
    functionName: redis_test_setup
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_setup
    - redis_mock_reset
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST redis_test_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mod_auth_openidc/test/test_cache.c:2052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2051
    functionDepth: 0
    functionLinenumber: 2051
    functionLinenumberEnd: 2054
    functionName: memcache_mock_reset
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void memcache_mock_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - s
    - p
    - context
    - split
    - min
    - smax
    - hmax
    - ttl
    argTypes:
    - server_rec*
    - apr_pool_t*
    - struct oidc_cache_cfg_memcache_t*
    - char*
    - apr_uint32_t
    - apr_uint32_t
    - apr_uint32_t
    - apr_interval_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2057
    functionDepth: 0
    functionLinenumber: 2057
    functionLinenumberEnd: 2070
    functionName: memcache_mock_add_server
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int memcache_mock_add_server(server_rec *s, apr_pool_t *p, struct
      oidc_cache_cfg_memcache_t *context,\n\t\t\t\t    char *split, apr_uint32_t min,
      apr_uint32_t smax, apr_uint32_t hmax,\n\t\t\t\t    apr_interval_time_t ttl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:2079,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/test_cache.c:2082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - context
    - p
    - key
    - baton
    - len
    argTypes:
    - struct oidc_cache_cfg_memcache_t*
    - apr_pool_t*
    - char*
    - char**
    - apr_size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2073
    functionDepth: 0
    functionLinenumber: 2073
    functionLinenumberEnd: 2085
    functionName: memcache_mock_getp
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - strlen
    linkageType: ''
    returnType: apr_status_t
    signature: "apr_status_t memcache_mock_getp(struct oidc_cache_cfg_memcache_t *context,
      apr_pool_t *p, const char *key,\n\t\t\t\t       char **baton, apr_size_t *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - context
    - key
    - baton
    - len
    - timeout
    argTypes:
    - struct oidc_cache_cfg_memcache_t*
    - char*
    - char*
    - apr_size_t
    - apr_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2087
    functionDepth: 0
    functionLinenumber: 2087
    functionLinenumberEnd: 2096
    functionName: memcache_mock_set
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_status_t
    signature: "apr_status_t memcache_mock_set(struct oidc_cache_cfg_memcache_t *context,
      const char *key, char *baton,\n\t\t\t\t      apr_size_t len, apr_uint32_t timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - context
    - key
    argTypes:
    - struct oidc_cache_cfg_memcache_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2098
    functionDepth: 0
    functionLinenumber: 2098
    functionLinenumberEnd: 2103
    functionName: memcache_mock_delete
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t memcache_mock_delete(struct oidc_cache_cfg_memcache_t
      *context, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct oidc_cache_cfg_memcache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2105
    functionDepth: 0
    functionLinenumber: 2105
    functionLinenumberEnd: 2109
    functionName: memcache_mock_status
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t memcache_mock_status(const struct oidc_cache_cfg_memcache_t
      *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcache_mock_reset
      Src: /src/mod_auth_openidc/test/test_cache.c:2127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2118
    functionDepth: 1
    functionLinenumber: 2118
    functionLinenumberEnd: 2128
    functionName: memcache_save
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - memcache_mock_reset
    linkageType: ''
    returnType: void
    signature: void memcache_save(oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2130
    functionDepth: 0
    functionLinenumber: 2130
    functionLinenumberEnd: 2137
    functionName: memcache_restore
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void memcache_restore(oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2144,1
    - Dst: oidc_cache_memcache_post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:2144,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:2146,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2148,1
    - Dst: oidc_cache_memcache_add_servers
      Src: /src/mod_auth_openidc/test/test_cache.c:2148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - r
    - cfg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2150
      start: 2143
    functionDepth: 1
    functionLinenumber: 2143
    functionLinenumberEnd: 2150
    functionName: memcache_mock_run
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_cache_memcache_add_servers
    - ck_assert_ptr_nonnull
    - oidc_cache_memcache_post_config
    - ck_assert_int_eq
    linkageType: ''
    returnType: oidc_cache_cfg_memcache_t
    signature: oidc_cache_cfg_memcache_t *memcache_mock_run(request_rec *r, oidc_cfg_t
      *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2158,1
    - Dst: oidc_cache_memcache_post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:2158,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:2160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - r
    - cfg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2156
    functionDepth: 1
    functionLinenumber: 2156
    functionLinenumberEnd: 2166
    functionName: memcache_mock_install
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - ck_assert_ptr_nonnull
    - oidc_cache_memcache_post_config
    - ck_assert_int_eq
    linkageType: ''
    returnType: oidc_cache_cfg_memcache_t
    signature: oidc_cache_cfg_memcache_t *memcache_mock_install(request_rec *r, oidc_cfg_t
      *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2169,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2170,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2171,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2175,1
    - Dst: oidc_cache_memcache_post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:2175,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2168
    functionDepth: 2
    functionLinenumber: 2168
    functionLinenumberEnd: 2179
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - memcache_restore
    - memcache_save
    - oidc_cache_memcache_post_config
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cache_memcache_post_config_no_servers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2183,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2184,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2185,1
    - Dst: memcache_mock_run
      Src: /src/mod_auth_openidc/test/test_cache.c:2188,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2189,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2180
    functionDepth: 2
    functionLinenumber: 2180
    functionLinenumberEnd: 2192
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - memcache_restore
    - memcache_save
    - ck_assert_int_eq
    - memcache_mock_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_post_config_single_server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2196,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2197,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2198,1
    - Dst: memcache_mock_run
      Src: /src/mod_auth_openidc/test/test_cache.c:2202,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2203,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2193
    functionDepth: 2
    functionLinenumber: 2193
    functionLinenumberEnd: 2206
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - memcache_restore
    - memcache_save
    - ck_assert_int_eq
    - memcache_mock_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_post_config_multi_server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2210,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2211,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2212,1
    - Dst: memcache_mock_run
      Src: /src/mod_auth_openidc/test/test_cache.c:2219,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2222,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2223,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2224,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2225,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2226,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2227,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2228,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2207
    functionDepth: 2
    functionLinenumber: 2207
    functionLinenumberEnd: 2231
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - memcache_restore
    - memcache_save
    - ck_assert_int_eq
    - memcache_mock_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_post_config_pool_clamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2235,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2236,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2237,1
    - Dst: memcache_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:2238,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2243,1
    - Dst: oidc_cache_memcache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2243,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:2244,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2245,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2246,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2249,1
    - Dst: oidc_util_hash_string_and_base64url_encode
      Src: /src/mod_auth_openidc/test/test_cache.c:2250,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2252,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2232
    functionDepth: 2
    functionLinenumber: 2232
    functionLinenumberEnd: 2255
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_util_hash_string_and_base64url_encode
    - memcache_restore
    - memcache_mock_install
    - memcache_save
    - oidc_cache_memcache_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_get_hit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2259,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2260,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2261,1
    - Dst: memcache_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:2262,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2268,1
    - Dst: oidc_cache_memcache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2268,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:2269,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2270,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2256
    functionDepth: 2
    functionLinenumber: 2256
    functionLinenumberEnd: 2273
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - memcache_restore
    - memcache_mock_install
    - memcache_save
    - oidc_cache_memcache_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_get_miss_alive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2277,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2278,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2279,1
    - Dst: memcache_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:2280,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2286,1
    - Dst: oidc_cache_memcache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2286,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2287,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2274
    functionDepth: 2
    functionLinenumber: 2274
    functionLinenumberEnd: 2290
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - memcache_restore
    - memcache_mock_install
    - memcache_save
    - oidc_cache_memcache_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_get_miss_all_dead)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2294,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2295,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2296,1
    - Dst: memcache_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:2297,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2302,1
    - Dst: oidc_cache_memcache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2302,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2291
    functionDepth: 2
    functionLinenumber: 2291
    functionLinenumberEnd: 2305
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - memcache_restore
    - memcache_mock_install
    - memcache_save
    - oidc_cache_memcache_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_get_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2309,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2310,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2311,1
    - Dst: memcache_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:2312,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2319,1
    - Dst: oidc_cache_memcache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2319,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2306
    functionDepth: 2
    functionLinenumber: 2306
    functionLinenumberEnd: 2322
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - memcache_restore
    - memcache_mock_install
    - memcache_save
    - oidc_cache_memcache_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_get_len_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2326,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2327,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2328,1
    - Dst: memcache_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:2329,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2332,1
    - Dst: oidc_cache_memcache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:2332,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:2332,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2333,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2334,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2337,1
    - Dst: oidc_util_hash_string_and_base64url_encode
      Src: /src/mod_auth_openidc/test/test_cache.c:2338,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2340,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2323
    functionDepth: 2
    functionLinenumber: 2323
    functionLinenumberEnd: 2343
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_util_hash_string_and_base64url_encode
    - oidc_cache_memcache_set
    - apr_time_now
    - memcache_restore
    - memcache_mock_install
    - memcache_save
    - ck_assert_int_eq
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_set_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2347,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2348,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2349,1
    - Dst: memcache_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:2350,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2353,1
    - Dst: oidc_cache_memcache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:2353,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:2353,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2344
    functionDepth: 2
    functionLinenumber: 2344
    functionLinenumberEnd: 2356
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - memcache_restore
    - oidc_cache_memcache_set
    - apr_time_now
    - memcache_mock_install
    - memcache_save
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_set_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2360,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2361,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2362,1
    - Dst: memcache_mock_install
      Src: /src/mod_auth_openidc/test/test_cache.c:2363,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2367,1
    - Dst: oidc_cache_memcache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:2367,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2368,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2372,1
    - Dst: oidc_cache_memcache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:2372,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2376,1
    - Dst: oidc_cache_memcache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:2376,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2357
    functionDepth: 2
    functionLinenumber: 2357
    functionLinenumberEnd: 2379
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - memcache_restore
    - oidc_cache_memcache_set
    - memcache_mock_install
    - memcache_save
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_set_delete)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2384,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2385,1
    - Dst: memcache_save
      Src: /src/mod_auth_openidc/test/test_cache.c:2386,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_cache.c:2388,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cache.c:2388,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2390,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_cache.c:2390,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_cache.c:2393,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:2393,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_cache.c:2394,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_cache.c:2394,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2398,1
    - Dst: oidc_cache_memcache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:2398,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2399,1
    - Dst: oidc_cache_memcache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2399,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_cache.c:2400,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2401,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2404,1
    - Dst: oidc_cache_memcache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:2404,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2406,1
    - Dst: oidc_cache_memcache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2406,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2407,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2410,1
    - Dst: oidc_cache_memcache_set
      Src: /src/mod_auth_openidc/test/test_cache.c:2410,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_cache.c:2412,1
    - Dst: oidc_cache_memcache_get
      Src: /src/mod_auth_openidc/test/test_cache.c:2412,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_cache.c:2413,1
    - Dst: memcache_restore
      Src: /src/mod_auth_openidc/test/test_cache.c:2415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2380
    functionDepth: 2
    functionLinenumber: 2380
    functionLinenumberEnd: 2416
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - memcache_restore
    - apr_time_now
    - oidc_cache_memcache_set
    - memcache_save
    - post_config
    - apr_psprintf
    - oidc_cache_memcache_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_null
    - getenv
    - apr_time_from_sec
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cache_memcache_live_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/test_cache.c:2421,1
    - Dst: memcache_mock_reset
      Src: /src/mod_auth_openidc/test/test_cache.c:2422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2417
    functionDepth: 5
    functionLinenumber: 2417
    functionLinenumberEnd: 2423
    functionName: memcache_test_setup
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - memcache_mock_reset
    - oidc_test_setup
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST memcache_test_setup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cache.c:2428,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cache.c:2429,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2431,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2432,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2433,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2434,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2435,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2436,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2437,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2438,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2439,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2440,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2441,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2442,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2443,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2444,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2446,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2448,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2449,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2450,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2451,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2453,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2454,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2455,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cache.c:2457,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cache.c:2458,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2459,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2460,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2461,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2462,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2463,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2464,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2465,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2466,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2467,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2468,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2469,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2470,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2471,1
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_cache.c:2473,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cache.c:2474,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cache.c:2475,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cache.c:2478,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cache.c:2479,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2480,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2481,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2482,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2483,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2484,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2485,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2486,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2487,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2488,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2489,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2490,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2491,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2492,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2493,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cache.c:2494,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cache.c:2497,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cache.c:2498,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cache.c:2499,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2500,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2501,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2502,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2503,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2504,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2505,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2506,1
    - Dst: tcase_set_timeout
      Src: /src/mod_auth_openidc/test/test_cache.c:2507,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cache.c:2508,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cache.c:2513,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cache.c:2514,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2515,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2516,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2517,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2518,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2519,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2520,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2521,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2522,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2523,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2524,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2525,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2526,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cache.c:2527,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_cache.c:2530,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_cache.c:2531,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_cache.c:2532,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_cache.c:2533,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_cache.c:2534,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_cache.c:2538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2539
      start: 2427
    functionDepth: 1
    functionLinenumber: 2427
    functionLinenumberEnd: 2539
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_cache.c
    functionUses: 0
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_set_timeout
    - tcase_add_checked_fixture
    - suite_add_tcase
    - tcase_add_test
    - oidc_test_suite_run
    - getenv
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:41,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:43,1
    - Dst: _oidc_metrics_type_name2s
      Src: /src/mod_auth_openidc/test/test_metrics.c:43,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:45,1
    - Dst: _oidc_metrics_type_name2s
      Src: /src/mod_auth_openidc/test/test_metrics.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    - oidc_test_pool_get
    - _oidc_metrics_type_name2s
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metrics_type_name2s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:51,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:54,1
    - Dst: oidc_metrics_is_valid_classname
      Src: /src/mod_auth_openidc/test/test_metrics.c:54,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:55,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:57,1
    - Dst: oidc_metrics_is_valid_classname
      Src: /src/mod_auth_openidc/test/test_metrics.c:57,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:59,1
    - Dst: oidc_metrics_is_valid_classname
      Src: /src/mod_auth_openidc/test/test_metrics.c:59,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:61,1
    - Dst: oidc_metrics_is_valid_classname
      Src: /src/mod_auth_openidc/test/test_metrics.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_is_valid_classname
    - ck_assert_ptr_nonnull
    - oidc_test_pool_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_is_valid_classname_known)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:66,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:69,1
    - Dst: oidc_metrics_is_valid_classname
      Src: /src/mod_auth_openidc/test/test_metrics.c:69,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:71,1
    - Dst: oidc_metrics_is_valid_classname
      Src: /src/mod_auth_openidc/test/test_metrics.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_is_valid_classname
    - oidc_test_pool_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_is_valid_classname_claim_wildcard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:76,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:78,1
    - Dst: oidc_metrics_is_valid_classname
      Src: /src/mod_auth_openidc/test/test_metrics.c:78,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:80,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:81,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_is_valid_classname
    - oidc_test_pool_get
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_is_valid_classname_unknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:88,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:89,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:90,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:91,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:92,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_timing_table_order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:102,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_metrics.c:102,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_metrics.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - _oidc_strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_counter_names_unique)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:116,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metrics.c:117,1
    - Dst: oidc_cmd_metrics_hook_data_set
      Src: /src/mod_auth_openidc/test/test_metrics.c:117,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:118,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metrics.c:119,1
    - Dst: oidc_cmd_metrics_hook_data_set
      Src: /src/mod_auth_openidc/test/test_metrics.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: enable_metrics_hook_data
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - ck_assert_ptr_null
    - oidc_cmd_metrics_hook_data_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST enable_metrics_hook_data(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enable_metrics_hook_data
      Src: /src/mod_auth_openidc/test/test_metrics.c:123,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:124,1
    - Dst: oidc_metrics_post_config
      Src: /src/mod_auth_openidc/test/test_metrics.c:124,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:125,1
    - Dst: oidc_metrics_child_init
      Src: /src/mod_auth_openidc/test/test_metrics.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: metrics_subsystem_setup
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_child_init
    - enable_metrics_hook_data
    - oidc_metrics_post_config
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void metrics_subsystem_setup(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:129,1
    - Dst: oidc_metrics_cleanup
      Src: /src/mod_auth_openidc/test/test_metrics.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: metrics_subsystem_teardown
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_cleanup
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void metrics_subsystem_teardown(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:133,1
    - Dst: metrics_subsystem_setup
      Src: /src/mod_auth_openidc/test/test_metrics.c:134,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:137,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:138,1
    - Dst: metrics_subsystem_teardown
      Src: /src/mod_auth_openidc/test/test_metrics.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - oidc_test_request_get
    - metrics_subsystem_setup
    - metrics_subsystem_teardown
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metrics_handle_request_no_format_default_prometheus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:145,1
    - Dst: metrics_subsystem_setup
      Src: /src/mod_auth_openidc/test/test_metrics.c:146,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:149,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:150,1
    - Dst: metrics_subsystem_teardown
      Src: /src/mod_auth_openidc/test/test_metrics.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - oidc_test_request_get
    - metrics_subsystem_setup
    - metrics_subsystem_teardown
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_format_json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:157,1
    - Dst: metrics_subsystem_setup
      Src: /src/mod_auth_openidc/test/test_metrics.c:158,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:163,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:164,1
    - Dst: metrics_subsystem_teardown
      Src: /src/mod_auth_openidc/test/test_metrics.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - oidc_test_request_get
    - metrics_subsystem_setup
    - metrics_subsystem_teardown
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_format_internal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:171,1
    - Dst: metrics_subsystem_setup
      Src: /src/mod_auth_openidc/test/test_metrics.c:172,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:175,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:176,1
    - Dst: metrics_subsystem_teardown
      Src: /src/mod_auth_openidc/test/test_metrics.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - oidc_test_request_get
    - metrics_subsystem_setup
    - metrics_subsystem_teardown
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_format_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:183,1
    - Dst: metrics_subsystem_setup
      Src: /src/mod_auth_openidc/test/test_metrics.c:184,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:187,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:188,1
    - Dst: metrics_subsystem_teardown
      Src: /src/mod_auth_openidc/test/test_metrics.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 191
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - oidc_test_request_get
    - metrics_subsystem_setup
    - metrics_subsystem_teardown
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_format_unknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:195,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:196,1
    - Dst: metrics_subsystem_setup
      Src: /src/mod_auth_openidc/test/test_metrics.c:197,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:202,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/test/test_metrics.c:203,1
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/test/test_metrics.c:205,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/test/test_metrics.c:206,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/test/test_metrics.c:206,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/test/test_metrics.c:207,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:210,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:211,1
    - Dst: metrics_subsystem_teardown
      Src: /src/mod_auth_openidc/test/test_metrics.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 214
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - apr_sleep
    - oidc_metrics_handle_request
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_time_from_msec
    - OIDC_METRICS_COUNTER_INC
    - OIDC_METRICS_TIMING_START
    - OIDC_METRICS_TIMING_ADD
    - metrics_subsystem_setup
    - OIDC_METRICS_COUNTER_INC_VALUE
    - metrics_subsystem_teardown
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_with_samples)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:220,1
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/test/test_metrics.c:221,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/test/test_metrics.c:222,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/test/test_metrics.c:222,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/test/test_metrics.c:223,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/test/test_metrics.c:226,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/test/test_metrics.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: e2e_force_metrics_flush
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - apr_sleep
    - apr_time_from_msec
    - OIDC_METRICS_COUNTER_INC
    - OIDC_METRICS_TIMING_ADD
    - OIDC_METRICS_TIMING_START
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST e2e_force_metrics_flush(request_rec *r, oidc_cfg_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/mod_auth_openidc/test/test_metrics.c:231,1
    - Dst: metrics_subsystem_setup
      Src: /src/mod_auth_openidc/test/test_metrics.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: e2e_metrics_setup_flushed
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - metrics_subsystem_setup
    - setenv
    linkageType: ''
    returnType: void
    signature: void e2e_metrics_setup_flushed(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: metrics_subsystem_teardown
      Src: /src/mod_auth_openidc/test/test_metrics.c:236,1
    - Dst: unsetenv
      Src: /src/mod_auth_openidc/test/test_metrics.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: e2e_metrics_teardown_flushed
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - metrics_subsystem_teardown
    - unsetenv
    linkageType: ''
    returnType: void
    signature: void e2e_metrics_teardown_flushed(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:245,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:246,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:247,1
    - Dst: e2e_force_metrics_flush
      Src: /src/mod_auth_openidc/test/test_metrics.c:248,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:251,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:252,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 244
    functionDepth: 5
    functionLinenumber: 244
    functionLinenumberEnd: 255
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_metrics_teardown_flushed
    - ck_assert_int_eq
    - e2e_force_metrics_flush
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metrics_handle_request_flushed_prometheus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:259,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:260,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:261,1
    - Dst: e2e_force_metrics_flush
      Src: /src/mod_auth_openidc/test/test_metrics.c:262,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:265,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:266,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 256
    functionDepth: 5
    functionLinenumber: 256
    functionLinenumberEnd: 269
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_metrics_teardown_flushed
    - ck_assert_int_eq
    - e2e_force_metrics_flush
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_flushed_json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:273,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:274,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:275,1
    - Dst: e2e_force_metrics_flush
      Src: /src/mod_auth_openidc/test/test_metrics.c:276,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:280,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:281,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 270
    functionDepth: 5
    functionLinenumber: 270
    functionLinenumberEnd: 284
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_metrics_teardown_flushed
    - ck_assert_int_eq
    - e2e_force_metrics_flush
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_flushed_internal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:288,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:289,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:290,1
    - Dst: e2e_force_metrics_flush
      Src: /src/mod_auth_openidc/test/test_metrics.c:291,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:294,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:295,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 298
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_metrics_teardown_flushed
    - ck_assert_int_eq
    - e2e_force_metrics_flush
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_flushed_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:302,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:303,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:304,1
    - Dst: e2e_force_metrics_flush
      Src: /src/mod_auth_openidc/test/test_metrics.c:305,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:311,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:312,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 5
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_metrics_teardown_flushed
    - ck_assert_int_eq
    - e2e_force_metrics_flush
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_flushed_status_counter_selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:319,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:320,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:321,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/test/test_metrics.c:323,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/test/test_metrics.c:324,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/test/test_metrics.c:324,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:329,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:330,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 333
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - apr_sleep
    - oidc_metrics_handle_request
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_time_from_msec
    - e2e_metrics_teardown_flushed
    - OIDC_METRICS_COUNTER_INC_VALUE
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_flushed_status_counter_with_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:338,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:339,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:340,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/test/test_metrics.c:341,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:344,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:344,1
    - Dst: metrics_json_wait_for
      Src: /src/mod_auth_openidc/test/test_metrics.c:344,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:347,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:348,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:352,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:353,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:354,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:355,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:356,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:356,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 334
    functionDepth: 5
    functionLinenumber: 334
    functionLinenumberEnd: 360
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - e2e_metrics_teardown_flushed
    - ck_assert_msg
    - OIDC_METRICS_COUNTER_INC_VALUE
    - oidc_request_state_get
    - metrics_json_wait_for
    - _oidc_strstr
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_flushed_reset_nested_counter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:365,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:366,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:367,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/test/test_metrics.c:368,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/test/test_metrics.c:369,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:372,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:372,1
    - Dst: metrics_json_wait_for
      Src: /src/mod_auth_openidc/test/test_metrics.c:372,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:375,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:376,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:377,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:378,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:379,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:379,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 361
    functionDepth: 5
    functionLinenumber: 361
    functionLinenumberEnd: 383
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - e2e_metrics_teardown_flushed
    - ck_assert_msg
    - OIDC_METRICS_COUNTER_INC_VALUE
    - oidc_request_state_get
    - metrics_json_wait_for
    - _oidc_strstr
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_flushed_counter_inc_twice_before_flush)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:394,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:394,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:395,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:396,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/test/test_metrics.c:398,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/test/test_metrics.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - r
    - needle
    - max_ms
    argTypes:
    - request_rec*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 402
    functionName: metrics_json_wait_for
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 2
    functionsReached:
    - oidc_metrics_handle_request
    - apr_sleep
    - apr_time_from_msec
    - oidc_request_state_get
    - ck_assert_int_eq
    - _oidc_strstr
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *metrics_json_wait_for(request_rec *r, const char *needle,
      int max_ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:409,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:410,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:411,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:416,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metrics.c:417,1
    - Dst: oidc_cmd_metrics_hook_data_set
      Src: /src/mod_auth_openidc/test/test_metrics.c:417,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:418,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metrics.c:419,1
    - Dst: oidc_cmd_metrics_hook_data_set
      Src: /src/mod_auth_openidc/test/test_metrics.c:419,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:423,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/test/test_metrics.c:424,1
    - Dst: OIDC_METRICS_COUNTER_INC_NAME_VALUE
      Src: /src/mod_auth_openidc/test/test_metrics.c:425,1
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/test/test_metrics.c:426,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/test/test_metrics.c:427,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/test/test_metrics.c:427,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/test/test_metrics.c:428,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:430,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:430,1
    - Dst: metrics_json_wait_for
      Src: /src/mod_auth_openidc/test/test_metrics.c:430,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:436,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/test/test_metrics.c:437,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/test/test_metrics.c:438,1
    - Dst: OIDC_METRICS_COUNTER_INC_NAME_VALUE
      Src: /src/mod_auth_openidc/test/test_metrics.c:439,1
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/test/test_metrics.c:440,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/test/test_metrics.c:441,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/test/test_metrics.c:441,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/test/test_metrics.c:442,1
    - Dst: metrics_json_wait_for
      Src: /src/mod_auth_openidc/test/test_metrics.c:444,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:445,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:446,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:446,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:452,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:452,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:453,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:454,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:455,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:455,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:456,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:456,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:457,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:457,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:458,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:458,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:464,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:464,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:465,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:466,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:467,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:467,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:472,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:472,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 408
    functionDepth: 5
    functionLinenumber: 408
    functionLinenumberEnd: 475
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - _oidc_strstr
    - oidc_metrics_handle_request
    - oidc_test_cfg_get
    - ck_assert_msg
    - ck_assert_ptr_null
    - OIDC_METRICS_COUNTER_INC_VALUE
    - metrics_json_wait_for
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_cmd_get
    - OIDC_METRICS_TIMING_START
    - OIDC_METRICS_TIMING_ADD
    - OIDC_METRICS_COUNTER_INC_NAME_VALUE
    - e2e_metrics_teardown_flushed
    - oidc_request_state_get
    - oidc_cmd_metrics_hook_data_set
    - apr_sleep
    - e2e_metrics_setup_flushed
    - apr_time_from_msec
    - OIDC_METRICS_COUNTER_INC
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_metrics_flushed_twice_updates_entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:480,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:481,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:482,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:484,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metrics.c:485,1
    - Dst: oidc_cmd_metrics_hook_data_set
      Src: /src/mod_auth_openidc/test/test_metrics.c:485,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:486,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_metrics.c:487,1
    - Dst: oidc_cmd_metrics_hook_data_set
      Src: /src/mod_auth_openidc/test/test_metrics.c:487,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:489,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:490,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:491,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:492,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:493,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:494,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:495,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:496,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:497,1
    - Dst: oidc_metrics_timing_add
      Src: /src/mod_auth_openidc/test/test_metrics.c:498,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/test/test_metrics.c:498,1
    - Dst: oidc_metrics_timing_add
      Src: /src/mod_auth_openidc/test/test_metrics.c:499,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/test/test_metrics.c:499,1
    - Dst: metrics_json_wait_for
      Src: /src/mod_auth_openidc/test/test_metrics.c:501,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:502,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:505,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:505,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:506,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:507,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:508,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:508,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:509,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:509,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:510,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:510,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:511,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:511,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:512,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:512,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:513,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:513,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:514,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:514,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:515,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:515,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:516,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:516,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_metrics.c:517,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_metrics.c:517,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 476
    functionDepth: 5
    functionLinenumber: 476
    functionLinenumberEnd: 520
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_metrics_timing_add
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - apr_time_from_msec
    - OIDC_METRICS_COUNTER_INC
    - _oidc_strstr
    - e2e_metrics_teardown_flushed
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_cmd_metrics_hook_data_set
    - metrics_json_wait_for
    - oidc_request_state_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_flushed_gap_counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:525,1
    - Dst: setenv
      Src: /src/mod_auth_openidc/test/test_metrics.c:526,1
    - Dst: metrics_subsystem_setup
      Src: /src/mod_auth_openidc/test/test_metrics.c:527,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:529,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:529,1
    - Dst: metrics_subsystem_teardown
      Src: /src/mod_auth_openidc/test/test_metrics.c:530,1
    - Dst: unsetenv
      Src: /src/mod_auth_openidc/test/test_metrics.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 521
    functionDepth: 4
    functionLinenumber: 521
    functionLinenumberEnd: 532
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - oidc_test_request_get
    - setenv
    - unsetenv
    - metrics_subsystem_setup
    - metrics_subsystem_teardown
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_shm_size_env_out_of_bounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:537,1
    - Dst: metrics_subsystem_setup
      Src: /src/mod_auth_openidc/test/test_metrics.c:538,1
    - Dst: oidc_metrics_timing_add
      Src: /src/mod_auth_openidc/test/test_metrics.c:540,1
    - Dst: oidc_metrics_timing_add
      Src: /src/mod_auth_openidc/test/test_metrics.c:545,1
    - Dst: oidc_metrics_timing_add
      Src: /src/mod_auth_openidc/test/test_metrics.c:546,1
    - Dst: metrics_subsystem_teardown
      Src: /src/mod_auth_openidc/test/test_metrics.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 549
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - metrics_subsystem_setup
    - oidc_test_request_get
    - metrics_subsystem_teardown
    - oidc_metrics_timing_add
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_timing_negative_and_overflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:556,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:557,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:558,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/test/test_metrics.c:561,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:562,1
    - Dst: metrics_json_wait_for
      Src: /src/mod_auth_openidc/test/test_metrics.c:562,1
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/test/test_metrics.c:565,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/test/test_metrics.c:566,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/test/test_metrics.c:566,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/test/test_metrics.c:567,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_metrics.c:568,1
    - Dst: metrics_json_wait_for
      Src: /src/mod_auth_openidc/test/test_metrics.c:568,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 550
    functionDepth: 5
    functionLinenumber: 550
    functionLinenumberEnd: 571
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - apr_sleep
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_time_from_msec
    - OIDC_METRICS_COUNTER_INC
    - OIDC_METRICS_TIMING_START
    - OIDC_METRICS_TIMING_ADD
    - e2e_metrics_teardown_flushed
    - metrics_json_wait_for
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_flushed_staggered_families)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:575,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:576,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:577,1
    - Dst: e2e_force_metrics_flush
      Src: /src/mod_auth_openidc/test/test_metrics.c:578,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:583,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:584,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 572
    functionDepth: 5
    functionLinenumber: 572
    functionLinenumberEnd: 587
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_metrics_teardown_flushed
    - ck_assert_int_eq
    - e2e_force_metrics_flush
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_flushed_status_unknown_counter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:591,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_metrics.c:592,1
    - Dst: e2e_metrics_setup_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:593,1
    - Dst: e2e_force_metrics_flush
      Src: /src/mod_auth_openidc/test/test_metrics.c:594,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/test/test_metrics.c:598,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_metrics.c:599,1
    - Dst: e2e_metrics_teardown_flushed
      Src: /src/mod_auth_openidc/test/test_metrics.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 588
    functionDepth: 5
    functionLinenumber: 588
    functionLinenumberEnd: 602
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_handle_request
    - e2e_metrics_setup_flushed
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_metrics_teardown_flushed
    - ck_assert_int_eq
    - e2e_force_metrics_flush
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_metrics_handle_request_flushed_status_unknown_server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_metrics.c:606,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_metrics.c:607,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:608,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:609,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:610,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:611,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:612,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:613,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_metrics.c:615,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_metrics.c:616,1
    - Dst: tcase_set_timeout
      Src: /src/mod_auth_openidc/test/test_metrics.c:617,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:618,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:619,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:620,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:621,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:622,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:623,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_metrics.c:625,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_metrics.c:626,1
    - Dst: tcase_set_timeout
      Src: /src/mod_auth_openidc/test/test_metrics.c:627,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:628,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:629,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:630,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:631,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:632,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:633,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:634,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:635,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:636,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:637,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:638,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:639,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:640,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:641,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_metrics.c:642,1
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_metrics.c:644,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_metrics.c:645,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_metrics.c:646,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_metrics.c:647,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_metrics.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 650
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_metrics.c
    functionUses: 0
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_set_timeout
    - tcase_add_checked_fixture
    - tcase_add_test
    - suite_add_tcase
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:68,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:69,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/test_handle.c:72,1
    - Dst: oidc_userinfo_retrieve_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:76,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:77,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:78,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_create
    - oidc_userinfo_retrieve_claims
    - ck_assert_ptr_null
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_userinfo_retrieve_no_endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:84,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:85,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:86,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:88,1
    - Dst: oidc_userinfo_retrieve_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:93,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:94,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 96
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_userinfo_retrieve_claims
    - ck_assert_ptr_null
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_retrieve_no_access_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:100,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:101,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:102,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:107,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:108,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:109,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:109,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:110,1
    - Dst: oidc_userinfo_retrieve_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:114,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:115,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:116,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:117,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:118,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:118,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:118,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:120,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:121,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 123
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - apr_pstrdup
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_json_object_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_userinfo_retrieve_claims
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_retrieve_success_no_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:127,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:128,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:129,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:133,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:134,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:135,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:135,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:136,1
    - Dst: oidc_userinfo_retrieve_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:141,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:142,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:143,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:145,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 147
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_test_http_server_stop
    - oidc_userinfo_retrieve_claims
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_retrieve_failure_no_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:151,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:152,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:153,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:155,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:156,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:162,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:163,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:164,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:164,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:165,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_handle.c:168,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:169,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:170,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:171,1
    - Dst: oidc_userinfo_retrieve_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:176,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:177,1
    - Dst: oidc_cache_get_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:180,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:181,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:183,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:184,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 186
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_free_port
    - oidc_test_http_server_wait
    - oidc_session_set_refresh_token
    - oidc_cache_get_refresh_token
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_userinfo_retrieve_claims
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - oidc_session_free
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_retrieve_non_401_no_refresh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:191,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:192,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:193,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:195,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:196,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_handle.c:198,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:199,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:200,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:201,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:202,1
    - Dst: oidc_userinfo_retrieve_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:207,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:208,1
    - Dst: oidc_cache_get_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:211,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:212,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 215
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_free_port
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_userinfo_retrieve_claims
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_session_set_refresh_token
    - apr_psprintf
    - ck_assert_ptr_null
    - oidc_cache_get_refresh_token
    - oidc_session_free
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_retrieve_connectivity_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:221,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:222,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:223,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:225,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:226,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:227,1
    - Dst: oidc_session_set_idtoken_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:228,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_handle.c:235,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:236,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:237,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:237,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:244,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:245,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:246,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:246,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:247,1
    - Dst: oidc_cfg_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_handle.c:248,1
    - Dst: oidc_userinfo_retrieve_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:253,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:254,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:255,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:256,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:256,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:256,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:257,1
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/test_handle.c:257,1
    - Dst: oidc_test_http_server_captured
      Src: /src/mod_auth_openidc/test/test_handle.c:259,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:260,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:261,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:262,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:263,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:263,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:265,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:266,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:267,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:268,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 270
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_session_set_refresh_token
    - oidc_json_string_value
    - _oidc_strstr
    - json_pack
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_test_http_server_start_seq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_captured
    - oidc_session_set_idtoken_claims
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_json_decref
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_cfg_provider_scope_set
    - oidc_json_object_get
    - oidc_userinfo_retrieve_claims
    - oidc_test_http_server_request_count
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_retrieve_refresh_and_retry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:275,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:276,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:277,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:279,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:280,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:284,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:285,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:286,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:286,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:287,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_handle.c:289,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:290,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:291,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:292,1
    - Dst: oidc_userinfo_retrieve_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:297,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:298,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:300,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:301,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 303
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_free_port
    - oidc_test_http_server_wait
    - oidc_session_set_refresh_token
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_userinfo_retrieve_claims
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - oidc_session_free
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_retrieve_refresh_fails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:308,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:309,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:310,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:312,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:313,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_handle.c:319,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:320,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:321,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:321,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:327,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:328,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:329,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:329,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:330,1
    - Dst: oidc_cfg_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_handle.c:331,1
    - Dst: oidc_userinfo_retrieve_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:336,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:337,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:338,1
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/test_handle.c:338,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:340,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:341,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 343
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_session_set_refresh_token
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_test_http_server_start_seq
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_cfg_provider_scope_set
    - oidc_userinfo_retrieve_claims
    - oidc_test_http_server_request_count
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_retrieve_retry_fails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:347,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:348,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:349,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:351,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:353,1
    - Dst: oidc_userinfo_store_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:354,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:356,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:357,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:358,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:358,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:358,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:359,1
    - Dst: oidc_session_get_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:359,1
    - Dst: oidc_userinfo_store_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:362,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:363,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:363,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:364,1
    - Dst: oidc_session_get_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:364,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:366,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 368
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - oidc_test_request_get
    - oidc_userinfo_store_claims
    - oidc_json_decref
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_str_eq
    - oidc_json_object_get
    - oidc_session_free
    - ck_assert_ptr_null
    - oidc_session_get_userinfo_claims
    - json_pack
    - oidc_session_get_userinfo_jwt
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_store_and_clear_claims)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:372,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:373,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:375,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:379,1
    - Dst: oidc_userinfo_refresh_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:379,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:380,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 383
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_userinfo_refresh_claims
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_refresh_no_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:389,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:390,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:391,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:396,1
    - Dst: oidc_session_set_userinfo_refresh_interval
      Src: /src/mod_auth_openidc/test/test_handle.c:397,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:398,1
    - Dst: oidc_userinfo_refresh_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:398,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:399,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:400,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:404,1
    - Dst: oidc_session_set_userinfo_refresh_interval
      Src: /src/mod_auth_openidc/test/test_handle.c:405,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:406,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:406,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:407,1
    - Dst: oidc_userinfo_refresh_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:407,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:408,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:409,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:413,1
    - Dst: oidc_session_set_userinfo_refresh_interval
      Src: /src/mod_auth_openidc/test/test_handle.c:414,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:415,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:415,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:416,1
    - Dst: oidc_session_reset_userinfo_last_refresh
      Src: /src/mod_auth_openidc/test/test_handle.c:417,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:418,1
    - Dst: oidc_userinfo_refresh_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:418,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:419,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 421
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_session_set_issuer
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_cfg_provider_issuer_get
    - oidc_session_reset_userinfo_last_refresh
    - ck_assert_int_eq
    - oidc_session_set_userinfo_refresh_interval
    - oidc_session_free
    - oidc_userinfo_refresh_claims
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_refresh_claims_short_circuits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:427,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:428,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:430,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:432,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:433,1
    - Dst: oidc_session_set_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:434,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:436,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:437,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:438,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:438,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:438,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:442,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:443,1
    - Dst: oidc_session_set_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:447,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:448,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:449,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:451,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 453
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_test_cmd_get
    - oidc_session_load
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cmd_dir_pass_userinfo_as_set
    - oidc_session_set_userinfo_claims
    - oidc_session_set_userinfo_jwt
    - oidc_userinfo_pass_as
    - ck_assert_ptr_null
    - ck_assert_table_unset
    - json_pack
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_pass_as_jwt_negatives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:458,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:459,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:461,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:463,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:464,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:466,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:467,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:468,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:468,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:468,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:470,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:471,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:472,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:473,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:475,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 477
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_test_cmd_get
    - oidc_session_load
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cmd_dir_pass_userinfo_as_set
    - oidc_session_set_userinfo_claims
    - oidc_userinfo_pass_as
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - json_pack
    - oidc_session_free
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_pass_as_claims)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:483,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:484,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:486,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:488,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:489,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:491,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:492,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:493,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:493,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:493,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:494,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:495,1
    - Dst: oidc_cmd_dir_userinfo_claims_expr_set
      Src: /src/mod_auth_openidc/test/test_handle.c:495,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:497,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:498,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:498,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:499,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:501,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 503
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_test_cmd_get
    - oidc_session_load
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cmd_dir_pass_userinfo_as_set
    - oidc_session_set_userinfo_claims
    - oidc_userinfo_pass_as
    - ck_assert_ptr_null
    - oidc_cmd_dir_userinfo_claims_expr_set
    - ck_assert_table_unset
    - json_pack
    - oidc_session_free
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_userinfo_pass_as_jq_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:508,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:509,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:511,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:513,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:514,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:516,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:517,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:518,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:518,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:518,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:519,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:520,1
    - Dst: oidc_cmd_dir_userinfo_claims_expr_set
      Src: /src/mod_auth_openidc/test/test_handle.c:520,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:522,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:523,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:525,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 527
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_test_cmd_get
    - oidc_session_load
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cmd_dir_pass_userinfo_as_set
    - oidc_session_set_userinfo_claims
    - oidc_userinfo_pass_as
    - ck_assert_ptr_null
    - oidc_cmd_dir_userinfo_claims_expr_set
    - ck_assert_table_unset
    - json_pack
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_pass_as_jq_filter_invalid_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:533,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:534,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:536,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:538,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:538,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:539,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:540,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_handle.c:540,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:541,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:541,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:543,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:544,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:546,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:547,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:548,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:548,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:548,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:550,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:551,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:552,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:554,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:554,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:556,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 558
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - apr_table_set
    - json_pack
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_session_set_userinfo_claims
    - oidc_userinfo_pass_as
    - ck_assert_ptr_null
    - oidc_cmd_private_keys_set
    - ck_assert_ptr_nonnull
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_json_decref
    - oidc_session_load
    - getenv
    - apr_pstrdup
    - oidc_cmd_dir_pass_userinfo_as_set
    - apr_psprintf
    - oidc_session_free
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_userinfo_pass_as_signed_jwt_fixed_ttl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:562,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:563,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:565,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:568,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 571
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_userinfo_pass_as
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_pass_as_no_claims)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:581,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:582,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:583,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:585,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:588,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:588,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 591
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_refresh_token_grant
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_grant_no_refresh_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:595,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:596,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:597,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:599,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:600,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:606,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:607,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:608,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:608,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:609,1
    - Dst: oidc_cfg_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_handle.c:610,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:613,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:613,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:614,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:615,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:616,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:616,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:617,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:617,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:619,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:620,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:620,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:621,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:621,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:623,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 625
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - oidc_refresh_token_grant
    - oidc_session_set_refresh_token
    - _oidc_strstr
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_msg
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_scope_set
    - oidc_session_get_access_token
    - oidc_session_get_refresh_token
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_grant_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:629,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:630,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:631,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:633,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:634,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:638,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:639,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:640,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:640,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:641,1
    - Dst: oidc_cfg_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_handle.c:642,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:644,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:644,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:646,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:647,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 649
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_refresh_token_grant
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_cfg_provider_scope_set
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_session_set_refresh_token
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_int_eq
    - oidc_session_free
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_grant_failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:653,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:654,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:656,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:660,1
    - Dst: oidc_refresh_access_token_before_expiry
      Src: /src/mod_auth_openidc/test/test_handle.c:660,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 663
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_refresh_access_token_before_expiry
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_before_expiry_ttl_negative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:667,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:668,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:670,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:674,1
    - Dst: oidc_refresh_access_token_before_expiry
      Src: /src/mod_auth_openidc/test/test_handle.c:674,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 677
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_refresh_access_token_before_expiry
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_before_expiry_no_expiry_stored)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:681,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:682,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:684,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:686,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:690,1
    - Dst: oidc_refresh_access_token_before_expiry
      Src: /src/mod_auth_openidc/test/test_handle.c:690,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 693
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_refresh_access_token_before_expiry
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_access_token_expires
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_before_expiry_no_refresh_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:706,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/test/test_handle.c:707,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:708,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 710
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    - oidc_response_make_sid_iss_unique
    - oidc_test_request_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_make_sid_iss_unique)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:714,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:718,1
    - Dst: oidc_response_post_preserve_javascript
      Src: /src/mod_auth_openidc/test/test_handle.c:718,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:720,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 722
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ck_assert_ptr_null
    - oidc_response_post_preserve_javascript
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_post_preserve_disabled_by_default)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:726,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:727,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:728,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:730,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_handle.c:733,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:734,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:735,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:735,1
    - Dst: oidc_response_save_in_session
      Src: /src/mod_auth_openidc/test/test_handle.c:737,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:740,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:741,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:742,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:742,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:743,1
    - Dst: oidc_session_get_access_token_type
      Src: /src/mod_auth_openidc/test/test_handle.c:743,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:744,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:744,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:745,1
    - Dst: oidc_session_get_scope
      Src: /src/mod_auth_openidc/test/test_handle.c:745,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:746,1
    - Dst: oidc_session_get_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:746,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:747,1
    - Dst: oidc_session_get_original_url
      Src: /src/mod_auth_openidc/test/test_handle.c:747,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:749,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:750,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:750,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:752,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 754
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - apr_time_sec
    - apr_time_now
    - _oidc_strstr
    - oidc_session_get_issuer
    - oidc_test_cfg_get
    - ck_assert_msg
    - oidc_response_save_in_session
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_session_get_access_token_type
    - oidc_session_get_access_token
    - oidc_session_get_refresh_token
    - apr_pstrdup
    - oidc_jwt_destroy
    - ck_assert_int_eq
    - oidc_session_get_original_url
    - oidc_session_get_scope
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_save_in_session_minimal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:758,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:759,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:760,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:762,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_handle.c:764,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:765,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:766,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:766,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:768,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:768,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:770,1
    - Dst: oidc_response_save_in_session
      Src: /src/mod_auth_openidc/test/test_handle.c:772,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:775,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:777,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:778,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:779,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:779,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:779,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:781,1
    - Dst: oidc_session_get_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:781,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:783,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:783,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:785,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:786,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 788
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_time_sec
    - apr_time_now
    - oidc_json_string_value
    - _oidc_strstr
    - json_pack
    - oidc_test_cfg_get
    - ck_assert_msg
    - oidc_response_save_in_session
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_json_string
    - oidc_session_get_userinfo_jwt
    - apr_pstrdup
    - oidc_json_object_get
    - oidc_jwt_destroy
    - ck_assert_int_eq
    - oidc_session_get_userinfo_claims
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_save_in_session_with_userinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:792,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:793,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:794,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:795,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_handle.c:798,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:799,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:800,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:800,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:801,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:801,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:805,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:806,1
    - Dst: oidc_cfg_provider_backchannel_logout_supported_get
      Src: /src/mod_auth_openidc/test/test_handle.c:806,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:807,1
    - Dst: oidc_response_save_in_session
      Src: /src/mod_auth_openidc/test/test_handle.c:807,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:811,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:811,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:812,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:813,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:816,1
    - Dst: oidc_cfg_provider_backchannel_logout_supported_set
      Src: /src/mod_auth_openidc/test/test_handle.c:816,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:818,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:819,1
    - Dst: oidc_response_save_in_session
      Src: /src/mod_auth_openidc/test/test_handle.c:819,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:823,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:824,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:824,1
    - Dst: oidc_cache_get_sid
      Src: /src/mod_auth_openidc/test/test_handle.c:827,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/test/test_handle.c:827,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:828,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:829,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 832
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_time_sec
    - oidc_cache_get_sid
    - apr_time_now
    - oidc_cfg_provider_backchannel_logout_supported_get
    - _oidc_strstr
    - oidc_test_cfg_get
    - ck_assert_msg
    - oidc_response_save_in_session
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_issuer_get
    - oidc_response_make_sid_iss_unique
    - oidc_json_string
    - oidc_cfg_provider_backchannel_logout_supported_set
    - apr_pstrdup
    - oidc_jwt_destroy
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_save_in_session_sub_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:836,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:837,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:839,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:843,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:844,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 847
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_response_authorization_redirect
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_authorization_redirect_state_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:851,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:852,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:854,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:857,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:858,1
    - Dst: oidc_cmd_default_sso_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:858,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:861,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:862,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:863,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:864,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:865,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:865,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 848
    functionDepth: 2
    functionLinenumber: 848
    functionLinenumberEnd: 868
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cmd_default_sso_url_set
    - oidc_test_cfg_get
    - oidc_response_authorization_redirect
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_session_free
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_authorization_redirect_state_mismatch_with_sso_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:872,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:873,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:875,1
    - Dst: oidc_response_authorization_post
      Src: /src/mod_auth_openidc/test/test_handle.c:880,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:881,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 884
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_response_authorization_post
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_authorization_post_non_post_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:889,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:890,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:892,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:895,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:896,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:897,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:898,1
    - Dst: oidc_response_authorization_post
      Src: /src/mod_auth_openidc/test/test_handle.c:898,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 901
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - _oidc_strlen
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_response_authorization_post
    - apr_table_set
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_authorization_post_duplicate_param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:906,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:907,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:909,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:911,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:912,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:912,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 915
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_response_authorization_redirect
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_authorization_redirect_duplicate_param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:919,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:920,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:922,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:927,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:929,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:930,1
    - Dst: oidc_response_authorization_post
      Src: /src/mod_auth_openidc/test/test_handle.c:932,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:933,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 936
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - _oidc_strlen
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_response_authorization_post
    - apr_table_set
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_authorization_post_only_response_mode_fragment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_handle.c:942,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_handle.c:943,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/test_handle.c:944,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:945,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_handle.c:946,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_handle.c:947,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_handle.c:948,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_handle.c:949,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_handle.c:951,1
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:952,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/test/test_handle.c:953,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:954,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:954,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - r
    - c
    - response_type
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 957
    functionName: e2e_build_state_cookie
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_set_state
    - oidc_proto_state_set_nonce
    - oidc_proto_state_set_response_type
    - oidc_proto_state_to_cookie
    - oidc_proto_state_set_original_method
    - oidc_state_browser_fingerprint
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - apr_table_set
    - oidc_proto_state_new
    - apr_psprintf
    - oidc_state_cookie_name
    - oidc_proto_state_set_timestamp_now
    - oidc_proto_state_set_issuer
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *e2e_build_state_cookie(request_rec *r, oidc_cfg_t *c, const
      char *response_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:960,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:961,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:963,1
    - Dst: e2e_build_state_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:965,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:967,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:968,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:969,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:970,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 973
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_response_authorization_redirect
    - e2e_build_state_cookie
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_response_authorization_redirect_error_param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:983,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_handle.c:983,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:984,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_handle.c:986,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:987,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:988,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:988,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:989,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:989,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:990,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:990,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:991,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:991,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:992,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:992,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:993,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_handle.c:993,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:994,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_handle.c:994,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:996,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:997,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1001,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_handle.c:1001,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_handle.c:1002,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1003,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:1004,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 6
    argNames:
    - r
    - issuer
    - client_id
    - sub
    - nonce
    - secret
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 1007
    functionName: e2e_sign_idtoken_hs256
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_time_sec
    - apr_time_now
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - oidc_json_string
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: "END_TEST *e2e_sign_idtoken_hs256(request_rec *r, const char *issuer,
      const char *client_id, const char *sub,\n\t\t\t\t    const char *nonce, const
      char *secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1014,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1015,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1016,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1018,1
    - Dst: oidc_cfg_provider_session_max_duration_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1023,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1025,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1027,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1028,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:1032,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1032,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1033,1
    - Dst: oidc_cache_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1034,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1034,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:1034,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1037,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1037,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1038,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1039,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1039,1
    - Dst: oidc_session_get_session_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:1041,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1042,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:1043,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1051,1
    - Dst: oidc_cache_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1052,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1052,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:1052,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1054,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1054,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1055,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1058
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_time_sec
    - apr_time_now
    - oidc_refresh_token_grant
    - oidc_session_set_refresh_token
    - oidc_test_cfg_get
    - ck_assert_msg
    - e2e_sign_idtoken_hs256
    - ck_assert_str_eq
    - oidc_cfg_provider_session_max_duration_set
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_session_get_refresh_token
    - oidc_cache_set_refresh_token
    - oidc_session_get_session_expires
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_refresh_grant_cached_results_clamps_and_id_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1064,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:1067,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1067,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1068,1
    - Dst: oidc_cache_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1069,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1069,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r
    - session
    - rt
    - id_token
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1070
    functionName: e2e_refresh_cache_seed
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_time_sec
    - apr_time_now
    - oidc_cache_set_refresh_token
    - oidc_session_set_refresh_token
    - apr_psprintf
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST e2e_refresh_cache_seed(request_rec *r, oidc_session_t *session,
      const char *rt, const char *id_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1075,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1076,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1077,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1079,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1082,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1084,1
    - Dst: e2e_refresh_cache_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:1085,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1088,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1088,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1089,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1090,1
    - Dst: oidc_session_get_idtoken_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:1092,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1093,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1094,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:1094,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1094,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1096,1
    - Dst: oidc_session_get_idtoken
      Src: /src/mod_auth_openidc/test/test_handle.c:1096,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1099
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_refresh_cache_seed
    - oidc_refresh_token_grant
    - oidc_json_object_get
    - oidc_session_get_idtoken_claims
    - e2e_sign_idtoken_hs256
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_session_free
    - oidc_session_get_idtoken
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_refresh_grant_id_token_validated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1106,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1107,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1108,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1110,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1112,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1115,1
    - Dst: e2e_refresh_cache_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:1117,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1120,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1120,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1121,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1123,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1124,1
    - Dst: oidc_session_get_idtoken_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:1124,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1125,1
    - Dst: oidc_session_get_idtoken
      Src: /src/mod_auth_openidc/test/test_handle.c:1125,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1128
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_refresh_cache_seed
    - oidc_refresh_token_grant
    - oidc_session_get_idtoken_claims
    - ck_assert_ptr_null
    - e2e_sign_idtoken_hs256
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_session_free
    - oidc_session_get_idtoken
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_grant_id_token_bad_signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1134,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1135,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1136,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1138,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1141,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/test/test_handle.c:1144,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1145,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:1145,1
    - Dst: oidc_session_set_idtoken_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:1146,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:1147,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1150,1
    - Dst: e2e_refresh_cache_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:1151,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1154,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1154,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1155,1
    - Dst: oidc_session_get_idtoken_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:1158,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1159,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1160,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:1160,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1160,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1161,1
    - Dst: oidc_session_get_idtoken
      Src: /src/mod_auth_openidc/test/test_handle.c:1161,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1164,1
    - Dst: e2e_refresh_cache_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:1165,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1167,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1167,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1168,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1171
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_refresh_token_grant
    - oidc_json_string_value
    - oidc_session_get_idtoken
    - oidc_test_cfg_get
    - e2e_refresh_cache_seed
    - oidc_session_get_idtoken_claims
    - ck_assert_ptr_null
    - e2e_sign_idtoken_hs256
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_session_set_idtoken_claims
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_json_object
    - oidc_json_string
    - oidc_json_object_get
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_grant_id_token_sub_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1178,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1179,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1180,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1182,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1185,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:1186,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:1187,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1187,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1188,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:1188,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1189,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:1189,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1190,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:1190,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1191,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_handle.c:1191,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1192,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_handle.c:1192,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_handle.c:1193,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1194,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:1195,1
    - Dst: e2e_refresh_cache_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:1197,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1200,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1200,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1201,1
    - Dst: oidc_session_get_idtoken_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:1202,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1203,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1204,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:1204,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1204,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1207,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1207,1
    - Dst: e2e_refresh_cache_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:1208,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1210,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1210,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1211,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1214
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_time_sec
    - apr_time_now
    - oidc_refresh_token_grant
    - oidc_jose_jwt_serialize
    - oidc_json_string_value
    - oidc_cfg_provider_id_token_signed_response_alg_set
    - oidc_test_cfg_get
    - e2e_refresh_cache_seed
    - oidc_session_get_idtoken_claims
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_json_string
    - apr_pstrdup
    - oidc_json_object_get
    - oidc_jwt_destroy
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_grant_id_token_unsigned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1218,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1219,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1220,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1222,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1225,1
    - Dst: oidc_cache_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1226,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1227,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:1227,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1228,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1228,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1232,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1233,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1234,1
    - Dst: oidc_cache_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1235,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1235,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:1235,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1236,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1236,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1240,1
    - Dst: oidc_cache_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1241,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1242,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/test/test_handle.c:1242,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1243,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1243,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1246,1
    - Dst: oidc_cache_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1247,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1248,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:1248,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1249,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:1249,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1252
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - apr_time_now
    - oidc_cache_set_refresh_token
    - oidc_refresh_token_grant
    - apr_time_from_msec
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_session_set_refresh_token
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_grant_cache_locks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1256,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1257,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1258,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1260,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:1264,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1267,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:1268,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1269,1
    - Dst: oidc_refresh_access_token_before_expiry
      Src: /src/mod_auth_openidc/test/test_handle.c:1269,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1270,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1273,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1274,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1275,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:1276,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1278,1
    - Dst: oidc_refresh_access_token_before_expiry
      Src: /src/mod_auth_openidc/test/test_handle.c:1278,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1279,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:1288,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1289,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1290,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:1290,1
    - Dst: oidc_cfg_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1291,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1292,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:1293,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1295,1
    - Dst: oidc_refresh_access_token_before_expiry
      Src: /src/mod_auth_openidc/test/test_handle.c:1295,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1296,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1297,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1297,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1298,1
    - Dst: oidc_session_get_scope
      Src: /src/mod_auth_openidc/test/test_handle.c:1298,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:1300,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:1301,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1303
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_refresh_access_token_before_expiry
    - oidc_test_http_server_wait
    - oidc_session_set_refresh_token
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_session_set_access_token_expires
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_scope_set
    - oidc_session_get_access_token
    - oidc_session_set_issuer
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_int_eq
    - oidc_session_get_scope
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_before_expiry_due_paths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1307,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1308,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1310,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1314,1
    - Dst: oidc_refresh_token_request
      Src: /src/mod_auth_openidc/test/test_handle.c:1314,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1317,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1319,1
    - Dst: oidc_refresh_token_request
      Src: /src/mod_auth_openidc/test/test_handle.c:1319,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1320,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1321,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:1322,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:1322,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:1325,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1326,1
    - Dst: oidc_refresh_token_request
      Src: /src/mod_auth_openidc/test/test_handle.c:1326,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1327,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1328,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:1329,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:1329,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1332
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_set_access_token
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_issuer
    - oidc_session_free
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_refresh_token_request
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_request_error_arms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1336,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1337,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1338,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1340,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1343,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1350,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1351,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:1355,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1356,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1357,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:1357,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1358,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1363,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_handle.c:1364,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/test_handle.c:1365,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:1366,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_handle.c:1367,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_handle.c:1368,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_handle.c:1369,1
    - Dst: oidc_proto_state_set_response_mode
      Src: /src/mod_auth_openidc/test/test_handle.c:1370,1
    - Dst: oidc_proto_state_set_pkce_state
      Src: /src/mod_auth_openidc/test/test_handle.c:1371,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1372,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_handle.c:1374,1
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1375,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/test/test_handle.c:1376,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1377,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1377,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:1378,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1380,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1380,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1382,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1383,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1384,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1385,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1386,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1388,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1389,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1389,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1390,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1390,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:1392,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1393,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:1394,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:1394,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:1397,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1399
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_to_cookie
    - oidc_test_http_server_wait
    - apr_table_set
    - _oidc_strstr
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_state_browser_fingerprint
    - oidc_test_http_server_stop
    - oidc_response_authorization_redirect
    - ck_assert_msg
    - e2e_sign_idtoken_hs256
    - ck_assert_str_eq
    - oidc_proto_state_set_issuer
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_proto_state_set_nonce
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - oidc_session_get_access_token
    - oidc_proto_state_new
    - oidc_proto_state_set_response_mode
    - oidc_session_get_refresh_token
    - oidc_state_cookie_name
    - oidc_http_url_encode
    - oidc_proto_state_set_state
    - oidc_proto_state_set_response_type
    - oidc_proto_state_set_pkce_state
    - ck_assert_int_eq
    - oidc_proto_state_set_original_method
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - oidc_proto_state_set_timestamp_now
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_authorization_redirect_code_flow_happy_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1403,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1404,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1405,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1407,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1411,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1415,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_handle.c:1416,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/test_handle.c:1417,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:1418,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_handle.c:1419,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_handle.c:1420,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_handle.c:1421,1
    - Dst: oidc_proto_state_set_response_mode
      Src: /src/mod_auth_openidc/test/test_handle.c:1422,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1423,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_handle.c:1425,1
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1426,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/test/test_handle.c:1427,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1428,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1428,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:1429,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1431,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1432,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1432,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1433,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1435,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1436,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1437,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1438,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1439,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1440,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1442,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1444,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1445,1
    - Dst: oidc_session_get_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:1445,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1448
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_to_cookie
    - apr_table_set
    - apr_table_get
    - oidc_session_get_issuer
    - oidc_test_cfg_get
    - oidc_state_browser_fingerprint
    - oidc_response_authorization_redirect
    - e2e_sign_idtoken_hs256
    - ck_assert_str_eq
    - oidc_proto_state_set_issuer
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_proto_state_set_nonce
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - oidc_proto_state_new
    - oidc_proto_state_set_response_mode
    - oidc_state_cookie_name
    - oidc_http_url_encode
    - oidc_proto_state_set_state
    - oidc_proto_state_set_response_type
    - ck_assert_int_eq
    - oidc_proto_state_set_original_method
    - apr_psprintf
    - oidc_proto_state_set_timestamp_now
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_authorization_redirect_idtoken_happy_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1452,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1453,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1455,1
    - Dst: e2e_build_state_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1459,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1460,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1460,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1461,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1462,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1465
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_response_authorization_redirect
    - e2e_build_state_cookie
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_authorization_redirect_unknown_response_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1476,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_handle.c:1477,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/test_handle.c:1478,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:1479,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_handle.c:1480,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_handle.c:1481,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_handle.c:1482,1
    - Dst: oidc_proto_state_set_response_mode
      Src: /src/mod_auth_openidc/test/test_handle.c:1483,1
    - Dst: oidc_proto_state_set_prompt
      Src: /src/mod_auth_openidc/test/test_handle.c:1485,1
    - Dst: oidc_proto_state_set_auth_request_params
      Src: /src/mod_auth_openidc/test/test_handle.c:1486,1
    - Dst: oidc_proto_state_set_path_scope
      Src: /src/mod_auth_openidc/test/test_handle.c:1487,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1488,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_handle.c:1490,1
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1491,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/test/test_handle.c:1492,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1493,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1493,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:1494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 8
    argNames:
    - r
    - c
    - response_type
    - response_mode
    - nonce
    - prompt
    - original_method
    - issuer
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1473
    functionDepth: 1
    functionLinenumber: 1473
    functionLinenumberEnd: 1496
    functionName: e2e_implicit_state_cookie_mode
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_set_state
    - oidc_proto_state_set_nonce
    - oidc_proto_state_set_response_type
    - oidc_proto_state_to_cookie
    - oidc_proto_state_set_original_method
    - oidc_state_browser_fingerprint
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - oidc_proto_state_set_prompt
    - apr_table_set
    - oidc_proto_state_new
    - oidc_proto_state_set_response_mode
    - oidc_proto_state_set_auth_request_params
    - apr_psprintf
    - oidc_state_cookie_name
    - oidc_proto_state_set_timestamp_now
    - oidc_proto_state_set_path_scope
    - oidc_proto_state_set_issuer
    linkageType: ''
    returnType: char
    signature: "char *e2e_implicit_state_cookie_mode(request_rec *r, oidc_cfg_t *c,
      const char *response_type,\n\t\t\t\t\t    const char *response_mode, const char
      *nonce, const char *prompt,\n\t\t\t\t\t    const char *original_method, const
      char *issuer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e2e_implicit_state_cookie_mode
      Src: /src/mod_auth_openidc/test/test_handle.c:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - r
    - c
    - response_type
    - nonce
    - prompt
    - original_method
    - issuer
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1498
    functionDepth: 2
    functionLinenumber: 1498
    functionLinenumberEnd: 1502
    functionName: e2e_implicit_state_cookie
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_implicit_state_cookie_mode
    linkageType: ''
    returnType: char
    signature: "char *e2e_implicit_state_cookie(request_rec *r, oidc_cfg_t *c, const
      char *response_type, const char *nonce,\n\t\t\t\t       const char *prompt,
      const char *original_method, const char *issuer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1510,1
    - Dst: oidc_jose_hash_string
      Src: /src/mod_auth_openidc/test/test_handle.c:1510,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_handle.c:1511,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1512,1
    - Dst: oidc_jose_hash_length
      Src: /src/mod_auth_openidc/test/test_handle.c:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1515
    functionName: e2e_half_hash_b64url
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 1
    functionsReached:
    - ck_assert_int_gt
    - oidc_jose_hash_length
    - oidc_util_base64url_encode
    - ck_assert_int_eq
    - oidc_jose_hash_string
    linkageType: ''
    returnType: char
    signature: char *e2e_half_hash_b64url(request_rec *r, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1523,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_handle.c:1523,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1525,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:1526,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:1527,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1527,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1528,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:1528,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1529,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:1529,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1530,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:1530,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1531,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:1531,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1532,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_handle.c:1532,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1533,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_handle.c:1533,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1535,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:1536,1
    - Dst: e2e_half_hash_b64url
      Src: /src/mod_auth_openidc/test/test_handle.c:1536,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1538,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:1539,1
    - Dst: e2e_half_hash_b64url
      Src: /src/mod_auth_openidc/test/test_handle.c:1539,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:1540,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:1541,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1545,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_handle.c:1545,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_handle.c:1546,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1547,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:1548,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:1549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 5
    argNames:
    - r
    - secret
    - nonce
    - code
    - access_token
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1551
    functionName: e2e_sign_hybrid_idtoken_handle
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - apr_time_sec
    - oidc_json_object_set_new
    - apr_time_now
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - e2e_half_hash_b64url
    - oidc_json_string
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: char
    signature: "char *e2e_sign_hybrid_idtoken_handle(request_rec *r, const char *secret,
      const char *nonce, const char *code,\n\t\t\t\t\t    const char *access_token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1556,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1557,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1558,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1560,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1563,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1564,1
    - Dst: oidc_cfg_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1564,1
    - Dst: oidc_cfg_provider_check_session_iframe_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1566,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:1570,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1571,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1572,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:1572,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1573,1
    - Dst: e2e_implicit_state_cookie_mode
      Src: /src/mod_auth_openidc/test/test_handle.c:1575,1
    - Dst: e2e_sign_hybrid_idtoken_handle
      Src: /src/mod_auth_openidc/test/test_handle.c:1577,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1578,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1580,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1580,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:1581,1
    - Dst: oidc_response_authorization_post
      Src: /src/mod_auth_openidc/test/test_handle.c:1583,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1584,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1585,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:1587,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:1588,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1590
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - oidc_test_http_server_wait
    - e2e_implicit_state_cookie_mode
    - oidc_cfg_provider_pkce_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - e2e_sign_hybrid_idtoken_handle
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_cfg_provider_check_session_iframe_set
    - oidc_http_url_encode
    - oidc_response_authorization_post
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_response_hybrid_code_idtoken_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1595,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1596,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1597,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1599,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1602,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1603,1
    - Dst: oidc_cfg_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1603,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:1608,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1609,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1610,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:1610,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1611,1
    - Dst: e2e_implicit_state_cookie_mode
      Src: /src/mod_auth_openidc/test/test_handle.c:1613,1
    - Dst: e2e_sign_hybrid_idtoken_handle
      Src: /src/mod_auth_openidc/test/test_handle.c:1615,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1616,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1617,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1617,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:1618,1
    - Dst: oidc_response_authorization_post
      Src: /src/mod_auth_openidc/test/test_handle.c:1620,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1621,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1622,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1623,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:1623,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:1625,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:1626,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1591
    functionDepth: 2
    functionLinenumber: 1591
    functionLinenumberEnd: 1628
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - oidc_test_http_server_wait
    - e2e_implicit_state_cookie_mode
    - oidc_cfg_provider_pkce_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - e2e_sign_hybrid_idtoken_handle
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_session_get_access_token
    - oidc_http_url_encode
    - oidc_response_authorization_post
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_hybrid_code_idtoken)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1634,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1635,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1636,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1638,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1641,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1642,1
    - Dst: oidc_cfg_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1642,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:1645,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1646,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1647,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:1647,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1648,1
    - Dst: e2e_implicit_state_cookie_mode
      Src: /src/mod_auth_openidc/test/test_handle.c:1650,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1652,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1655,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:1656,1
    - Dst: oidc_response_authorization_post
      Src: /src/mod_auth_openidc/test/test_handle.c:1658,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:1659,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:1661,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:1662,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1629
    functionDepth: 2
    functionLinenumber: 1629
    functionLinenumberEnd: 1664
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - oidc_test_http_server_wait
    - e2e_implicit_state_cookie_mode
    - oidc_cfg_provider_pkce_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_http_url_encode
    - oidc_response_authorization_post
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - oidc_session_free
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_hybrid_code_token_no_idtoken)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1670,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1671,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1672,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1674,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1677,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1678,1
    - Dst: oidc_cfg_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1678,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:1682,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1683,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1684,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:1684,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1685,1
    - Dst: e2e_implicit_state_cookie_mode
      Src: /src/mod_auth_openidc/test/test_handle.c:1687,1
    - Dst: e2e_sign_hybrid_idtoken_handle
      Src: /src/mod_auth_openidc/test/test_handle.c:1689,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1691,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1692,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1692,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:1693,1
    - Dst: oidc_response_authorization_post
      Src: /src/mod_auth_openidc/test/test_handle.c:1695,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1696,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1697,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:1699,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1700,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1701,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:1701,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1701,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:1703,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:1704,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1665
    functionDepth: 2
    functionLinenumber: 1665
    functionLinenumberEnd: 1706
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - oidc_test_http_server_wait
    - e2e_implicit_state_cookie_mode
    - oidc_json_string_value
    - oidc_cfg_provider_pkce_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - e2e_sign_hybrid_idtoken_handle
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_http_url_encode
    - oidc_response_authorization_post
    - oidc_json_object_get
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_get_userinfo_claims
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_implicit_idtoken_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1711,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1712,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1714,1
    - Dst: e2e_build_state_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1717,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1718,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1718,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1720,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1721,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1707
    functionDepth: 2
    functionLinenumber: 1707
    functionLinenumberEnd: 1724
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_response_authorization_redirect
    - e2e_build_state_cookie
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_state_expired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1730,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1731,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1733,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:1736,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1737,1
    - Dst: e2e_build_state_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1738,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1739,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1739,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1741,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:1742,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1744,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1725
    functionDepth: 2
    functionLinenumber: 1725
    functionLinenumberEnd: 1747
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_response_authorization_redirect
    - e2e_build_state_cookie
    - apr_table_set
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_state_expired_no_default_url_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1752,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1753,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1755,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_handle.c:1758,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_handle.c:1759,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/test_handle.c:1760,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:1761,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_handle.c:1762,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_handle.c:1763,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_handle.c:1764,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_handle.c:1765,1
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1766,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:1767,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1769,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1770,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/test/test_handle.c:1770,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1771,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1771,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1773,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1774,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1748
    functionDepth: 1
    functionLinenumber: 1748
    functionLinenumberEnd: 1777
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_to_cookie
    - apr_table_set
    - oidc_test_cfg_get
    - oidc_response_authorization_redirect
    - oidc_proto_state_set_issuer
    - oidc_test_request_get
    - oidc_proto_state_set_nonce
    - oidc_session_load
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - oidc_proto_state_new
    - oidc_state_cookie_name
    - oidc_http_url_encode
    - oidc_proto_state_set_state
    - oidc_proto_state_set_response_type
    - oidc_proto_state_set_timestamp_now
    - oidc_proto_state_set_original_method
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_state_fingerprint_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1783,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1784,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1785,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1787,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1790,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1791,1
    - Dst: oidc_cfg_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1791,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_handle.c:1794,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:1795,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1796,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1797,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1798,1
    - Dst: e2e_implicit_state_cookie_mode
      Src: /src/mod_auth_openidc/test/test_handle.c:1800,1
    - Dst: e2e_sign_hybrid_idtoken_handle
      Src: /src/mod_auth_openidc/test/test_handle.c:1802,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1803,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1804,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1804,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:1805,1
    - Dst: oidc_response_authorization_post
      Src: /src/mod_auth_openidc/test/test_handle.c:1807,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:1808,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1778
    functionDepth: 2
    functionLinenumber: 1778
    functionLinenumberEnd: 1811
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_pkce_set
    - e2e_post_body
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_free_port
    - oidc_response_authorization_post
    - e2e_sign_hybrid_idtoken_handle
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_ptr_null
    - apr_psprintf
    - e2e_implicit_state_cookie_mode
    - oidc_http_url_encode
    - oidc_session_free
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_hybrid_token_endpoint_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1816,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1817,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1818,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1820,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1823,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:1827,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:1828,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1829,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:1829,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1830,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1831,1
    - Dst: oidc_cfg_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1831,1
    - Dst: e2e_build_state_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1833,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1834,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1834,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1836,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1837,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:1839,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:1840,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1812
    functionDepth: 2
    functionLinenumber: 1812
    functionLinenumberEnd: 1842
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - oidc_cfg_provider_pkce_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_response_authorization_redirect
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - e2e_build_state_cookie
    - oidc_http_url_encode
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_code_flow_no_idtoken)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1847,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1848,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1849,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1851,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1854,1
    - Dst: e2e_implicit_state_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1857,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1859,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1860,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1860,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1861,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1863,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1864,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1843
    functionDepth: 3
    functionLinenumber: 1843
    functionLinenumberEnd: 1867
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - oidc_response_authorization_redirect
    - apr_psprintf
    - e2e_implicit_state_cookie
    - e2e_sign_idtoken_hs256
    - oidc_http_url_encode
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_remote_user_claim_missing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1872,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1873,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1874,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1876,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:1877,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1880,1
    - Dst: e2e_implicit_state_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1882,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1885,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1886,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1886,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1887,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1889,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:1890,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1868
    functionDepth: 3
    functionLinenumber: 1868
    functionLinenumberEnd: 1893
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_response_authorization_redirect
    - apr_psprintf
    - e2e_implicit_state_cookie
    - e2e_sign_idtoken_hs256
    - oidc_http_url_encode
    - oidc_session_free
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_prompt_none_user_changed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1898,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1899,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1900,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1902,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1906,1
    - Dst: e2e_implicit_state_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1908,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1911,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1912,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1912,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1913,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1915,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1916,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1917,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1894
    functionDepth: 3
    functionLinenumber: 1894
    functionLinenumberEnd: 1920
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_response_authorization_redirect
    - apr_psprintf
    - e2e_implicit_state_cookie
    - e2e_sign_idtoken_hs256
    - oidc_http_url_encode
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_prompt_none_no_prior_user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1925,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1926,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1927,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1929,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1932,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1933,1
    - Dst: e2e_implicit_state_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1935,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1937,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1938,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1938,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1939,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1941,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1942,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1943,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1921
    functionDepth: 3
    functionLinenumber: 1921
    functionLinenumberEnd: 1946
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_response_authorization_redirect
    - apr_psprintf
    - e2e_implicit_state_cookie
    - e2e_sign_idtoken_hs256
    - oidc_http_url_encode
    - oidc_session_free
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_non_https_issuer_postfix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1951,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1952,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1953,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:1955,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1958,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:1959,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:1959,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1960,1
    - Dst: e2e_implicit_state_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:1962,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:1965,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1966,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1966,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:1967,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:1969,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1970,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1947
    functionDepth: 3
    functionLinenumber: 1947
    functionLinenumberEnd: 1973
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - oidc_response_authorization_redirect
    - apr_psprintf
    - e2e_implicit_state_cookie
    - e2e_sign_idtoken_hs256
    - oidc_http_url_encode
    - getenv
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_post_restore_template)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1978,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1979,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:1980,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:1981,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:1982,1
    - Dst: oidc_cmd_dir_preserve_post_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1982,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:1986,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:1987,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1991,1
    - Dst: oidc_response_post_preserve_javascript
      Src: /src/mod_auth_openidc/test/test_handle.c:1991,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:1994,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:1994,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:1995,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:1996,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:1997,1
    - Dst: oidc_response_post_preserve_javascript
      Src: /src/mod_auth_openidc/test/test_handle.c:1997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1974
    functionDepth: 2
    functionLinenumber: 1974
    functionLinenumberEnd: 1998
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - apr_pstrdup
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_response_post_preserve_javascript
    - oidc_test_cfg_get
    - oidc_cmd_dir_preserve_post_set
    - apr_table_set
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - getenv
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_post_preserve_javascript_legs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2005,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2006,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2008,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_handle.c:2011,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_handle.c:2012,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/test_handle.c:2013,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:2014,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_handle.c:2015,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_handle.c:2016,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_handle.c:2017,1
    - Dst: oidc_proto_state_set_response_mode
      Src: /src/mod_auth_openidc/test/test_handle.c:2018,1
    - Dst: oidc_proto_state_set_prompt
      Src: /src/mod_auth_openidc/test/test_handle.c:2019,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_handle.c:2020,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_handle.c:2021,1
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:2022,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/test/test_handle.c:2023,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2024,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:2024,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:2025,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:2029,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:2030,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:2031,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2032,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2033,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2034,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2035,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2035,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2004
    functionDepth: 1
    functionLinenumber: 2004
    functionLinenumberEnd: 2039
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_to_cookie
    - apr_table_set
    - _oidc_strstr
    - oidc_test_cfg_get
    - oidc_state_browser_fingerprint
    - oidc_response_authorization_redirect
    - ck_assert_msg
    - oidc_proto_state_set_issuer
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_proto_state_set_nonce
    - oidc_session_load
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - oidc_proto_state_new
    - oidc_proto_state_set_response_mode
    - oidc_request_state_get
    - oidc_state_cookie_name
    - oidc_http_url_encode
    - oidc_proto_state_set_state
    - oidc_proto_state_set_response_type
    - ck_assert_int_eq
    - oidc_proto_state_set_original_method
    - oidc_proto_state_set_prompt
    - apr_psprintf
    - oidc_proto_state_set_timestamp_now
    - oidc_session_free
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_response_authorization_error_prompt_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2043,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2044,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2046,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2050,1
    - Dst: oidc_session_set_request_state
      Src: /src/mod_auth_openidc/test/test_handle.c:2051,1
    - Dst: oidc_session_set_original_url
      Src: /src/mod_auth_openidc/test/test_handle.c:2052,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:2055,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2056,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2057,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2058,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2059,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2040
    functionDepth: 1
    functionLinenumber: 2040
    functionLinenumberEnd: 2062
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_request_state
    - oidc_response_authorization_redirect
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_session_set_original_url
    - oidc_session_free
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_browser_back)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2066,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:2069,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2070,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2071,1
    - Dst: oidc_cmd_dir_preserve_post_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2071,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:2072,1
    - Dst: oidc_response_post_preserve_javascript
      Src: /src/mod_auth_openidc/test/test_handle.c:2076,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2077,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2078,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2079,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2080,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2081,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2081,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2083,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2083,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2085,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2063
    functionDepth: 2
    functionLinenumber: 2063
    functionLinenumberEnd: 2087
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_response_post_preserve_javascript
    - oidc_cmd_dir_preserve_post_set
    - _oidc_strstr
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_post_preserve_javascript)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2091,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2092,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2093,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2095,1
    - Dst: oidc_cfg_provider_check_session_iframe_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2098,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2099,1
    - Dst: oidc_cmd_cookie_domain_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2099,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2099,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_handle.c:2101,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2102,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:2103,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:2103,1
    - Dst: oidc_response_save_in_session
      Src: /src/mod_auth_openidc/test/test_handle.c:2105,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2108,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2109,1
    - Dst: oidc_session_get_session_state
      Src: /src/mod_auth_openidc/test/test_handle.c:2109,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2110,1
    - Dst: oidc_session_get_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:2110,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:2112,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2088
    functionDepth: 2
    functionLinenumber: 2088
    functionLinenumberEnd: 2114
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - apr_time_sec
    - apr_time_now
    - oidc_test_cfg_get
    - oidc_cmd_cookie_domain_set
    - ck_assert_ptr_null
    - oidc_response_save_in_session
    - ck_assert_str_eq
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_check_session_iframe_set
    - apr_pstrdup
    - oidc_session_get_session_state
    - oidc_jwt_destroy
    - oidc_session_get_cookie_domain
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_save_in_session_session_mgmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2118,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2119,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2120,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2122,1
    - Dst: oidc_cfg_provider_check_session_iframe_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2126,1
    - Dst: oidc_cfg_provider_session_max_duration_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2127,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_handle.c:2129,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2130,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:2131,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:2131,1
    - Dst: oidc_response_save_in_session
      Src: /src/mod_auth_openidc/test/test_handle.c:2134,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2136,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2137,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:2139,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2115
    functionDepth: 1
    functionLinenumber: 2115
    functionLinenumberEnd: 2141
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_test_request_get
    - apr_pstrdup
    - apr_time_sec
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - apr_time_now
    - oidc_cfg_provider_check_session_iframe_set
    - oidc_jwt_destroy
    - oidc_response_save_in_session
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cfg_provider_session_max_duration_set
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_save_in_session_no_session_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2145,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2146,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2148,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2153,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:2155,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2156,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2159
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_response_authorization_redirect
    - apr_table_set
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_state_restore_no_cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2163,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2164,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2165,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2167,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2170,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_handle.c:2174,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_handle.c:2175,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/test_handle.c:2176,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:2177,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_handle.c:2178,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_handle.c:2179,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_handle.c:2180,1
    - Dst: oidc_proto_state_set_response_mode
      Src: /src/mod_auth_openidc/test/test_handle.c:2181,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_handle.c:2182,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/test_handle.c:2184,1
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:2185,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/test/test_handle.c:2186,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2187,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:2187,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:2188,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:2190,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:2191,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:2191,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:2192,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/test_handle.c:2194,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2195,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2196,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2197,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2198,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2198,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2160
    functionDepth: 2
    functionLinenumber: 2160
    functionLinenumberEnd: 2202
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_to_cookie
    - apr_table_set
    - _oidc_strstr
    - oidc_test_cfg_get
    - oidc_state_browser_fingerprint
    - oidc_response_authorization_redirect
    - ck_assert_msg
    - e2e_sign_idtoken_hs256
    - oidc_proto_state_set_issuer
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_proto_state_set_nonce
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - oidc_proto_state_new
    - oidc_proto_state_set_response_mode
    - oidc_request_state_get
    - oidc_state_cookie_name
    - oidc_http_url_encode
    - oidc_proto_state_set_state
    - oidc_proto_state_set_response_type
    - ck_assert_int_eq
    - oidc_proto_state_set_original_method
    - apr_psprintf
    - oidc_proto_state_set_timestamp_now
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_finish_form_post_restore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2206,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2207,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2209,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:2213,1
    - Dst: oidc_response_authorization_post
      Src: /src/mod_auth_openidc/test/test_handle.c:2214,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2215,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2203
    functionDepth: 1
    functionLinenumber: 2203
    functionLinenumberEnd: 2218
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_response_authorization_post
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_response_authorization_post_state_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2228,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2229,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2232,1
    - Dst: oidc_is_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2232,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2236,1
    - Dst: oidc_is_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2236,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2240,1
    - Dst: oidc_is_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2219
    functionDepth: 1
    functionLinenumber: 2219
    functionLinenumberEnd: 2241
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - oidc_is_discovery_response
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_is_discovery_response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2245,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2246,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:2249,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2250,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2251,1
    - Dst: oidc_cmd_dir_discover_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2251,1
    - Dst: oidc_discovery_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2253,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2254,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2255,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2256,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2257,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2257,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2260,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2260,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2261,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2262
      start: 2242
    functionDepth: 2
    functionLinenumber: 2242
    functionLinenumberEnd: 2262
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_cmd_dir_discover_url_set
    - oidc_discovery_request
    - _oidc_strstr
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_request_external_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2266,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2267,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2274,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2275,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2276,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2277,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2278,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2263
    functionDepth: 1
    functionLinenumber: 2263
    functionLinenumberEnd: 2280
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_msg
    - oidc_discovery_response
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_static_provider_redirects)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2284,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2285,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2292,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2293,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2294,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2295,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2296,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2296,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2297,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2281
    functionDepth: 1
    functionLinenumber: 2281
    functionLinenumberEnd: 2299
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_msg
    - oidc_discovery_response
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_3rd_party_ignores_scopes_and_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2303,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2304,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2311,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2312,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2313,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2314,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2315,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2300
    functionDepth: 1
    functionLinenumber: 2300
    functionLinenumberEnd: 2317
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_msg
    - oidc_discovery_response
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_issuer_input_trimmed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2321,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2322,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2327,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2318
    functionDepth: 1
    functionLinenumber: 2318
    functionLinenumberEnd: 2329
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - oidc_discovery_response
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_static_provider_iss_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2333,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2334,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2339,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2330
    functionDepth: 1
    functionLinenumber: 2330
    functionLinenumberEnd: 2341
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - oidc_discovery_response
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_target_link_uri_open_redirect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2347,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2348,1
    - Dst: mkdtemp
      Src: /src/mod_auth_openidc/test/test_handle.c:2348,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2349,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2350,1
    - Dst: oidc_cmd_metadata_dir_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2342
    functionDepth: 2
    functionLinenumber: 2342
    functionLinenumberEnd: 2351
    functionName: e2e_discovery_set_empty_metadata_dir
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_cmd_get
    - mkdtemp
    - oidc_cmd_metadata_dir_set
    - ck_assert_msg
    - ck_assert_ptr_null
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST e2e_discovery_set_empty_metadata_dir(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2357,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2358,1
    - Dst: e2e_discovery_set_empty_metadata_dir
      Src: /src/mod_auth_openidc/test/test_handle.c:2359,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2364,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2356
    functionDepth: 3
    functionLinenumber: 2356
    functionLinenumberEnd: 2366
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_discovery_set_empty_metadata_dir
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_discovery_response
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_discovery_response_user_discovery_fails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2372,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2373,1
    - Dst: e2e_discovery_set_empty_metadata_dir
      Src: /src/mod_auth_openidc/test/test_handle.c:2374,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2378,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2367
    functionDepth: 3
    functionLinenumber: 2367
    functionLinenumberEnd: 2380
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_discovery_set_empty_metadata_dir
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_discovery_response
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_account_discovery_fails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2385,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2386,1
    - Dst: e2e_discovery_set_empty_metadata_dir
      Src: /src/mod_auth_openidc/test/test_handle.c:2387,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2389,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2390,1
    - Dst: oidc_cmd_discover_issuers_allowed_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2390,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2394,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2381
    functionDepth: 3
    functionLinenumber: 2381
    functionLinenumberEnd: 2396
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_discovery_set_empty_metadata_dir
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - oidc_discovery_response
    - ck_assert_int_eq
    - oidc_cmd_discover_issuers_allowed_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_url_based_issuer_not_allowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2400,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2401,1
    - Dst: e2e_discovery_set_empty_metadata_dir
      Src: /src/mod_auth_openidc/test/test_handle.c:2402,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2404,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2405,1
    - Dst: oidc_cmd_discover_issuers_allowed_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2405,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2409,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2397
    functionDepth: 3
    functionLinenumber: 2397
    functionLinenumberEnd: 2411
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_discovery_set_empty_metadata_dir
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - oidc_discovery_response
    - ck_assert_int_eq
    - oidc_cmd_discover_issuers_allowed_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_account_based_issuer_not_allowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2415,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2416,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2420,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2421,1
    - Dst: mkdtemp
      Src: /src/mod_auth_openidc/test/test_handle.c:2421,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2422,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2423,1
    - Dst: oidc_cmd_metadata_dir_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2423,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2433,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_handle.c:2433,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:2433,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:2437,1
    - Dst: apr_file_write
      Src: /src/mod_auth_openidc/test/test_handle.c:2438,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_handle.c:2439,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2442,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_handle.c:2442,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:2442,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:2446,1
    - Dst: apr_file_write
      Src: /src/mod_auth_openidc/test/test_handle.c:2447,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_handle.c:2448,1
    - Dst: oidc_discovery_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2450,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2412
    functionDepth: 2
    functionLinenumber: 2412
    functionLinenumberEnd: 2452
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - mkdtemp
    - oidc_test_cmd_get
    - apr_file_open
    - _oidc_strlen
    - oidc_test_cfg_get
    - apr_file_close
    - oidc_cmd_metadata_dir_set
    - apr_file_write
    - ck_assert_msg
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_discovery_request
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_request_with_metadata_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2456,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2457,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2462,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2453
    functionDepth: 1
    functionLinenumber: 2453
    functionLinenumberEnd: 2464
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - oidc_discovery_response
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_no_target_link_uri_no_sso_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2469,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2470,1
    - Dst: mkdtemp
      Src: /src/mod_auth_openidc/test/test_handle.c:2470,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2471,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2472,1
    - Dst: oidc_cmd_metadata_dir_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2472,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:2474,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2483,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_handle.c:2483,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:2483,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:2487,1
    - Dst: apr_file_write
      Src: /src/mod_auth_openidc/test/test_handle.c:2488,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_handle.c:2489,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2492,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_handle.c:2492,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:2492,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:2496,1
    - Dst: apr_file_write
      Src: /src/mod_auth_openidc/test/test_handle.c:2497,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_handle.c:2498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - r
    - jwks_uri
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2465
    functionDepth: 2
    functionLinenumber: 2465
    functionLinenumberEnd: 2499
    functionName: e2e_write_metadata_dir
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_cmd_get
    - mkdtemp
    - apr_file_open
    - _oidc_strlen
    - apr_file_close
    - oidc_cmd_metadata_dir_set
    - apr_file_write
    - ck_assert_msg
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST e2e_write_metadata_dir(request_rec *r, const char *jwks_uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2504,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2505,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2508,1
    - Dst: oidc_discovery_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2508,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2510,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2511,1
    - Dst: oidc_discovery_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2503
    functionDepth: 1
    functionLinenumber: 2503
    functionLinenumberEnd: 2512
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_discovery_request
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_discovery_request_no_providers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2518,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2519,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:2520,1
    - Dst: e2e_write_metadata_dir
      Src: /src/mod_auth_openidc/test/test_handle.c:2522,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2523,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2524,1
    - Dst: oidc_cmd_dir_path_scope_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2524,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2525,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2526,1
    - Dst: oidc_cmd_dir_path_auth_request_params_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2526,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2530,1
    - Dst: oidc_discovery_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2530,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2533,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2534,1
    - Dst: oidc_cmd_dir_discover_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2534,1
    - Dst: oidc_discovery_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2535,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2536,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2537,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2538,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2539,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2539,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2540,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2513
    functionDepth: 3
    functionLinenumber: 2513
    functionLinenumberEnd: 2541
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_path_scope_set
    - oidc_test_cfg_get
    - _oidc_strstr
    - ck_assert_ptr_null
    - oidc_discovery_request
    - ck_assert_int_eq
    - oidc_cmd_dir_discover_url_set
    - oidc_cmd_dir_path_auth_request_params_set
    - e2e_write_metadata_dir
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_request_path_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2547,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2548,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:2549,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2553,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2553,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2556,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2559,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2559,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2563,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2564,1
    - Dst: oidc_cmd_dir_cookie_path_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2564,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2567,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2567,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2572,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2573
      start: 2542
    functionDepth: 2
    functionLinenumber: 2542
    functionLinenumberEnd: 2573
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cmd_dir_cookie_path_set
    - oidc_discovery_response
    - ck_assert_ptr_null
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_target_link_uri_negatives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2580,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2581,1
    - Dst: e2e_write_metadata_dir
      Src: /src/mod_auth_openidc/test/test_handle.c:2583,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2584,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2588,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2590,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2591,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2592,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2593,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2594,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2594,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2598,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:2599,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2601,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2574
    functionDepth: 3
    functionLinenumber: 2574
    functionLinenumberEnd: 2603
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_table_set
    - oidc_discovery_response
    - ck_assert_int_eq
    - _oidc_strstr
    - e2e_write_metadata_dir
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_csrf_and_authenticate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2608,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2609,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:2613,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2614,1
    - Dst: e2e_write_metadata_dir
      Src: /src/mod_auth_openidc/test/test_handle.c:2615,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:2615,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2616,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:2619,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2620,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:2622,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:2623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2604
    functionDepth: 3
    functionLinenumber: 2604
    functionLinenumberEnd: 2624
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_discovery_response
    - ck_assert_int_eq
    - e2e_write_metadata_dir
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_test_jwks_uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2633,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2634,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2636,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2639,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2640,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2625
    functionDepth: 1
    functionLinenumber: 2625
    functionLinenumberEnd: 2643
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_info_request
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_info_unknown_format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2647,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2648,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2650,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2654,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2655,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2658
      start: 2644
    functionDepth: 1
    functionLinenumber: 2644
    functionLinenumberEnd: 2658
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_info_request
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_info_no_remote_user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2662,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2663,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2665,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2666,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2670,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2671,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2674
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_info_request
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_info_no_hook_data_configured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2678,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2679,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2681,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2682,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:2683,1
    - Dst: oidc_session_set_access_token_type
      Src: /src/mod_auth_openidc/test/test_handle.c:2684,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2687,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2688,1
    - Dst: oidc_cmd_info_hook_data_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2688,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2689,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2690,1
    - Dst: oidc_cmd_info_hook_data_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2690,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2693,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2694,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2695,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2696,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2675
    functionDepth: 2
    functionLinenumber: 2675
    functionLinenumberEnd: 2699
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_session_load
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - oidc_session_set_access_token_type
    - oidc_cmd_info_hook_data_set
    - ck_assert_ptr_null
    - oidc_info_request
    - oidc_session_set_access_token
    - ck_assert_str_eq
    - oidc_session_free
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_info_json_happy_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2703,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2704,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2705,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2707,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2715,1
    - Dst: oidc_cmd_info_hook_data_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2715,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2715,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2717,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:2718,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:2719,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:2720,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:2721,1
    - Dst: oidc_session_set_idtoken
      Src: /src/mod_auth_openidc/test/test_handle.c:2722,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/test/test_handle.c:2723,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:2724,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:2724,1
    - Dst: oidc_session_set_idtoken_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:2725,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:2726,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:2727,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2731,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2731,1
    - Dst: oidc_session_set_access_token_last_refresh
      Src: /src/mod_auth_openidc/test/test_handle.c:2734,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:2734,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2736,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2736,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2739,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2740,1
    - Dst: oidc_session_set_access_token_last_refresh
      Src: /src/mod_auth_openidc/test/test_handle.c:2741,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:2741,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2743,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2743,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:2752,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2753,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2754,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:2754,1
    - Dst: oidc_cfg_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2755,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:2756,1
    - Dst: oidc_session_set_access_token_last_refresh
      Src: /src/mod_auth_openidc/test/test_handle.c:2757,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:2757,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2758,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2758,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2759,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:2759,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:2761,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:2762,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2700
    functionDepth: 2
    functionLinenumber: 2700
    functionLinenumberEnd: 2764
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - apr_time_now
    - oidc_test_http_server_wait
    - oidc_session_set_refresh_token
    - oidc_session_set_access_token
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_session_set_userinfo_claims
    - oidc_session_set_access_token_expires
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_session_set_idtoken_claims
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_json_decref
    - oidc_session_load
    - oidc_test_http_server_start
    - oidc_cfg_provider_get
    - oidc_json_object
    - oidc_cfg_provider_scope_set
    - oidc_cmd_info_hook_data_set
    - oidc_session_get_access_token
    - oidc_info_request
    - oidc_json_string
    - apr_pstrdup
    - oidc_session_set_access_token_last_refresh
    - oidc_session_set_issuer
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_session_set_idtoken
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_info_refresh_access_token_and_full_output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2768,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2769,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2771,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2773,1
    - Dst: oidc_cmd_info_hook_data_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2774,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2774,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2775,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:2776,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2780,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2780,1
    - Dst: oidc_session_set_userinfo_refresh_interval
      Src: /src/mod_auth_openidc/test/test_handle.c:2783,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2785,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2785,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2765
    functionDepth: 2
    functionLinenumber: 2765
    functionLinenumberEnd: 2788
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cmd_info_hook_data_set
    - oidc_session_set_refresh_token
    - ck_assert_ptr_null
    - oidc_info_request
    - ck_assert_int_eq
    - oidc_session_set_userinfo_refresh_interval
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_info_refresh_failures_without_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2798,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2799,1
    - Dst: oidc_dpop_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2802,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2789
    functionDepth: 1
    functionLinenumber: 2789
    functionLinenumberEnd: 2804
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_dpop_request
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dpop_disabled_by_default)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2816
      start: 2805
    functionDepth: 0
    functionLinenumber: 2805
    functionLinenumberEnd: 2816
    functionName: e2e_dpop_enable
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_table_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST e2e_dpop_enable(request_rec *r, oidc_cfg_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2819,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2820,1
    - Dst: e2e_dpop_enable
      Src: /src/mod_auth_openidc/test/test_handle.c:2821,1
    - Dst: oidc_dpop_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2824,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2826
      start: 2818
    functionDepth: 1
    functionLinenumber: 2818
    functionLinenumberEnd: 2826
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_dpop_request
    - ck_assert_int_eq
    - e2e_dpop_enable
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_dpop_missing_access_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2830,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2831,1
    - Dst: e2e_dpop_enable
      Src: /src/mod_auth_openidc/test/test_handle.c:2832,1
    - Dst: oidc_dpop_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2836,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2838
      start: 2827
    functionDepth: 1
    functionLinenumber: 2827
    functionLinenumberEnd: 2838
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_dpop_request
    - ck_assert_int_eq
    - e2e_dpop_enable
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dpop_missing_url_parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2842,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2843,1
    - Dst: e2e_dpop_enable
      Src: /src/mod_auth_openidc/test/test_handle.c:2844,1
    - Dst: oidc_dpop_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2849,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2851
      start: 2839
    functionDepth: 1
    functionLinenumber: 2839
    functionLinenumberEnd: 2851
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_dpop_request
    - ck_assert_int_eq
    - e2e_dpop_enable
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dpop_create_fails_without_private_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2859,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2860,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:2865,1
    - Dst: oidc_dpop_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2868,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2852
    functionDepth: 1
    functionLinenumber: 2852
    functionLinenumberEnd: 2870
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_dpop_request
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dpop_rejects_non_local_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2875,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2876,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:2877,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2878,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2880,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_handle.c:2882,1
    - Dst: oidc_util_base64url_decode
      Src: /src/mod_auth_openidc/test/test_handle.c:2882,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2885,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_handle.c:2885,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2886,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:2886,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2886,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:2887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - r
    - proof
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2871
    functionDepth: 1
    functionLinenumber: 2871
    functionLinenumberEnd: 2889
    functionName: e2e_dpop_proof_htm
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - apr_pstrdup
    - oidc_json_decref
    - ck_assert_int_gt
    - oidc_json_decode_object
    - oidc_json_object_get
    - oidc_util_base64url_decode
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_pstrmemdup
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *e2e_dpop_proof_htm(request_rec *r, const char *proof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2893,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2894,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2896,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_handle.c:2896,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2898,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:2898,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2898,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:2899,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2902
      start: 2892
    functionDepth: 1
    functionLinenumber: 2892
    functionLinenumberEnd: 2902
    functionName: e2e_dpop_response_proof
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_json_decref
    - oidc_json_decode_object
    - oidc_json_object_get
    - oidc_request_state_get
    - ck_assert_int_eq
    - oidc_json_string_value
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: char
    signature: char *e2e_dpop_response_proof(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2909,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2910,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:2911,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:2911,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2912,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2913,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:2913,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:2914,1
    - Dst: e2e_dpop_enable
      Src: /src/mod_auth_openidc/test/test_handle.c:2916,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2920,1
    - Dst: oidc_dpop_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2920,1
    - Dst: e2e_dpop_response_proof
      Src: /src/mod_auth_openidc/test/test_handle.c:2921,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2923,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_handle.c:2923,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2925,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2926,1
    - Dst: e2e_dpop_proof_htm
      Src: /src/mod_auth_openidc/test/test_handle.c:2926,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2930,1
    - Dst: oidc_dpop_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2930,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2931,1
    - Dst: e2e_dpop_proof_htm
      Src: /src/mod_auth_openidc/test/test_handle.c:2931,1
    - Dst: e2e_dpop_response_proof
      Src: /src/mod_auth_openidc/test/test_handle.c:2931,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2937,1
    - Dst: oidc_dpop_request
      Src: /src/mod_auth_openidc/test/test_handle.c:2937,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2938,1
    - Dst: e2e_dpop_proof_htm
      Src: /src/mod_auth_openidc/test/test_handle.c:2938,1
    - Dst: e2e_dpop_response_proof
      Src: /src/mod_auth_openidc/test/test_handle.c:2938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2939
      start: 2908
    functionDepth: 2
    functionLinenumber: 2908
    functionLinenumberEnd: 2939
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_proto_jwt_header_peek
    - oidc_test_cfg_get
    - e2e_dpop_proof_htm
    - oidc_dpop_request
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_cmd_private_keys_set
    - getenv
    - e2e_dpop_enable
    - e2e_dpop_response_proof
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_dpop_returns_proof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2950,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2951,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2952,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2954,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:2959,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2960,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2961,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:2961,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2962,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:2965,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:2966,1
    - Dst: oidc_session_set_access_token_type
      Src: /src/mod_auth_openidc/test/test_handle.c:2967,1
    - Dst: oidc_session_set_userinfo_refresh_interval
      Src: /src/mod_auth_openidc/test/test_handle.c:2968,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2972,1
    - Dst: oidc_userinfo_refresh_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:2972,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2973,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:2975,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:2976,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:2977,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:2977,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2977,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:2979,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:2980,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:2981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2940
    functionDepth: 1
    functionLinenumber: 2940
    functionLinenumberEnd: 2982
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_session_set_access_token_type
    - oidc_test_http_server_wait
    - oidc_session_set_access_token
    - oidc_json_string_value
    - oidc_session_set_userinfo_refresh_interval
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_str_eq
    - oidc_userinfo_refresh_claims
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_json_object_get
    - oidc_session_set_issuer
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_int_eq
    - oidc_session_get_userinfo_claims
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_refresh_with_interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2986,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2987,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:2989,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:2992,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:2993,1
    - Dst: oidc_session_set_userinfo_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:2994,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:2996,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:2997,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:2998,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:2998,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:2998,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:3000,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3002,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3003,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3004,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3006,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3008
      start: 2983
    functionDepth: 2
    functionLinenumber: 2983
    functionLinenumberEnd: 3008
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_test_cmd_get
    - oidc_session_load
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cmd_dir_pass_userinfo_as_set
    - oidc_session_set_userinfo_claims
    - oidc_session_set_userinfo_jwt
    - oidc_userinfo_pass_as
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - json_pack
    - oidc_session_free
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_pass_as_jwt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3012,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3013,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3015,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:3017,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:3018,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3020,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3021,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3022,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3022,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:3022,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:3027,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3029,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3031,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3033
      start: 3009
    functionDepth: 2
    functionLinenumber: 3009
    functionLinenumberEnd: 3033
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_test_cmd_get
    - oidc_session_load
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cmd_dir_pass_userinfo_as_set
    - oidc_session_set_userinfo_claims
    - oidc_userinfo_pass_as
    - ck_assert_ptr_null
    - ck_assert_table_unset
    - json_pack
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_pass_as_signed_jwt_without_private_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3037,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3038,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3040,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:3043,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:3043,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3044,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3045,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:3046,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:3046,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3047,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:3049,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:3050,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3052,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3053,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3054,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3054,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:3054,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:3057,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3059,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3060,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3063,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3064,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3065,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3066,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3072,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/test_handle.c:3072,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3073,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3074,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_handle.c:3078,1
    - Dst: oidc_util_base64url_decode
      Src: /src/mod_auth_openidc/test/test_handle.c:3079,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/test_handle.c:3079,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3080,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3080,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3081,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3081,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3082,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3082,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3084,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3034
    functionDepth: 2
    functionLinenumber: 3034
    functionLinenumberEnd: 3086
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - _oidc_strstr
    - json_pack
    - apr_table_get
    - oidc_proto_jwt_header_peek
    - oidc_test_cfg_get
    - oidc_session_set_userinfo_claims
    - oidc_util_base64url_decode
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_userinfo_pass_as
    - ck_assert_str_eq
    - oidc_cmd_private_keys_set
    - apr_pstrmemdup
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_json_decref
    - oidc_session_load
    - ck_assert_int_gt
    - getenv
    - apr_pstrdup
    - oidc_cmd_dir_pass_userinfo_as_set
    - apr_psprintf
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_pass_as_signed_jwt_with_private_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3090,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3091,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3093,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:3095,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:3095,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3096,1
    - Dst: oidc_cmd_private_keys_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3097,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:3098,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:3098,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3099,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:3101,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:3102,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3104,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3105,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3106,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3106,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:3106,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3110,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:3113,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3114,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3115,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:3116,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3119,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:3120,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3121,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3122,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3123,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3125,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3127
      start: 3087
    functionDepth: 2
    functionLinenumber: 3087
    functionLinenumberEnd: 3127
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - apr_table_set
    - json_pack
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_session_set_userinfo_claims
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_userinfo_pass_as
    - ck_assert_str_eq
    - oidc_cmd_private_keys_set
    - ck_assert_ptr_nonnull
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_json_decref
    - oidc_session_load
    - getenv
    - apr_pstrdup
    - oidc_cmd_dir_pass_userinfo_as_set
    - apr_psprintf
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_pass_as_signed_jwt_cached)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3131,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3132,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3134,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:3137,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:3138,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3140,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3141,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3142,1
    - Dst: oidc_cmd_dir_pass_userinfo_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3142,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/test/test_handle.c:3145,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3147,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3148,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3149,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3149,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3152,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3154
      start: 3128
    functionDepth: 2
    functionLinenumber: 3128
    functionLinenumberEnd: 3154
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_test_cmd_get
    - oidc_session_load
    - oidc_json_decref
    - oidc_test_cfg_get
    - oidc_cmd_dir_pass_userinfo_as_set
    - oidc_session_set_userinfo_claims
    - oidc_userinfo_pass_as
    - ck_assert_ptr_null
    - ck_assert_msg
    - _oidc_strstr
    - json_pack
    - oidc_session_free
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_userinfo_pass_as_json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3164,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3165,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3167,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3171,1
    - Dst: oidc_refresh_token_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3171,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3155
    functionDepth: 1
    functionLinenumber: 3155
    functionLinenumberEnd: 3174
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_free
    - ck_assert_int_eq
    - oidc_refresh_token_request
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_request_no_return_to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3178,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3179,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3181,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3185,1
    - Dst: oidc_refresh_token_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3185,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3186,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3187,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3188,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3188,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3191
      start: 3175
    functionDepth: 1
    functionLinenumber: 3175
    functionLinenumberEnd: 3191
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_free
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_refresh_token_request
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_request_no_access_token_param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3195,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3196,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3198,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3201,1
    - Dst: oidc_refresh_token_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3201,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3202,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3203,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3204,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3204,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3192
    functionDepth: 1
    functionLinenumber: 3192
    functionLinenumberEnd: 3207
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_free
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_refresh_token_request
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_request_session_has_no_access_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3211,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3212,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3214,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:3215,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3218,1
    - Dst: oidc_refresh_token_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3218,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3219,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3220,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3221,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3221,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3208
    functionDepth: 1
    functionLinenumber: 3208
    functionLinenumberEnd: 3224
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_set_access_token
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_free
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_refresh_token_request
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_request_access_token_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3228,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3229,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3230,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3232,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:3238,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3239,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3240,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3240,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3241,1
    - Dst: oidc_cfg_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3242,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:3245,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:3246,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:3247,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3250,1
    - Dst: oidc_refresh_token_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3250,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3251,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3252,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3254,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3254,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3255,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3255,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3257,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:3257,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3258,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:3258,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:3260,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:3261,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3263
      start: 3225
    functionDepth: 1
    functionLinenumber: 3225
    functionLinenumberEnd: 3263
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - oidc_session_set_refresh_token
    - oidc_session_set_access_token
    - _oidc_strstr
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_msg
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_scope_set
    - oidc_session_get_access_token
    - oidc_session_get_refresh_token
    - oidc_refresh_token_request
    - oidc_session_set_issuer
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_request_happy_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_handle.c:3274,1
    - Dst: oidc_authz_24_worker
      Src: /src/mod_auth_openidc/test/test_handle.c:3276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - json
    - require_args
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3264
    functionDepth: 1
    functionLinenumber: 3264
    functionLinenumberEnd: 3277
    functionName: authz_status::_legacy_authz
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_authz_24_worker
    - apr_pcalloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST authz_status _legacy_authz(request_rec *r, oidc_json_t *json,
      const char *require_args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3280,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test_handle.c:3301,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3302,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3305,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3305,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3306,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3306,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3309,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3309,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3310,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3310,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3311,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3311,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3312,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3312,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3313,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3313,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3314,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3314,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3317,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3317,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3318,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3318,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3322,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3322,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3323,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3323,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3327,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3327,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3328,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3328,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3329,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3329,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3330,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3330,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3331,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3331,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3332,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3332,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3334,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3334,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3337,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3337,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3338,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3338,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3339,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3339,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3340,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3340,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3341,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3341,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3342,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3342,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3343,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3343,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3344,1
    - Dst: _legacy_authz
      Src: /src/mod_auth_openidc/test/test_handle.c:3344,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3347
      start: 3279
    functionDepth: 1
    functionLinenumber: 3279
    functionLinenumberEnd: 3347
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - json_loads
    - ck_assert_msg
    - ck_assert_int_eq
    - _legacy_authz
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_legacy_authz_worker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3351,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3356,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_handle.c:3356,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/test/test_handle.c:3357,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3358,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3359,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/test/test_handle.c:3359,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3360,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3361,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3365,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_handle.c:3365,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3366,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/test/test_handle.c:3366,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3367,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3368,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3372,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_handle.c:3372,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3373,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/test/test_handle.c:3373,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3374,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3375,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3378,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_handle.c:3378,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3379,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/test/test_handle.c:3379,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3381,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3348
    functionDepth: 1
    functionLinenumber: 3348
    functionLinenumberEnd: 3383
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_json_decode_object
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_get_remote_user
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_legacy_remote_user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3387,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3389,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3390,1
    - Dst: oidc_is_auth_capable_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3390,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3392,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3393,1
    - Dst: oidc_is_auth_capable_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3393,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3394,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3396,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3397,1
    - Dst: oidc_is_auth_capable_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3397,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3398,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3400,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3401,1
    - Dst: oidc_is_auth_capable_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3401,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3402,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3404,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3405,1
    - Dst: oidc_is_auth_capable_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3405,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3406,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3408,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3409,1
    - Dst: oidc_is_auth_capable_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3409,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3410,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3412,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3413,1
    - Dst: oidc_is_auth_capable_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3413,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3414,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3416,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3417,1
    - Dst: oidc_is_auth_capable_request
      Src: /src/mod_auth_openidc/test/test_handle.c:3417,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3419
      start: 3384
    functionDepth: 1
    functionLinenumber: 3384
    functionLinenumberEnd: 3419
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - apr_table_set
    - ck_assert_int_eq
    - oidc_is_auth_capable_request
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_legacy_is_auth_capable_request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3423,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3424,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3428,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3428,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3431,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3431,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:3436,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:3436,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:3437,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_handle.c:3439,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3440,1
    - Dst: apr_file_gets
      Src: /src/mod_auth_openidc/test/test_handle.c:3443,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:3444,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3449,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3449,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_handle.c:3453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3454
      start: 3420
    functionDepth: 1
    functionLinenumber: 3420
    functionLinenumberEnd: 3454
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_file_open
    - oidc_test_request_get
    - ap_get_module_config
    - _oidc_strlen
    - apr_file_gets
    - apr_file_close
    - oidc_validate_redirect_url
    - ck_assert_msg
    - apr_psprintf
    - ck_assert_int_eq
    - getenv
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_legacy_open_redirect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3458,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3459,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3462,1
    - Dst: oidc_session_set_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:3463,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3464,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3466,1
    - Dst: oidc_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:3466,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3467,1
    - Dst: oidc_request_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:3467,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3470,1
    - Dst: oidc_request_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:3470,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3474,1
    - Dst: oidc_request_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:3474,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3479
      start: 3455
    functionDepth: 1
    functionLinenumber: 3455
    functionLinenumberEnd: 3479
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_session_load
    - oidc_request_check_cookie_domain
    - oidc_session_set_cookie_domain
    - apr_table_set
    - oidc_check_cookie_domain
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_legacy_check_cookie_domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3491,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3495,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3496,1
    - Dst: oidc_scrub_headers
      Src: /src/mod_auth_openidc/test/test_handle.c:3498,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3500,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:3501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3502
      start: 3480
    functionDepth: 1
    functionLinenumber: 3480
    functionLinenumberEnd: 3502
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_scrub_headers
    - oidc_test_request_get
    - apr_table_set
    - ck_assert_table_str
    - ck_assert_table_unset
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_scrub_headers_default_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3506,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3511,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3512,1
    - Dst: oidc_cmd_claim_prefix_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3512,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3513,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3514,1
    - Dst: oidc_cmd_white_listed_claims_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3514,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3516,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3517,1
    - Dst: oidc_scrub_headers
      Src: /src/mod_auth_openidc/test/test_handle.c:3519,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3521,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:3522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3523
      start: 3503
    functionDepth: 2
    functionLinenumber: 3503
    functionLinenumberEnd: 3523
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_scrub_headers
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_cmd_claim_prefix_set
    - apr_table_set
    - ck_assert_table_str
    - ck_assert_ptr_null
    - ck_assert_table_unset
    - oidc_cmd_white_listed_claims_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_scrub_headers_empty_prefix_with_whitelist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3527,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3531,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3532,1
    - Dst: oidc_cmd_claim_prefix_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3532,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3534,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3535,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3536,1
    - Dst: oidc_scrub_headers
      Src: /src/mod_auth_openidc/test/test_handle.c:3538,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3540,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3541,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:3542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3524
    functionDepth: 2
    functionLinenumber: 3524
    functionLinenumberEnd: 3543
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_scrub_headers
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_cmd_claim_prefix_set
    - apr_table_set
    - ck_assert_table_str
    - ck_assert_ptr_null
    - ck_assert_table_unset
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_scrub_headers_custom_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3547,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3548,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3550,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3551,1
    - Dst: oidc_cmd_dir_strip_cookies_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3551,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3552,1
    - Dst: oidc_cmd_dir_strip_cookies_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3552,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3556,1
    - Dst: oidc_strip_cookies
      Src: /src/mod_auth_openidc/test/test_handle.c:3558,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3560,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3561,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3562,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3562,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3563,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3563,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3564,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3564,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:3565,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:3565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3567
      start: 3544
    functionDepth: 2
    functionLinenumber: 3544
    functionLinenumberEnd: 3567
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - _oidc_strstr
    - apr_table_set
    - oidc_strip_cookies
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_cmd_dir_strip_cookies_set
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_strip_cookies_configured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3571,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3572,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3577,1
    - Dst: oidc_provider_static_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3577,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3578,1
    - Dst: ck_assert_ptr_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3579,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3580
      start: 3568
    functionDepth: 1
    functionLinenumber: 3568
    functionLinenumberEnd: 3580
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_provider_static_config
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - ck_assert_int_eq
    - ck_assert_ptr_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_provider_static_config_no_metadata_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3584,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3585,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3586,1
    - Dst: oidc_cfg_provider_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3591,1
    - Dst: oidc_cache_set_provider
      Src: /src/mod_auth_openidc/test/test_handle.c:3592,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:3593,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:3593,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3596,1
    - Dst: oidc_provider_static_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3596,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3597,1
    - Dst: ck_assert_ptr_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:3599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3581
    functionDepth: 1
    functionLinenumber: 3581
    functionLinenumberEnd: 3600
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_provider_static_config
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - apr_time_now
    - oidc_cfg_provider_metadata_url_set
    - ck_assert_ptr_ne
    - oidc_cache_set_provider
    - ck_assert_int_eq
    - apr_time_from_sec
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_provider_static_config_metadata_url_cached)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3604,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3605,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3606,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3607,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:3613,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3614,1
    - Dst: oidc_cfg_provider_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3615,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3615,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3618,1
    - Dst: oidc_provider_static_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3618,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3619,1
    - Dst: ck_assert_ptr_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:3620,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:3622,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3623,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:3625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3626
      start: 3601
    functionDepth: 1
    functionLinenumber: 3601
    functionLinenumberEnd: 3626
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_provider_static_config
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_cfg_provider_metadata_url_set
    - ck_assert_ptr_ne
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_provider_static_config_metadata_url_fetch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3630,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3631,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3632,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3633,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_handle.c:3637,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:3638,1
    - Dst: oidc_cfg_provider_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3639,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:3640,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3643,1
    - Dst: oidc_provider_static_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3627
    functionDepth: 1
    functionLinenumber: 3627
    functionLinenumberEnd: 3644
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_provider_static_config
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_free_port
    - oidc_cfg_provider_metadata_url_set
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_provider_static_config_metadata_url_fetch_fails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3648,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3649,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3650,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3652,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3653,1
    - Dst: oidc_cmd_dir_pass_claims_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3653,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:3656,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3657,1
    - Dst: oidc_set_app_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:3657,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3658,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3660
      start: 3645
    functionDepth: 2
    functionLinenumber: 3645
    functionLinenumberEnd: 3660
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_set_app_claims
    - oidc_json_decref
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_table_unset
    - ck_assert_int_eq
    - json_pack
    - oidc_cmd_dir_pass_claims_as_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_set_app_claims_pass_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3664,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3665,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:3668,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3669,1
    - Dst: oidc_set_app_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:3669,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:3670,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3672
      start: 3661
    functionDepth: 1
    functionLinenumber: 3661
    functionLinenumberEnd: 3672
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_set_app_claims
    - oidc_json_decref
    - oidc_test_cfg_get
    - ck_assert_table_str
    - ck_assert_int_eq
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_set_app_claims_pass_both)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3676,1
    - Dst: oidc_log_session_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:3680,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:3680,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:3680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3673
    functionDepth: 1
    functionLinenumber: 3673
    functionLinenumberEnd: 3681
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_time_now
    - oidc_test_request_get
    - oidc_log_session_expires
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_log_session_expires)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3685,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3686,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3688,1
    - Dst: oidc_session_set_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:3691,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3692,1
    - Dst: oidc_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:3692,1
    - Dst: oidc_session_set_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:3695,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3696,1
    - Dst: oidc_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:3696,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3699
      start: 3682
    functionDepth: 1
    functionLinenumber: 3682
    functionLinenumberEnd: 3699
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_cookie_domain
    - oidc_check_cookie_domain
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_check_cookie_domain_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3703,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3704,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3706,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3710,1
    - Dst: oidc_get_provider_from_session
      Src: /src/mod_auth_openidc/test/test_handle.c:3710,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3711,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3714
      start: 3700
    functionDepth: 1
    functionLinenumber: 3700
    functionLinenumberEnd: 3714
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_get_provider_from_session
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_get_provider_from_session_no_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3718,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3719,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3721,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:3722,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3722,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3722,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3725,1
    - Dst: oidc_get_provider_from_session
      Src: /src/mod_auth_openidc/test/test_handle.c:3725,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3726,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3729
      start: 3715
    functionDepth: 1
    functionLinenumber: 3715
    functionLinenumberEnd: 3729
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_issuer
    - oidc_cfg_provider_get
    - oidc_get_provider_from_session
    - oidc_cfg_provider_issuer_get
    - ck_assert_int_eq
    - oidc_session_free
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_get_provider_from_session_with_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3733,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:3734,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3738,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/test/test_handle.c:3738,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3739,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:3742,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_handle.c:3742,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3743,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/test/test_handle.c:3743,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3745
      start: 3730
    functionDepth: 1
    functionLinenumber: 3730
    functionLinenumberEnd: 3745
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_test_request_get
    - oidc_json_decref
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_get_remote_user
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_get_remote_user_missing_claim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3749,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3750,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3756,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3756,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3758,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3760
      start: 3746
    functionDepth: 1
    functionLinenumber: 3746
    functionLinenumberEnd: 3760
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_validate_redirect_url
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_validate_redirect_url_backslash_relative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3764,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3765,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3766,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3767,1
    - Dst: oidc_cmd_redirect_urls_allowed_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3767,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3771,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3771,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3778,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3778,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3781,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3783
      start: 3761
    functionDepth: 2
    functionLinenumber: 3761
    functionLinenumberEnd: 3783
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_validate_redirect_url
    - ck_assert_ptr_null
    - oidc_cmd_redirect_urls_allowed_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_validate_redirect_url_allowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3787,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:3788,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3792,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/test/test_handle.c:3792,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3793,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3797,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/test/test_handle.c:3797,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3798,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3802,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/test/test_handle.c:3802,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3803,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3807,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/test/test_handle.c:3807,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3808,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:3810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3811
      start: 3784
    functionDepth: 1
    functionLinenumber: 3784
    functionLinenumberEnd: 3811
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_json_decref
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_get_remote_user
    - json_pack
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_get_remote_user_regexp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3815,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3816,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3820,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3820,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3822,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3823,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_handle.c:3826,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3832,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3832,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3834,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3835,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3840,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3841,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3812
    functionDepth: 1
    functionLinenumber: 3812
    functionLinenumberEnd: 3844
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_validate_redirect_url
    - apr_pcalloc
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_validate_redirect_url_edge_cases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3848,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3849,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3850,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3851,1
    - Dst: oidc_cmd_cookie_domain_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3851,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3854,1
    - Dst: oidc_session_set_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:3856,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3857,1
    - Dst: oidc_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:3857,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3859
      start: 3845
    functionDepth: 2
    functionLinenumber: 3845
    functionLinenumberEnd: 3859
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_cookie_domain
    - oidc_cmd_cookie_domain_set
    - ck_assert_ptr_null
    - oidc_check_cookie_domain
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_check_cookie_domain_configured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3863,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3864,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3866,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3868,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3869,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3870,1
    - Dst: oidc_cmd_dir_pass_refresh_token_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3870,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:3874,1
    - Dst: oidc_session_set_access_token_type
      Src: /src/mod_auth_openidc/test/test_handle.c:3875,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:3876,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:3877,1
    - Dst: oidc_session_set_scope
      Src: /src/mod_auth_openidc/test/test_handle.c:3878,1
    - Dst: oidc_session_set_session_new
      Src: /src/mod_auth_openidc/test/test_handle.c:3879,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:3882,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:3882,1
    - Dst: oidc_session_pass_tokens
      Src: /src/mod_auth_openidc/test/test_handle.c:3885,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3886,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3889,1
    - Dst: oidc_session_get_session_new
      Src: /src/mod_auth_openidc/test/test_handle.c:3889,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:3892,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:3893,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:3894,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:3895,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3898
      start: 3860
    functionDepth: 2
    functionLinenumber: 3860
    functionLinenumberEnd: 3898
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - oidc_session_set_access_token_type
    - apr_time_now
    - oidc_session_set_refresh_token
    - oidc_session_set_access_token
    - oidc_session_set_session_new
    - oidc_test_cfg_get
    - oidc_session_set_access_token_expires
    - ck_assert_ptr_null
    - oidc_session_set_scope
    - oidc_cmd_dir_pass_refresh_token_set
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_session_load
    - ck_assert_table_str
    - oidc_session_get_session_new
    - ck_assert_int_eq
    - oidc_session_pass_tokens
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_session_pass_tokens_full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3902,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3903,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3904,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3909,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3910,1
    - Dst: oidc_original_request_method
      Src: /src/mod_auth_openidc/test/test_handle.c:3910,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3913,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3914,1
    - Dst: oidc_cmd_dir_preserve_post_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3914,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3915,1
    - Dst: oidc_original_request_method
      Src: /src/mod_auth_openidc/test/test_handle.c:3915,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3919,1
    - Dst: oidc_original_request_method
      Src: /src/mod_auth_openidc/test/test_handle.c:3919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3920
      start: 3899
    functionDepth: 2
    functionLinenumber: 3899
    functionLinenumberEnd: 3920
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_original_request_method
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cmd_dir_preserve_post_set
    - apr_table_set
    - ck_assert_ptr_null
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_original_request_method_post_form)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3924,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3925,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3926,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3927,1
    - Dst: oidc_cmd_dir_unauth_action_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3927,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:3929,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3931
      start: 3921
    functionDepth: 2
    functionLinenumber: 3921
    functionLinenumberEnd: 3931
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_unauth_action_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_check_user_id_unauth_action_407)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3936,1
    - Dst: oidc_test_set_auth_type
      Src: /src/mod_auth_openidc/test/test_handle.c:3939,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3940,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:3940,1
    - Dst: oidc_test_set_auth_type
      Src: /src/mod_auth_openidc/test/test_handle.c:3943,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:3944,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3945,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:3945,1
    - Dst: oidc_test_set_auth_type
      Src: /src/mod_auth_openidc/test/test_handle.c:3946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3947
      start: 3932
    functionDepth: 1
    functionLinenumber: 3932
    functionLinenumberEnd: 3947
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_set_auth_type
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_check_user_id_authtype_variants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3952,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3953,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:3954,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3955,1
    - Dst: oidc_scrub_headers
      Src: /src/mod_auth_openidc/test/test_handle.c:3956,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3957,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3958
      start: 3948
    functionDepth: 1
    functionLinenumber: 3948
    functionLinenumberEnd: 3958
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_scrub_headers
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_table_set
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_scrub_headers_insecure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3964,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3965,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:3971,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:3972,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:3973,1
    - Dst: oidc_cfg_provider_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3973,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3973,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:3974,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:3975,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3975,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3976,1
    - Dst: oidc_provider_static_config
      Src: /src/mod_auth_openidc/test/test_handle.c:3976,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:3977,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:3978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3979
      start: 3959
    functionDepth: 1
    functionLinenumber: 3959
    functionLinenumberEnd: 3979
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_provider_static_config
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_cfg_provider_metadata_url_set
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_static_provider_metadata_url_negatives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3984,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:3985,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:3987,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:3989,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:3990,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:3992,1
    - Dst: oidc_get_provider_from_session
      Src: /src/mod_auth_openidc/test/test_handle.c:3992,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:3994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3995
      start: 3980
    functionDepth: 1
    functionLinenumber: 3980
    functionLinenumberEnd: 3995
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_issuer
    - oidc_get_provider_from_session
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_get_provider_from_session_unknown_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4000,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4001,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/test/test_handle.c:4004,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/test/test_handle.c:4004,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4006,1
    - Dst: oidc_original_request_method
      Src: /src/mod_auth_openidc/test/test_handle.c:4006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4007
      start: 3996
    functionDepth: 1
    functionLinenumber: 3996
    functionLinenumberEnd: 4007
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_original_request_method
    - oidc_test_cfg_get
    - oidc_util_url_redirect_uri
    - ck_assert_str_eq
    - apr_uri_parse
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_original_request_method_discovery_response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4012,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4013,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4016,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/test_handle.c:4017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4019
      start: 4008
    functionDepth: 1
    functionLinenumber: 4008
    functionLinenumberEnd: 4019
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - oidc_validate_redirect_url
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_mod_validate_redirect_url_slash_backslash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4027,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4028,1
    - Dst: oidc_revoke_session
      Src: /src/mod_auth_openidc/test/test_handle.c:4032,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4034
      start: 4020
    functionDepth: 1
    functionLinenumber: 4020
    functionLinenumberEnd: 4034
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - oidc_revoke_session
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_revoke_session_no_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4038,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4039,1
    - Dst: oidc_revoke_session
      Src: /src/mod_auth_openidc/test/test_handle.c:4043,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4044,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4046
      start: 4035
    functionDepth: 1
    functionLinenumber: 4035
    functionLinenumberEnd: 4046
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - oidc_revoke_session
    - ck_assert_int_eq
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_revoke_session_server_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4050,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4051,1
    - Dst: oidc_revoke_at_cache_remove
      Src: /src/mod_auth_openidc/test/test_handle.c:4055,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4057
      start: 4047
    functionDepth: 1
    functionLinenumber: 4047
    functionLinenumberEnd: 4057
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_revoke_at_cache_remove
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_revoke_at_cache_remove_no_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4061,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4062,1
    - Dst: oidc_revoke_at_cache_remove
      Src: /src/mod_auth_openidc/test/test_handle.c:4065,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4067
      start: 4058
    functionDepth: 1
    functionLinenumber: 4058
    functionLinenumberEnd: 4067
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_revoke_at_cache_remove
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_revoke_at_cache_remove_not_cached)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4071,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4072,1
    - Dst: oidc_cache_set_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:4075,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:4075,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:4075,1
    - Dst: oidc_revoke_at_cache_remove
      Src: /src/mod_auth_openidc/test/test_handle.c:4077,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4079
      start: 4068
    functionDepth: 1
    functionLinenumber: 4068
    functionLinenumberEnd: 4079
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_time_now
    - ck_assert_int_eq
    - oidc_cache_set_access_token
    - apr_time_from_sec
    - oidc_revoke_at_cache_remove
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_revoke_at_cache_remove_cached)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4087,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4088,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4090,1
    - Dst: oidc_session_management
      Src: /src/mod_auth_openidc/test/test_handle.c:4093,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4094,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4097
      start: 4080
    functionDepth: 1
    functionLinenumber: 4080
    functionLinenumberEnd: 4097
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_management
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_session_management_no_cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4101,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4102,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4104,1
    - Dst: oidc_session_management
      Src: /src/mod_auth_openidc/test/test_handle.c:4107,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4108,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 4098
    functionDepth: 1
    functionLinenumber: 4098
    functionLinenumberEnd: 4111
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_management
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_session_management_unknown_cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4115,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4116,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4118,1
    - Dst: oidc_session_management
      Src: /src/mod_auth_openidc/test/test_handle.c:4122,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4124,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4127
      start: 4112
    functionDepth: 1
    functionLinenumber: 4112
    functionLinenumberEnd: 4127
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_management
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_session_management_logout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4131,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4132,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4134,1
    - Dst: oidc_session_management
      Src: /src/mod_auth_openidc/test/test_handle.c:4138,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4139,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4142
      start: 4128
    functionDepth: 1
    functionLinenumber: 4128
    functionLinenumberEnd: 4142
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_management
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_session_management_iframe_op_unconfigured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4146,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4147,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4148,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4150,1
    - Dst: oidc_cfg_provider_check_session_iframe_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4152,1
    - Dst: oidc_session_management
      Src: /src/mod_auth_openidc/test/test_handle.c:4155,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4156,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:4157,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4160
      start: 4143
    functionDepth: 1
    functionLinenumber: 4143
    functionLinenumberEnd: 4160
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_session_management
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_check_session_iframe_set
    - ck_assert_table_str
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_session_management_iframe_op_configured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4164,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4165,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4166,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4168,1
    - Dst: oidc_cfg_provider_check_session_iframe_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4170,1
    - Dst: oidc_session_management
      Src: /src/mod_auth_openidc/test/test_handle.c:4174,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4175,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4178
      start: 4161
    functionDepth: 1
    functionLinenumber: 4161
    functionLinenumberEnd: 4178
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_session_management
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_check_session_iframe_set
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_session_management_iframe_rp_configured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4182,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4183,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4185,1
    - Dst: oidc_session_set_path_scope
      Src: /src/mod_auth_openidc/test/test_handle.c:4188,1
    - Dst: oidc_session_set_path_auth_request_params
      Src: /src/mod_auth_openidc/test/test_handle.c:4189,1
    - Dst: oidc_session_management
      Src: /src/mod_auth_openidc/test/test_handle.c:4194,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4195,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4196,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4197,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4198,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4198,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4200,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4200,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4202,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4202,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4205
      start: 4179
    functionDepth: 1
    functionLinenumber: 4179
    functionLinenumberEnd: 4205
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_session_management
    - oidc_test_cfg_get
    - oidc_session_set_path_scope
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_session_set_path_auth_request_params
    - oidc_session_free
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_session_management_check_uses_session_path_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4217,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4221,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4226,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4226,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4227,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4228,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4235,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4235,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4236,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4237,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4245,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4246
      start: 4206
    functionDepth: 1
    functionLinenumber: 4206
    functionLinenumberEnd: 4246
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - apr_pstrdup
    - oidc_test_request_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_subrequest_recycles_user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4252,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4256,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_handle.c:4256,1
    - Dst: oidc_request_state_json_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4258,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:4259,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4260,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4261,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/test_handle.c:4269,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/test_handle.c:4270,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:4271,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4273,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4273,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4274,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4275,1
    - Dst: oidc_request_state_json_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4278,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4279,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4280,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_handle.c:4280,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4280,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4281,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4282,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4283,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:4285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4286
      start: 4247
    functionDepth: 1
    functionLinenumber: 4247
    functionLinenumberEnd: 4286
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - apr_pstrdup
    - oidc_test_request_get
    - apr_pool_create
    - oidc_json_decref
    - oidc_check_user_id
    - oidc_request_state_json_get
    - oidc_json_decode_object
    - apr_table_copy
    - oidc_json_string_value
    - oidc_json_object_get
    - oidc_request_state_json_set
    - oidc_request_state_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - apr_pool_destroy
    - oidc_request_state_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_internal_redirect_restores_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4290,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4295,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4297,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4298,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4299,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4300,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4301,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4301,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4303,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4303,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4305,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4306
      start: 4287
    functionDepth: 1
    functionLinenumber: 4287
    functionLinenumberEnd: 4306
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - oidc_test_request_get
    - apr_table_set
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_unauthenticated_redirects_to_op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4315,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4318,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/test/test_handle.c:4318,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4323,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4326,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4326,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4327,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4328,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:4330,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4307
    functionDepth: 1
    functionLinenumber: 4307
    functionLinenumberEnd: 4331
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - oidc_test_request_get
    - apr_table_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - apr_uri_parse
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_redirect_uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4335,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4339,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4341
      start: 4332
    functionDepth: 1
    functionLinenumber: 4332
    functionLinenumberEnd: 4341
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - oidc_test_request_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_unauthenticated_not_auth_capable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4345,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4346,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4352,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4354,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4355,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:4356,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:4356,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:4357,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4357,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4357,1
    - Dst: oidc_session_set_session_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:4358,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:4358,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:4358,1
    - Dst: oidc_session_set_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:4359,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4360,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_handle.c:4360,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4363,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:4363,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4363,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4365,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4366,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4367,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4368,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4373
      start: 4342
    functionDepth: 1
    functionLinenumber: 4342
    functionLinenumberEnd: 4373
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_time_now
    - apr_table_set
    - oidc_cfg_dir_cookie_get
    - oidc_test_cfg_get
    - oidc_session_save
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_session_set_session_expires
    - oidc_cfg_provider_issuer_get
    - oidc_session_set_cookie_domain
    - oidc_check_user_id
    - apr_pstrdup
    - oidc_session_set_issuer
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_existing_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4377,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4378,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4384,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4386,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4387,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:4388,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:4388,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:4389,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4389,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4389,1
    - Dst: oidc_session_set_session_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:4390,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:4390,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:4390,1
    - Dst: oidc_session_set_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:4391,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4392,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_handle.c:4392,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4394,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:4394,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4394,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4395,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4397,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4398,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4399,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4400,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4401,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4401,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4374
    functionDepth: 1
    functionLinenumber: 4374
    functionLinenumberEnd: 4405
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_time_now
    - apr_table_set
    - _oidc_strstr
    - apr_table_get
    - oidc_cfg_dir_cookie_get
    - oidc_test_cfg_get
    - oidc_session_save
    - ck_assert_msg
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_session_set_session_expires
    - oidc_cfg_provider_issuer_get
    - oidc_session_set_cookie_domain
    - oidc_check_user_id
    - apr_pstrdup
    - oidc_session_set_issuer
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_existing_session_expired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4409,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:4412,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4413,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:4414,1
    - Dst: oidc_cmd_dir_unauth_action_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4414,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4416,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4417,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4418,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4420
      start: 4406
    functionDepth: 2
    functionLinenumber: 4406
    functionLinenumberEnd: 4420
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_unauth_action_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_unauth_action_pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4424,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:4426,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4427,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:4428,1
    - Dst: oidc_cmd_dir_unauth_action_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4428,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4430,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4432
      start: 4421
    functionDepth: 2
    functionLinenumber: 4421
    functionLinenumberEnd: 4432
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_unauth_action_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_unauth_action_return_401)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4436,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:4438,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4439,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:4440,1
    - Dst: oidc_cmd_dir_unauth_action_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4440,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4442,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4444
      start: 4433
    functionDepth: 2
    functionLinenumber: 4433
    functionLinenumberEnd: 4444
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_unauth_action_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_unauth_action_return_410)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4448,1
    - Dst: oidc_test_set_auth_type
      Src: /src/mod_auth_openidc/test/test_handle.c:4452,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4455,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4456,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4458
      start: 4445
    functionDepth: 1
    functionLinenumber: 4445
    functionLinenumberEnd: 4458
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - oidc_test_request_get
    - oidc_test_set_auth_type
    - ck_assert_int_eq
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_oauth_mixed_options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4462,1
    - Dst: oidc_test_set_auth_type
      Src: /src/mod_auth_openidc/test/test_handle.c:4467,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4468,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4470,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4472
      start: 4459
    functionDepth: 1
    functionLinenumber: 4459
    functionLinenumberEnd: 4472
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - oidc_test_request_get
    - oidc_test_set_auth_type
    - apr_table_set
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_oauth_mixed_browser_fallback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4476,1
    - Dst: oidc_test_set_auth_type
      Src: /src/mod_auth_openidc/test/test_handle.c:4481,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4482,1
    - Dst: oidc_check_user_id
      Src: /src/mod_auth_openidc/test/test_handle.c:4484,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4486
      start: 4473
    functionDepth: 1
    functionLinenumber: 4473
    functionLinenumberEnd: 4486
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_check_user_id
    - oidc_test_request_get
    - oidc_test_set_auth_type
    - apr_table_set
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_check_user_id_oauth_mixed_bearer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4490,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4494,1
    - Dst: oidc_fixups
      Src: /src/mod_auth_openidc/test/test_handle.c:4494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4495
      start: 4487
    functionDepth: 1
    functionLinenumber: 4487
    functionLinenumberEnd: 4495
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_fixups
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_fixups_enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4503,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4504,1
    - Dst: oidc_jwks_request
      Src: /src/mod_auth_openidc/test/test_handle.c:4507,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4509
      start: 4496
    functionDepth: 1
    functionLinenumber: 4496
    functionLinenumberEnd: 4509
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - oidc_jwks_request
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_jwks_request_empty_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4513,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4514,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:4517,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/test/test_handle.c:4517,1
    - Dst: oidc_cmd_public_keys_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4519,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4519,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4520,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:4520,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4521,1
    - Dst: ck_assert_int_gt
      Src: /src/mod_auth_openidc/test/test_handle.c:4522,1
    - Dst: oidc_cfg_public_keys_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4522,1
    - Dst: oidc_jwks_request
      Src: /src/mod_auth_openidc/test/test_handle.c:4524,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4526
      start: 4510
    functionDepth: 2
    functionLinenumber: 4510
    functionLinenumberEnd: 4526
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cmd_public_keys_set
    - ck_assert_int_gt
    - ck_assert_msg
    - apr_psprintf
    - oidc_cfg_public_keys_get
    - ck_assert_int_eq
    - oidc_jwks_request
    - getenv
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_jwks_request_with_public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4530,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4533,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:4535,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4537
      start: 4527
    functionDepth: 1
    functionLinenumber: 4527
    functionLinenumberEnd: 4537
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_content_handler
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_jwks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4541,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4544,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:4546,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4549
      start: 4538
    functionDepth: 1
    functionLinenumber: 4538
    functionLinenumberEnd: 4549
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_content_handler
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_unknown_redirect_uri_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4553,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4557,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:4559,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4561
      start: 4550
    functionDepth: 1
    functionLinenumber: 4550
    functionLinenumberEnd: 4561
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_content_handler
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_non_redirect_no_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4571,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4572,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4573,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4575,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:4579,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4579,1
    - Dst: oidc_session_set_idtoken
      Src: /src/mod_auth_openidc/test/test_handle.c:4580,1
    - Dst: oidc_cfg_provider_end_session_endpoint_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4581,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4584,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4585,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4586,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4587,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4590,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4590,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4592,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4592,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4594,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4594,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4598
      start: 4562
    functionDepth: 1
    functionLinenumber: 4562
    functionLinenumberEnd: 4598
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_session_set_issuer
    - oidc_cfg_provider_issuer_get
    - oidc_session_set_idtoken
    - ck_assert_msg
    - apr_table_get
    - oidc_cfg_provider_end_session_endpoint_set
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_session_free
    - oidc_logout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_op_request_with_id_token_hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4602,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4603,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4604,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4606,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:4611,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4611,1
    - Dst: oidc_cfg_provider_end_session_endpoint_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4612,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4615,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4616,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4617,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4618,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4620,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4620,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4624,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4624,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4599
    functionDepth: 1
    functionLinenumber: 4599
    functionLinenumberEnd: 4627
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_session_set_issuer
    - oidc_cfg_provider_issuer_get
    - ck_assert_msg
    - apr_table_get
    - oidc_cfg_provider_end_session_endpoint_set
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_session_free
    - oidc_logout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_op_request_no_session_no_extra_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4631,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4632,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4634,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4638,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4639,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4642
      start: 4628
    functionDepth: 1
    functionLinenumber: 4628
    functionLinenumberEnd: 4642
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_local_no_return_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4646,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4647,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4649,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4653,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4654,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:4655,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4658
      start: 4643
    functionDepth: 1
    functionLinenumber: 4643
    functionLinenumberEnd: 4658
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_table_str
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_local_with_return_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4662,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4663,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4665,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4669,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:4670,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4673
      start: 4659
    functionDepth: 1
    functionLinenumber: 4659
    functionLinenumberEnd: 4673
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_ne
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_invalid_return_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4677,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4678,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4680,1
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/test/test_handle.c:4683,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4684,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4687
      start: 4674
    functionDepth: 1
    functionLinenumber: 4674
    functionLinenumberEnd: 4687
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_logout_request
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_request_no_url_no_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4691,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4692,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4694,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4698,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4699,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4701,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4702,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:4703,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:4703,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4706
      start: 4688
    functionDepth: 1
    functionLinenumber: 4688
    functionLinenumberEnd: 4706
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_msg
    - apr_table_get
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_session_free
    - oidc_logout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_request_frontchannel_get)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4710,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4711,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4713,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4717,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4718,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4721
      start: 4707
    functionDepth: 1
    functionLinenumber: 4707
    functionLinenumberEnd: 4721
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_request_frontchannel_img)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4736,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_handle.c:4736,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4737,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_handle.c:4739,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4740,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:4741,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:4741,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:4742,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:4742,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:4743,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:4743,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:4745,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:4745,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:4746,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:4746,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:4748,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_handle.c:4748,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/test/test_handle.c:4750,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:4751,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/test/test_handle.c:4752,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:4753,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:4756,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:4756,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4757,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4758,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4762,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_handle.c:4762,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_handle.c:4763,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4764,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:4765,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:4766,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 9
    argNames:
    - r
    - iss
    - aud
    - sub
    - jti
    - with_events
    - with_nonce
    - with_iat
    - secret
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - char*
    - apr_byte_t
    - apr_byte_t
    - apr_byte_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4768
      start: 4722
    functionDepth: 1
    functionLinenumber: 4722
    functionLinenumberEnd: 4768
    functionName: e2e_sign_backchannel_logout_jwt_ex
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_time_sec
    - apr_time_now
    - oidc_json_object
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - oidc_json_string
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: "END_TEST *e2e_sign_backchannel_logout_jwt_ex(request_rec *r, const
      char *iss, const char *aud, const char *sub,\n\t\t\t\t\t\tconst char *jti, apr_byte_t
      with_events, apr_byte_t with_nonce,\n\t\t\t\t\t\tapr_byte_t with_iat, const
      char *secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e2e_sign_backchannel_logout_jwt_ex
      Src: /src/mod_auth_openidc/test/test_handle.c:4773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - r
    - iss
    - aud
    - sub
    - jti
    - with_events
    - with_nonce
    - secret
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - char*
    - apr_byte_t
    - apr_byte_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4774
      start: 4770
    functionDepth: 2
    functionLinenumber: 4770
    functionLinenumberEnd: 4774
    functionName: e2e_sign_backchannel_logout_jwt
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_sign_backchannel_logout_jwt_ex
    linkageType: ''
    returnType: char
    signature: "char *e2e_sign_backchannel_logout_jwt(request_rec *r, const char *iss,
      const char *aud, const char *sub,\n\t\t\t\t\t     const char *jti, apr_byte_t
      with_events, apr_byte_t with_nonce,\n\t\t\t\t\t     const char *secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4782,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_handle.c:4783,1
    - Dst: oidc_alg2keysize
      Src: /src/mod_auth_openidc/test/test_handle.c:4783,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4785,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_handle.c:4787,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4788,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4789,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4791,1
    - Dst: oidc_jwt_encrypt
      Src: /src/mod_auth_openidc/test/test_handle.c:4791,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:4791,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4792,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:4793,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:4794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - r
    - plaintext
    - secret
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4796
      start: 4778
    functionDepth: 1
    functionLinenumber: 4778
    functionLinenumberEnd: 4796
    functionName: e2e_encrypt_symmetric
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_alg2keysize
    - oidc_jwt_new
    - apr_pstrdup
    - oidc_jwt_encrypt
    - _oidc_strlen
    - oidc_jwt_destroy
    - ck_assert_int_eq
    - oidc_jwk_destroy
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: char
    signature: char *e2e_encrypt_symmetric(request_rec *r, const char *plaintext,
      const char *secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4801,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4802,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:4803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - body
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4804
      start: 4799
    functionDepth: 1
    functionLinenumber: 4799
    functionLinenumberEnd: 4804
    functionName: e2e_post_body
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 8
    functionsReached:
    - apr_table_set
    - apr_pstrdup
    - _oidc_strlen
    linkageType: ''
    returnType: void
    signature: void e2e_post_body(request_rec *r, const char *body)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4807,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4808,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4809,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4811,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4814,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:4816,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:4818,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:4818,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:4819,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4820,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:4821,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:4822,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4824,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4825,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4827,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:4828,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4831
      start: 4806
    functionDepth: 3
    functionLinenumber: 4806
    functionLinenumberEnd: 4831
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_sign_backchannel_logout_jwt
    - apr_table_set
    - apr_pstrcat
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - apr_table_get
    - oidc_session_free
    - oidc_logout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_logout_backchannel_happy_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4838,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4839,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4840,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4842,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4845,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/test/test_handle.c:4848,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4849,1
    - Dst: oidc_cache_set_sid
      Src: /src/mod_auth_openidc/test/test_handle.c:4849,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:4849,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:4849,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:4852,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:4854,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:4854,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:4855,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4856,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:4857,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:4858,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4860,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4861,1
    - Dst: oidc_cache_get_sid
      Src: /src/mod_auth_openidc/test/test_handle.c:4865,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:4866,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4869
      start: 4832
    functionDepth: 3
    functionLinenumber: 4832
    functionLinenumberEnd: 4869
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - oidc_cache_get_sid
    - apr_time_now
    - e2e_sign_backchannel_logout_jwt
    - apr_table_set
    - oidc_cache_set_sid
    - oidc_test_cfg_get
    - apr_pstrcat
    - ck_assert_ptr_null
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_response_make_sid_iss_unique
    - oidc_http_url_encode
    - apr_psprintf
    - apr_time_from_sec
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_dangling_sid_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4876,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4877,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4878,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4880,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4883,1
    - Dst: e2e_sign_backchannel_logout_jwt_ex
      Src: /src/mod_auth_openidc/test/test_handle.c:4885,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:4887,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:4887,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:4888,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4889,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:4890,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:4891,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4893,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4893,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - jti
    - with_iat
    argTypes:
    - char*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4896
      start: 4870
    functionDepth: 2
    functionLinenumber: 4870
    functionLinenumberEnd: 4896
    functionName: e2e_backchannel_logout_missing_claim
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - apr_pstrcat
    - apr_table_set
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - e2e_sign_backchannel_logout_jwt_ex
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST e2e_backchannel_logout_missing_claim(const char *jti, apr_byte_t
      with_iat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e2e_backchannel_logout_missing_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:4899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4900
      start: 4898
    functionDepth: 3
    functionLinenumber: 4898
    functionLinenumberEnd: 4900
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_backchannel_logout_missing_claim
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_logout_backchannel_missing_iat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e2e_backchannel_logout_missing_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:4904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4905
      start: 4901
    functionDepth: 3
    functionLinenumber: 4901
    functionLinenumberEnd: 4905
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_backchannel_logout_missing_claim
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_missing_jti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4909,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4910,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4911,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4913,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4916,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:4919,1
    - Dst: e2e_encrypt_symmetric
      Src: /src/mod_auth_openidc/test/test_handle.c:4921,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:4922,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:4922,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:4923,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4924,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:4925,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:4926,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4928,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4929,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4932
      start: 4906
    functionDepth: 3
    functionLinenumber: 4906
    functionLinenumberEnd: 4932
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_sign_backchannel_logout_jwt
    - apr_table_set
    - apr_pstrcat
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - e2e_encrypt_symmetric
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_encrypted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4936,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4937,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4938,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4939,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4942,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4947,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4948,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:4949,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:4950,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:4950,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:4951,1
    - Dst: oidc_session_set_session_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:4952,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/test/test_handle.c:4953,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/test/test_handle.c:4954,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4955,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_handle.c:4955,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:4959,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:4960,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:4960,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:4961,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4962,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:4963,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:4964,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:4966,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:4967,1
    - Dst: oidc_cache_get_session
      Src: /src/mod_auth_openidc/test/test_handle.c:4971,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:4972,1
    - Dst: oidc_cache_get_sid
      Src: /src/mod_auth_openidc/test/test_handle.c:4973,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/test/test_handle.c:4973,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:4974,1
    - Dst: oidc_cache_get_sid
      Src: /src/mod_auth_openidc/test/test_handle.c:4975,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/test/test_handle.c:4975,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:4976,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:4978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4979
      start: 4933
    functionDepth: 3
    functionLinenumber: 4933
    functionLinenumberEnd: 4979
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - oidc_cache_get_sid
    - oidc_cache_get_session
    - apr_time_now
    - e2e_sign_backchannel_logout_jwt
    - apr_table_set
    - oidc_test_cfg_get
    - oidc_logout
    - oidc_session_save
    - apr_pstrcat
    - ck_assert_ptr_null
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_session_set_session_expires
    - oidc_cfg_provider_issuer_get
    - oidc_response_make_sid_iss_unique
    - oidc_http_url_encode
    - apr_pstrdup
    - oidc_session_set_issuer
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_by_sub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4983,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4984,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:4985,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:4987,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:4990,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:4993,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:4995,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:4995,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:4996,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:4997,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:4998,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5000,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5001,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5004
      start: 4980
    functionDepth: 3
    functionLinenumber: 4980
    functionLinenumberEnd: 5004
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_sign_backchannel_logout_jwt
    - apr_pstrcat
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_missing_events_claim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5008,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5009,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5010,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5012,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5015,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:5018,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5020,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5020,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5021,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5022,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5023,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5025,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5026,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5029
      start: 5005
    functionDepth: 3
    functionLinenumber: 5005
    functionLinenumberEnd: 5029
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_sign_backchannel_logout_jwt
    - apr_pstrcat
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_nonce_claim_rejected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5033,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5034,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5036,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5041,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5043,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5044,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5047
      start: 5030
    functionDepth: 1
    functionLinenumber: 5030
    functionLinenumberEnd: 5047
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - apr_table_set
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_no_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5051,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5052,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5054,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5058,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5059,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5062
      start: 5048
    functionDepth: 1
    functionLinenumber: 5048
    functionLinenumberEnd: 5062
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_get_method_rejected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5066,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5067,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5069,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5074,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5074,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5075,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5076,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5077,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5079,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5080,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5083
      start: 5063
    functionDepth: 1
    functionLinenumber: 5063
    functionLinenumberEnd: 5083
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - apr_pstrcat
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_unsigned_rejected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5087,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5088,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5089,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5091,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5094,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5097,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:5100,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5102,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5102,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5103,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5104,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5105,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5107,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5108,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5111
      start: 5084
    functionDepth: 3
    functionLinenumber: 5084
    functionLinenumberEnd: 5111
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - apr_pstrdup
    - oidc_test_request_get
    - _oidc_strlen
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_sign_backchannel_logout_jwt
    - apr_pstrcat
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_unknown_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5115,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5116,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5117,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5119,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5122,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5124,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:5126,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5128,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5128,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5129,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5130,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5131,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5133,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5134,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5137
      start: 5112
    functionDepth: 3
    functionLinenumber: 5112
    functionLinenumberEnd: 5137
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_id_token_signed_response_alg_set
    - e2e_sign_backchannel_logout_jwt
    - apr_pstrcat
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_alg_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5141,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5142,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5143,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5145,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5147,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:5151,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5153,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5153,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5154,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5155,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5156,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5158,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5159,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5162
      start: 5138
    functionDepth: 3
    functionLinenumber: 5138
    functionLinenumberEnd: 5162
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_sign_backchannel_logout_jwt
    - apr_pstrcat
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_bad_signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5166,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5167,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5168,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5170,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5173,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:5176,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5178,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5178,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5179,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5180,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5181,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5183,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5184,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5187
      start: 5163
    functionDepth: 3
    functionLinenumber: 5163
    functionLinenumberEnd: 5187
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_sign_backchannel_logout_jwt
    - apr_pstrcat
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_no_sub_no_sid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5191,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5192,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5194,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5199,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5200,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5203
      start: 5188
    functionDepth: 1
    functionLinenumber: 5188
    functionLinenumberEnd: 5203
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_frontchannel_no_iss_static_provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5207,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5208,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5210,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5214,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5216,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5217,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5220
      start: 5204
    functionDepth: 1
    functionLinenumber: 5204
    functionLinenumberEnd: 5220
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - apr_table_set
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_frontchannel_accept_png_pixel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5228,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5229,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5230,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5231,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:5234,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5235,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5236,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:5236,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5237,1
    - Dst: oidc_cfg_http_timeout_long_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5240,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5248,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5249,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5250,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:5251,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:5251,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:5252,1
    - Dst: oidc_session_set_session_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:5253,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:5254,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/test/test_handle.c:5255,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5256,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/test/test_handle.c:5256,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5260,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5261,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5261,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5262,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5263,1
    - Dst: oidc_cache_get_session
      Src: /src/mod_auth_openidc/test/test_handle.c:5267,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5268,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5269,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5273,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5274,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:5275,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:5276,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5278,1
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5278,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:5280,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5281,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5282,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:5283,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:5283,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:5285,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:5285,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:5289,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5290,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5292
      start: 5221
    functionDepth: 1
    functionLinenumber: 5221
    functionLinenumberEnd: 5292
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_cache_get_session
    - apr_time_now
    - oidc_test_http_server_wait
    - oidc_session_set_refresh_token
    - oidc_cfg_http_timeout_long_get
    - _oidc_strstr
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_logout
    - oidc_test_http_server_stop
    - oidc_session_save
    - oidc_logout_request
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_session_set_session_expires
    - oidc_cfg_provider_issuer_get
    - oidc_response_make_sid_iss_unique
    - oidc_http_url_encode
    - apr_pstrdup
    - oidc_session_set_issuer
    - oidc_cfg_provider_ssl_validate_server_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_cfg_provider_revocation_endpoint_url_set
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_frontchannel_by_sid_does_not_revoke)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5298,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5299,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:5300,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5300,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:5301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5303
      start: 5293
    functionDepth: 1
    functionLinenumber: 5293
    functionLinenumberEnd: 5303
    functionName: oidc_session_t *e2e_revocable_session(request_rec *r, const oidc_provider_t
      *provider)
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_session_load
    - oidc_session_set_issuer
    - oidc_cfg_provider_issuer_get
    - oidc_session_set_refresh_token
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST oidc_session_t *e2e_revocable_session(request_rec *r, const
      oidc_provider_t *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5308,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5309,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5310,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5314,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5315,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:5316,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5317,1
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5317,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5318,1
    - Dst: e2e_revocable_session
      Src: /src/mod_auth_openidc/test/test_handle.c:5321,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5322,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5323,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5324,1
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5324,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:5325,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5326,1
    - Dst: e2e_revocable_session
      Src: /src/mod_auth_openidc/test/test_handle.c:5329,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5330,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5330,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5331,1
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5331,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5332,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5333,1
    - Dst: e2e_revocable_session
      Src: /src/mod_auth_openidc/test/test_handle.c:5336,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_handle.c:5337,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:5338,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5339,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5340,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5341,1
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5341,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5343
      start: 5307
    functionDepth: 1
    functionLinenumber: 5307
    functionLinenumberEnd: 5343
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_http_free_port
    - oidc_logout_request
    - apr_table_set
    - oidc_session_set_refresh_token
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_cfg_provider_token_endpoint_auth_set
    - e2e_revocable_session
    - oidc_cfg_provider_revocation_endpoint_url_set
    - oidc_session_free
    - ck_assert_int_ne
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_logout_revoke_tokens_negatives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5348,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5349,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5351,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5354,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5355,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5356,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5358,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5359,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5362
      start: 5344
    functionDepth: 1
    functionLinenumber: 5344
    functionLinenumberEnd: 5362
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - apr_pstrcat
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_garbage_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5367,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5368,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5369,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5373,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:5375,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5377,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5377,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5379,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5380,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5381,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5382,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5383,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5383,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5384,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5387,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5388,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5389,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5390,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5391,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5391,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5393
      start: 5363
    functionDepth: 3
    functionLinenumber: 5363
    functionLinenumberEnd: 5393
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_sign_backchannel_logout_jwt
    - apr_pstrcat
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_jti_replay)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5398,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5399,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5400,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5402,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5405,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:5407,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5409,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5410,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5411,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5412,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5413,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5415,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5415,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5417
      start: 5394
    functionDepth: 3
    functionLinenumber: 5394
    functionLinenumberEnd: 5417
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - e2e_sign_backchannel_logout_jwt
    - apr_pstrcat
    - apr_psprintf
    - oidc_http_url_encode
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_duplicate_logout_token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_handle.c:5426,1
    - Dst: get
      Src: /src/mod_auth_openidc/test/test_handle.c:5430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - section
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5431
      start: 5425
    functionDepth: 1
    functionLinenumber: 5425
    functionLinenumberEnd: 5431
    functionName: e2e_jti_cache_get
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - get
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t e2e_jti_cache_get(request_rec *r, const char *section, const
      char *key, char **value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test_handle.c:5435,1
    - Dst: set
      Src: /src/mod_auth_openidc/test/test_handle.c:5437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - r
    - section
    - key
    - value
    - expiry
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5438
      start: 5433
    functionDepth: 1
    functionLinenumber: 5433
    functionLinenumberEnd: 5438
    functionName: e2e_jti_cache_set
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - set
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t e2e_jti_cache_set(request_rec *r, const char *section,
      const char *key, const char *value,\n\t\t\t\t    apr_time_t expiry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5445,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5446,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5447,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5450,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5453,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5455,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/test/test_handle.c:5458,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5459,1
    - Dst: oidc_cache_set_sid
      Src: /src/mod_auth_openidc/test/test_handle.c:5460,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:5460,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:5460,1
    - Dst: e2e_sign_backchannel_logout_jwt
      Src: /src/mod_auth_openidc/test/test_handle.c:5462,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5463,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5465,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5465,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5466,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5467,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5468,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5473,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5473,1
    - Dst: oidc_cache_get_sid
      Src: /src/mod_auth_openidc/test/test_handle.c:5479,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5480,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5484
      start: 5444
    functionDepth: 3
    functionLinenumber: 5444
    functionLinenumberEnd: 5484
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - oidc_cache_get_sid
    - apr_time_now
    - e2e_sign_backchannel_logout_jwt
    - oidc_cache_set_sid
    - oidc_test_cfg_get
    - apr_pstrcat
    - ck_assert_ptr_null
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_response_make_sid_iss_unique
    - oidc_http_url_encode
    - apr_psprintf
    - apr_time_from_sec
    - ck_assert_int_eq
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_logout_backchannel_jti_cache_errors_fail_open)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5489,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5490,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5491,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5493,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5496,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5502,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_handle.c:5502,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_handle.c:5503,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5504,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:5505,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:5505,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:5506,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:5506,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:5507,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:5507,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:5508,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_handle.c:5508,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:5509,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:5509,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:5510,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_handle.c:5510,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/test/test_handle.c:5511,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:5512,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/test/test_handle.c:5512,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_handle.c:5513,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5514,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5515,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5517,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_handle.c:5517,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_handle.c:5518,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5519,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:5520,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:5521,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5523,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5523,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_handle.c:5524,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/test_handle.c:5525,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:5526,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5528,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5529,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5532
      start: 5485
    functionDepth: 1
    functionLinenumber: 5485
    functionLinenumberEnd: 5532
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - e2e_post_body
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_time_sec
    - apr_time_now
    - oidc_jose_jwt_serialize
    - oidc_test_cfg_get
    - apr_pstrcat
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - ck_assert_ptr_nonnull
    - _oidc_strlen
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_json_object
    - oidc_http_url_encode
    - oidc_json_string
    - oidc_util_key_symmetric_create
    - apr_pstrdup
    - oidc_jwt_destroy
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_backchannel_events_wrong_member)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5537,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5538,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5539,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5541,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:5543,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5543,1
    - Dst: oidc_session_set_idtoken
      Src: /src/mod_auth_openidc/test/test_handle.c:5544,1
    - Dst: oidc_cfg_provider_end_session_endpoint_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5545,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5546,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/test_handle.c:5549,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_handle.c:5550,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5551,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5552,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5553,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:5555,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:5555,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5559
      start: 5533
    functionDepth: 1
    functionLinenumber: 5533
    functionLinenumberEnd: 5559
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_session_set_issuer
    - oidc_cfg_provider_issuer_get
    - apr_table_set
    - oidc_session_set_idtoken
    - ck_assert_msg
    - apr_table_get
    - oidc_cfg_provider_end_session_endpoint_set
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_session_free
    - oidc_logout
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_op_request_refresh_hint_fails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5569,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5570,1
    - Dst: oidc_request_uri
      Src: /src/mod_auth_openidc/test/test_handle.c:5574,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5576
      start: 5560
    functionDepth: 1
    functionLinenumber: 5560
    functionLinenumberEnd: 5576
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - oidc_request_uri
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_request_uri_missing_param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5580,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5581,1
    - Dst: oidc_request_uri
      Src: /src/mod_auth_openidc/test/test_handle.c:5585,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5587
      start: 5577
    functionDepth: 1
    functionLinenumber: 5577
    functionLinenumberEnd: 5587
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_cfg_get
    - oidc_test_request_get
    - oidc_request_uri
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_request_uri_not_cached)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5591,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5592,1
    - Dst: oidc_cache_set_request_uri
      Src: /src/mod_auth_openidc/test/test_handle.c:5597,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:5597,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:5597,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5599,1
    - Dst: oidc_request_uri
      Src: /src/mod_auth_openidc/test/test_handle.c:5600,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5601,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5604,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5605,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5606,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5606,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5607,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5607,1
    - Dst: oidc_cache_get_request_uri
      Src: /src/mod_auth_openidc/test/test_handle.c:5610,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5612
      start: 5588
    functionDepth: 1
    functionLinenumber: 5588
    functionLinenumberEnd: 5612
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_cache_get_request_uri
    - oidc_request_uri
    - oidc_test_cfg_get
    - apr_time_now
    - oidc_cache_set_request_uri
    - apr_psprintf
    - oidc_request_state_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_null
    - apr_time_from_sec
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_request_uri_happy_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5623,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5624,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5626,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5634,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5635,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5636,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5637,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5640
      start: 5613
    functionDepth: 1
    functionLinenumber: 5613
    functionLinenumberEnd: 5640
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_session_free
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dispatch_jwks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5650,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5651,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5653,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5658,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5658,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5661
      start: 5641
    functionDepth: 1
    functionLinenumber: 5641
    functionLinenumberEnd: 5661
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dispatch_request_uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5665,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5666,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5668,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5673,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5673,1
    - Dst: oidc_cache_set_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:5677,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:5677,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:5677,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5678,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5678,1
    - Dst: oidc_cache_get_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:5679,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5680,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5683
      start: 5662
    functionDepth: 1
    functionLinenumber: 5662
    functionLinenumberEnd: 5683
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_cache_get_access_token
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_free
    - apr_time_now
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cache_set_access_token
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dispatch_remove_at_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5687,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5688,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5690,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/test/test_handle.c:5695,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:5695,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:5695,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5699,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5699,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5700,1
    - Dst: oidc_cache_get_session
      Src: /src/mod_auth_openidc/test/test_handle.c:5701,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5702,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5705
      start: 5684
    functionDepth: 1
    functionLinenumber: 5684
    functionLinenumberEnd: 5705
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cache_get_session
    - oidc_test_cfg_get
    - apr_time_now
    - oidc_cache_set_session
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_session_free
    - apr_time_from_sec
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dispatch_revoke_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5709,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5710,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5712,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5719,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5720,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5721,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5722,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5725
      start: 5706
    functionDepth: 1
    functionLinenumber: 5706
    functionLinenumberEnd: 5725
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_session_free
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dispatch_dpop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5729,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5730,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5732,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5736,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5739,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5740,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5743
      start: 5726
    functionDepth: 1
    functionLinenumber: 5726
    functionLinenumberEnd: 5743
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dispatch_info_no_session_returns_unauthorized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5747,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5748,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5750,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5757,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5758,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5761
      start: 5744
    functionDepth: 1
    functionLinenumber: 5744
    functionLinenumberEnd: 5761
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dispatch_unknown_args_returns_500)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5765,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5766,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5768,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5776,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5777,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5780,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5781,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5782,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5783,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:5784,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:5784,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5788
      start: 5762
    functionDepth: 1
    functionLinenumber: 5762
    functionLinenumberEnd: 5788
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - _oidc_strstr
    - ck_assert_msg
    - oidc_request_state_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_session_free
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dispatch_empty_args_routes_to_implicit_flow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5792,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5793,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5795,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5800,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5802,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5803,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5806
      start: 5789
    functionDepth: 1
    functionLinenumber: 5789
    functionLinenumberEnd: 5806
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - apr_table_set
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dispatch_logout_takes_precedence_over_post_authn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5812,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:5814,1
    - Dst: oidc_session_set_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:5816,1
    - Dst: oidc_session_set_session_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:5818,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_handle.c:5818,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_handle.c:5818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - r
    - session
    - with_issuer
    argTypes:
    - request_rec*
    - oidc_session_t*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5819
      start: 5807
    functionDepth: 1
    functionLinenumber: 5807
    functionLinenumberEnd: 5819
    functionName: existing_session_seed
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_session_set_issuer
    - apr_time_now
    - oidc_session_set_session_expires
    - oidc_session_set_cookie_domain
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST existing_session_seed(request_rec *r, oidc_session_t *session,
      apr_byte_t with_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5824,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5825,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5826,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5831,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5832,1
    - Dst: oidc_cfg_provider_pkce_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5832,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:5837,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5838,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:5842,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5843,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5844,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:5844,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5845,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5847,1
    - Dst: e2e_implicit_state_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:5848,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:5849,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/test_handle.c:5849,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5850,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5850,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:5851,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:5852,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5853,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5856,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5858,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5858,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5859,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5862,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5863,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5865,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:5866,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5869
      start: 5823
    functionDepth: 3
    functionLinenumber: 5823
    functionLinenumberEnd: 5869
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - oidc_cfg_provider_pkce_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_msg
    - ck_assert_ptr_null
    - e2e_sign_idtoken_hs256
    - e2e_implicit_state_cookie
    - ck_assert_ptr_nonnull
    - oidc_handle_redirect_uri_request
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_http_url_encode
    - apr_pstrdup
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_dispatch_response_and_discovery)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5875,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5876,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:5877,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5879,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5881,1
    - Dst: oidc_cmd_cookie_domain_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5881,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5881,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5882,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5883,1
    - Dst: oidc_cmd_dir_pass_idtoken_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5883,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5884,1
    - Dst: oidc_cmd_dir_pass_idtoken_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5884,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5885,1
    - Dst: oidc_cmd_dir_pass_idtoken_as_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5885,1
    - Dst: existing_session_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:5886,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:5887,1
    - Dst: oidc_session_set_idtoken_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:5888,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:5889,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/test/test_handle.c:5890,1
    - Dst: oidc_session_set_scope
      Src: /src/mod_auth_openidc/test/test_handle.c:5891,1
    - Dst: oidc_session_set_idtoken
      Src: /src/mod_auth_openidc/test/test_handle.c:5892,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5896,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5896,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5898,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5898,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5899,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5900,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5901,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:5903,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:5904,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5906
      start: 5870
    functionDepth: 2
    functionLinenumber: 5870
    functionLinenumberEnd: 5906
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - json_pack
    - apr_table_get
    - oidc_test_cfg_get
    - oidc_session_set_userinfo_claims
    - oidc_cmd_cookie_domain_set
    - ck_assert_ptr_null
    - oidc_session_set_scope
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_handle_redirect_uri_request
    - oidc_session_set_idtoken_claims
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cmd_dir_pass_idtoken_as_set
    - oidc_session_load
    - oidc_json_decref
    - existing_session_seed
    - oidc_session_set_idtoken
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dispatch_existing_session_passes_tokens)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5910,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5911,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:5912,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5914,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5918,1
    - Dst: oidc_cmd_cookie_domain_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5918,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5918,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5919,1
    - Dst: oidc_cmd_dir_authn_header_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5919,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5919,1
    - Dst: existing_session_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:5920,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5923,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5923,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:5924,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5925,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:5926,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5929
      start: 5907
    functionDepth: 2
    functionLinenumber: 5907
    functionLinenumberEnd: 5929
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_test_cmd_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cmd_dir_authn_header_set
    - oidc_cmd_cookie_domain_set
    - ck_assert_ptr_null
    - ck_assert_table_str
    - ck_assert_int_eq
    - ck_assert_str_eq
    - existing_session_seed
    - oidc_session_free
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_dispatch_info_happy_sets_authn_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5933,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5934,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5936,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:5940,1
    - Dst: oidc_session_set_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:5941,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5944,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5944,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5947
      start: 5930
    functionDepth: 1
    functionLinenumber: 5930
    functionLinenumberEnd: 5947
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_cookie_domain
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_existing_session_cookie_domain_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5951,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5952,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:5953,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5954,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5956,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5961,1
    - Dst: oidc_cmd_cookie_domain_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5961,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5961,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5965,1
    - Dst: oidc_cmd_dir_refresh_access_token_before_expiry_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5965,1
    - Dst: existing_session_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:5968,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:5969,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5970,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5970,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5973,1
    - Dst: oidc_cmd_dir_refresh_access_token_before_expiry_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5973,1
    - Dst: existing_session_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:5974,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:5975,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5976,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5976,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:5980,1
    - Dst: oidc_cmd_dir_refresh_access_token_before_expiry_set
      Src: /src/mod_auth_openidc/test/test_handle.c:5981,1
    - Dst: existing_session_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:5982,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:5983,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:5984,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:5984,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:5986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5987
      start: 5948
    functionDepth: 2
    functionLinenumber: 5948
    functionLinenumberEnd: 5987
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_session_set_access_token_expires
    - oidc_cmd_cookie_domain_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - existing_session_seed
    - oidc_cmd_dir_refresh_access_token_before_expiry_set
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_existing_session_refresh_error_actions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5991,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5992,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5993,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:5994,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:5996,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6001,1
    - Dst: oidc_cmd_cookie_domain_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6001,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6001,1
    - Dst: existing_session_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:6005,1
    - Dst: oidc_session_set_userinfo_refresh_interval
      Src: /src/mod_auth_openidc/test/test_handle.c:6006,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6007,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:6007,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6010,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6011,1
    - Dst: oidc_cmd_provider_userinfo_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6011,1
    - Dst: existing_session_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:6012,1
    - Dst: oidc_session_set_userinfo_refresh_interval
      Src: /src/mod_auth_openidc/test/test_handle.c:6013,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6014,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:6014,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6018,1
    - Dst: oidc_cmd_provider_userinfo_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6018,1
    - Dst: existing_session_seed
      Src: /src/mod_auth_openidc/test/test_handle.c:6019,1
    - Dst: oidc_session_set_userinfo_refresh_interval
      Src: /src/mod_auth_openidc/test/test_handle.c:6020,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6021,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/test_handle.c:6021,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:6023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6024
      start: 5988
    functionDepth: 2
    functionLinenumber: 5988
    functionLinenumberEnd: 6024
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - oidc_test_cmd_get
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_userinfo_endpoint_url_set
    - oidc_cmd_cookie_domain_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_session_set_userinfo_refresh_interval
    - existing_session_seed
    - oidc_cmd_provider_userinfo_refresh_interval_set
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_existing_session_userinfo_error_actions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6036,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6037,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:6039,1
    - Dst: oidc_request_state_json_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6040,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:6041,1
    - Dst: oidc_authz_24_checker_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:6043,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6045
      start: 6025
    functionDepth: 1
    functionLinenumber: 6025
    functionLinenumberEnd: 6045
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_request_state_json_set
    - ck_assert_int_eq
    - json_pack
    - oidc_authz_24_checker_claim
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_claim_granted_from_idtoken)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6053,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6054,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:6055,1
    - Dst: oidc_request_state_json_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6056,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:6057,1
    - Dst: oidc_authz_24_checker_claims_expr
      Src: /src/mod_auth_openidc/test/test_handle.c:6061,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6063
      start: 6052
    functionDepth: 1
    functionLinenumber: 6052
    functionLinenumberEnd: 6063
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_authz_24_checker_claims_expr
    - oidc_request_state_json_set
    - ck_assert_int_eq
    - json_pack
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_authz_24_claims_expr_granted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6068,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6069,1
    - Dst: json_pack
      Src: /src/mod_auth_openidc/test/test_handle.c:6070,1
    - Dst: oidc_request_state_json_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6071,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_handle.c:6072,1
    - Dst: oidc_authz_24_checker_claims_expr
      Src: /src/mod_auth_openidc/test/test_handle.c:6074,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6076
      start: 6064
    functionDepth: 1
    functionLinenumber: 6064
    functionLinenumberEnd: 6076
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_json_decref
    - oidc_authz_24_checker_claims_expr
    - oidc_request_state_json_set
    - ck_assert_int_eq
    - json_pack
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_claims_expr_denied)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6082,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:6083,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6085,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6086,1
    - Dst: oidc_cmd_dir_unauth_action_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6086,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6088,1
    - Dst: oidc_authz_24_checker_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:6089,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6091
      start: 6077
    functionDepth: 2
    functionLinenumber: 6077
    functionLinenumberEnd: 6091
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_unauth_action_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_authz_24_checker_claim
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_anonymous_unauth_pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6095,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6096,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6098,1
    - Dst: oidc_authz_24_checker_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:6100,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6102
      start: 6092
    functionDepth: 1
    functionLinenumber: 6092
    functionLinenumberEnd: 6102
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_authz_24_checker_claim
    - oidc_request_state_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_anonymous_skip_via_discovery_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6106,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6107,1
    - Dst: oidc_authz_24_checker_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:6110,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6112
      start: 6103
    functionDepth: 1
    functionLinenumber: 6103
    functionLinenumberEnd: 6112
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_authz_24_checker_claim
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_anonymous_options_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6116,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6117,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6121,1
    - Dst: oidc_authz_24_checker_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:6123,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6125
      start: 6113
    functionDepth: 1
    functionLinenumber: 6113
    functionLinenumberEnd: 6125
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_authz_24_checker_claim
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_oauth20_denied)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6129,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6130,1
    - Dst: oidc_test_set_auth_type
      Src: /src/mod_auth_openidc/test/test_handle.c:6134,1
    - Dst: oidc_authz_24_checker_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:6136,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6137,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_handle.c:6138,1
    - Dst: oidc_test_set_auth_type
      Src: /src/mod_auth_openidc/test/test_handle.c:6142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6143
      start: 6126
    functionDepth: 1
    functionLinenumber: 6126
    functionLinenumberEnd: 6143
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_set_auth_type
    - ck_assert_table_str
    - ck_assert_int_eq
    - oidc_authz_24_checker_claim
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_oauth20_sets_bearer_scope_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6147,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:6148,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6149,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6150,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6154,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6155,1
    - Dst: oidc_cmd_dir_unautz_action_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6155,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6158,1
    - Dst: oidc_authz_24_checker_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:6159,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6160,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6161,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6164,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6164,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6167,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6168,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:6169,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:6169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6171
      start: 6144
    functionDepth: 2
    functionLinenumber: 6144
    functionLinenumberEnd: 6171
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - apr_table_set
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_request_state_get
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_cmd_dir_unautz_action_set
    - oidc_authz_24_checker_claim
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_unautz_authenticate_redirects)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6175,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:6176,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6177,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6178,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6181,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6182,1
    - Dst: oidc_cmd_dir_unautz_action_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6182,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6186,1
    - Dst: oidc_authz_24_checker_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:6188,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6189,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6190,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6190,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6191,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6192
      start: 6172
    functionDepth: 2
    functionLinenumber: 6172
    functionLinenumberEnd: 6192
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - apr_table_set
    - ck_assert_ptr_null
    - oidc_request_state_get
    - ck_assert_int_eq
    - oidc_cmd_dir_unautz_action_set
    - oidc_authz_24_checker_claim
    - apr_table_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_unautz_authenticate_xhr_denied_401)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6196,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:6197,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6198,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6199,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6202,1
    - Dst: oidc_cmd_dir_unautz_action_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6202,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6202,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6208,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6209,1
    - Dst: oidc_cmd_dir_unauth_action_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6209,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6210,1
    - Dst: oidc_authz_24_checker_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:6212,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6213,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6215,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6216,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:6217,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:6217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6219
      start: 6193
    functionDepth: 2
    functionLinenumber: 6193
    functionLinenumberEnd: 6219
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_test_cmd_get
    - oidc_cmd_dir_unauth_action_set
    - apr_table_set
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_request_state_get
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_cmd_dir_unautz_action_set
    - oidc_authz_24_checker_claim
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_unautz_authenticate_expr_bypasses_xhr_check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6223,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:6224,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6225,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6226,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6228,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6229,1
    - Dst: oidc_cmd_dir_unautz_action_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6229,1
    - Dst: oidc_authz_24_checker_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:6231,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6233
      start: 6220
    functionDepth: 2
    functionLinenumber: 6220
    functionLinenumberEnd: 6233
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_dir_unautz_action_set
    - oidc_authz_24_checker_claim
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_oidc_unautz_return_401)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6237,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:6238,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6239,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6240,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6242,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6243,1
    - Dst: oidc_cmd_dir_unautz_action_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6243,1
    - Dst: oidc_authz_24_checker_claim
      Src: /src/mod_auth_openidc/test/test_handle.c:6245,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6247
      start: 6234
    functionDepth: 2
    functionLinenumber: 6234
    functionLinenumberEnd: 6247
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cmd_dir_unautz_action_set
    - oidc_authz_24_checker_claim
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_authz_24_oidc_unautz_return_302)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6256,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6257,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6260,1
    - Dst: oidc_request_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:6260,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6263,1
    - Dst: oidc_request_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:6263,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6266,1
    - Dst: oidc_request_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:6266,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6269,1
    - Dst: oidc_cmd_cookie_domain_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6269,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6269,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6270,1
    - Dst: oidc_request_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:6270,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6271,1
    - Dst: oidc_request_check_cookie_domain
      Src: /src/mod_auth_openidc/test/test_handle.c:6271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6272
      start: 6248
    functionDepth: 2
    functionLinenumber: 6248
    functionLinenumberEnd: 6272
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_request_check_cookie_domain
    - oidc_test_cfg_get
    - oidc_cmd_cookie_domain_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_request_check_cookie_domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6276,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6277,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6278,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6281,1
    - Dst: oidc_request_authenticate_user
      Src: /src/mod_auth_openidc/test/test_handle.c:6281,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6285,1
    - Dst: oidc_request_authenticate_user
      Src: /src/mod_auth_openidc/test/test_handle.c:6286,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6292,1
    - Dst: oidc_cfg_provider_response_mode_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6292,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6293,1
    - Dst: oidc_cfg_provider_check_session_iframe_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6294,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6295,1
    - Dst: oidc_request_authenticate_user
      Src: /src/mod_auth_openidc/test/test_handle.c:6295,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6298,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6299,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:6300,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:6300,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:6302,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:6302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6303
      start: 6273
    functionDepth: 1
    functionLinenumber: 6273
    functionLinenumberEnd: 6303
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_request_authenticate_user
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_check_session_iframe_set
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_cfg_provider_response_mode_set
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_request_authenticate_user_branches)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6307,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6308,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6309,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/test_handle.c:6313,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/test_handle.c:6314,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:6315,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/test_handle.c:6316,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/test_handle.c:6317,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/test_handle.c:6318,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/test_handle.c:6319,1
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/test/test_handle.c:6320,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/test_handle.c:6321,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6322,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6323,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:6323,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6325,1
    - Dst: oidc_cmd_max_number_of_state_cookies_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6325,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6325,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6328,1
    - Dst: oidc_request_authenticate_user
      Src: /src/mod_auth_openidc/test/test_handle.c:6328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6331
      start: 6304
    functionDepth: 2
    functionLinenumber: 6304
    functionLinenumberEnd: 6331
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_to_cookie
    - apr_table_set
    - oidc_request_authenticate_user
    - oidc_test_cfg_get
    - oidc_cmd_max_number_of_state_cookies_set
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    - oidc_proto_state_set_issuer
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_proto_state_set_nonce
    - oidc_cfg_provider_get
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - oidc_proto_state_new
    - oidc_proto_state_set_response_type
    - oidc_proto_state_set_timestamp_now
    - oidc_proto_state_set_original_method
    - apr_psprintf
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_request_authenticate_user_too_many_state_cookies)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6335,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6336,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6340,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6341,1
    - Dst: mkdtemp
      Src: /src/mod_auth_openidc/test/test_handle.c:6341,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6342,1
    - Dst: oidc_cmd_metadata_dir_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6342,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6342,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6343,1
    - Dst: oidc_request_authenticate_user
      Src: /src/mod_auth_openidc/test/test_handle.c:6343,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6346,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6347,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6348,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6348,1
    - Dst: rmdir
      Src: /src/mod_auth_openidc/test/test_handle.c:6349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6350
      start: 6332
    functionDepth: 2
    functionLinenumber: 6332
    functionLinenumberEnd: 6350
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - mkdtemp
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_request_authenticate_user
    - oidc_test_cfg_get
    - oidc_cmd_metadata_dir_set
    - ck_assert_ptr_null
    - oidc_request_state_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - rmdir
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_request_authenticate_user_discovery_and_static_metadata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6354,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6355,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6356,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6360,1
    - Dst: oidc_cfg_provider_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6360,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6361,1
    - Dst: oidc_request_authenticate_user
      Src: /src/mod_auth_openidc/test/test_handle.c:6361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6364
      start: 6351
    functionDepth: 1
    functionLinenumber: 6351
    functionLinenumberEnd: 6364
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - oidc_request_authenticate_user
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_metadata_url_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_request_authenticate_user_static_config_fails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6373,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6374,1
    - Dst: oidc_util_http_content_prep
      Src: /src/mod_auth_openidc/test/test_handle.c:6376,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:6377,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6379
      start: 6365
    functionDepth: 1
    functionLinenumber: 6365
    functionLinenumberEnd: 6379
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_content_handler
    - ck_assert_int_eq
    - oidc_util_http_content_prep
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_redirect_uri_http_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6383,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6384,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/test/test_handle.c:6386,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:6387,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6389
      start: 6380
    functionDepth: 1
    functionLinenumber: 6380
    functionLinenumberEnd: 6389
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_content_handler
    - ck_assert_int_eq
    - oidc_util_html_content_prep
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_redirect_uri_html_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6393,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6394,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:6397,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6399
      start: 6390
    functionDepth: 1
    functionLinenumber: 6390
    functionLinenumberEnd: 6399
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_content_handler
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_redirect_uri_info_no_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6403,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6404,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:6406,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6409
      start: 6400
    functionDepth: 1
    functionLinenumber: 6400
    functionLinenumberEnd: 6409
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - ck_assert_int_eq
    - oidc_content_handler
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_redirect_uri_dpop_disabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6413,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_handle.c:6414,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6415,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6419,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6420,1
    - Dst: oidc_cmd_dir_discover_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6420,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6421,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:6422,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6424
      start: 6410
    functionDepth: 2
    functionLinenumber: 6410
    functionLinenumberEnd: 6424
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_content_handler
    - ck_assert_ptr_null
    - oidc_cmd_dir_discover_url_set
    - ck_assert_int_eq
    - oidc_request_state_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_discovery_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6428,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6429,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/test/test_handle.c:6431,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:6432,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6434
      start: 6425
    functionDepth: 1
    functionLinenumber: 6425
    functionLinenumberEnd: 6434
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_content_handler
    - ck_assert_int_eq
    - oidc_util_html_content_prep
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_authn_post_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6438,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6439,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/test/test_handle.c:6441,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:6442,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6444
      start: 6435
    functionDepth: 1
    functionLinenumber: 6435
    functionLinenumberEnd: 6444
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_content_handler
    - ck_assert_int_eq
    - oidc_util_html_content_prep
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_authn_preserve_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6448,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6449,1
    - Dst: oidc_util_http_content_prep
      Src: /src/mod_auth_openidc/test/test_handle.c:6451,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:6452,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6454
      start: 6445
    functionDepth: 1
    functionLinenumber: 6445
    functionLinenumberEnd: 6454
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_content_handler
    - ck_assert_int_eq
    - oidc_util_http_content_prep
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_http_state_non_redirect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6458,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6459,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/test/test_handle.c:6461,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/test_handle.c:6462,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6464
      start: 6455
    functionDepth: 1
    functionLinenumber: 6455
    functionLinenumberEnd: 6464
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_content_handler
    - ck_assert_int_eq
    - oidc_util_html_content_prep
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_content_handler_html_state_non_redirect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6476,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6477,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:6479,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6480,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/test_handle.c:6481,1
    - Dst: oidc_session_set_access_token_type
      Src: /src/mod_auth_openidc/test/test_handle.c:6482,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/test/test_handle.c:6483,1
    - Dst: oidc_session_set_idtoken
      Src: /src/mod_auth_openidc/test/test_handle.c:6484,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:6485,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6493,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6494,1
    - Dst: oidc_cmd_info_hook_data_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6494,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/test/test_handle.c:6498,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6499,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:6501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6502
      start: 6465
    functionDepth: 2
    functionLinenumber: 6465
    functionLinenumberEnd: 6502
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_session_load
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - oidc_session_set_access_token_type
    - oidc_cmd_info_hook_data_set
    - oidc_session_set_access_token_expires
    - oidc_session_set_idtoken
    - oidc_session_set_refresh_token
    - ck_assert_ptr_null
    - oidc_info_request
    - oidc_session_set_access_token
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_info_json_full_hook_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6512,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6513,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6514,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:6516,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:6519,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6520,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6521,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:6521,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6522,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6526,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:6527,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6527,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:6528,1
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/test/test_handle.c:6530,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6531,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:6533,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6534,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6535,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:6536,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:6536,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:6538,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_handle.c:6538,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:6541,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:6542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6543
      start: 6503
    functionDepth: 1
    functionLinenumber: 6503
    functionLinenumberEnd: 6543
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - oidc_session_set_refresh_token
    - _oidc_strstr
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_logout_request
    - ck_assert_msg
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_issuer_get
    - apr_pstrdup
    - oidc_session_set_issuer
    - oidc_cfg_provider_ssl_validate_server_set
    - ck_assert_int_eq
    - oidc_cfg_provider_revocation_endpoint_url_set
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_revoke_tokens)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6547,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6548,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6549,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:6551,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6554,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/test_handle.c:6555,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6555,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:6556,1
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/test/test_handle.c:6558,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6559,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:6561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6562
      start: 6544
    functionDepth: 1
    functionLinenumber: 6544
    functionLinenumberEnd: 6562
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_session_load
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_session_set_issuer
    - oidc_cfg_provider_issuer_get
    - oidc_logout_request
    - oidc_session_set_refresh_token
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_logout_revoke_tokens_no_endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6572,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6573,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6574,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:6576,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:6577,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:6584,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6585,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6586,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:6586,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6587,1
    - Dst: oidc_cfg_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6588,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6590,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:6590,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:6591,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:6592,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_handle.c:6596,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_handle.c:6597,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6598,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:6599,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6602,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:6602,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6603,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6604,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:6606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6607
      start: 6563
    functionDepth: 1
    functionLinenumber: 6563
    functionLinenumberEnd: 6607
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - oidc_refresh_token_grant
    - oidc_test_http_free_port
    - oidc_session_set_refresh_token
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_get
    - oidc_cfg_provider_scope_set
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_grant_cache_hit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6611,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6612,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6613,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/test_handle.c:6615,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:6616,1
    - Dst: oidc_cache_set_refresh_token
      Src: /src/mod_auth_openidc/test/test_handle.c:6619,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6624,1
    - Dst: e2e_sign_idtoken_hs256
      Src: /src/mod_auth_openidc/test/test_handle.c:6626,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:6631,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_handle.c:6635,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6636,1
    - Dst: oidc_cfg_provider_token_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6637,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_handle.c:6637,1
    - Dst: oidc_cfg_provider_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6638,1
    - Dst: oidc_cfg_provider_scope_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6639,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6642,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/test/test_handle.c:6642,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_handle.c:6643,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6644,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_handle.c:6646,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_handle.c:6647,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/test_handle.c:6648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6649
      start: 6608
    functionDepth: 2
    functionLinenumber: 6608
    functionLinenumberEnd: 6649
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_wait
    - oidc_refresh_token_grant
    - oidc_session_set_refresh_token
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - e2e_sign_idtoken_hs256
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_session_load
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - oidc_cfg_provider_scope_set
    - oidc_cache_set_refresh_token
    - oidc_cfg_provider_ssl_validate_server_set
    - oidc_cfg_provider_token_endpoint_url_set
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_session_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_refresh_grant_with_id_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6659,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6660,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6662,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:6663,1
    - Dst: mkdtemp
      Src: /src/mod_auth_openidc/test/test_handle.c:6663,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6664,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6665,1
    - Dst: oidc_cmd_metadata_dir_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6665,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6674,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_handle.c:6674,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:6674,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:6678,1
    - Dst: apr_file_write
      Src: /src/mod_auth_openidc/test/test_handle.c:6679,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_handle.c:6680,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6682,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_handle.c:6682,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:6682,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:6686,1
    - Dst: apr_file_write
      Src: /src/mod_auth_openidc/test/test_handle.c:6687,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_handle.c:6688,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:6695,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6697
      start: 6650
    functionDepth: 2
    functionLinenumber: 6650
    functionLinenumberEnd: 6697
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - mkdtemp
    - oidc_test_cmd_get
    - apr_file_open
    - _oidc_strlen
    - oidc_test_cfg_get
    - apr_file_close
    - oidc_cmd_metadata_dir_set
    - apr_file_write
    - ck_assert_msg
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_discovery_response
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_test_config_short_circuit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6713,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_handle.c:6713,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:6713,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:6717,1
    - Dst: apr_file_write
      Src: /src/mod_auth_openidc/test/test_handle.c:6718,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_handle.c:6719,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6721,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test_handle.c:6721,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_handle.c:6721,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_handle.c:6725,1
    - Dst: apr_file_write
      Src: /src/mod_auth_openidc/test/test_handle.c:6726,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test_handle.c:6727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - r
    - tmpl
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6728
      start: 6698
    functionDepth: 1
    functionLinenumber: 6698
    functionLinenumberEnd: 6728
    functionName: oidc_test_discovery_write_metadata_dir
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_file_open
    - ck_assert_int_eq
    - apr_file_close
    - apr_psprintf
    - apr_file_write
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST oidc_test_discovery_write_metadata_dir(request_rec *r, const
      char *tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6731,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6732,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6734,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:6735,1
    - Dst: mkdtemp
      Src: /src/mod_auth_openidc/test/test_handle.c:6735,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6736,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6737,1
    - Dst: oidc_cmd_metadata_dir_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6737,1
    - Dst: oidc_test_discovery_write_metadata_dir
      Src: /src/mod_auth_openidc/test/test_handle.c:6738,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6740,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6741,1
    - Dst: oidc_cmd_discover_issuers_allowed_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6741,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:6746,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6748
      start: 6730
    functionDepth: 2
    functionLinenumber: 6730
    functionLinenumberEnd: 6748
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - mkdtemp
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cmd_metadata_dir_set
    - oidc_test_discovery_write_metadata_dir
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_discovery_response
    - ck_assert_int_eq
    - oidc_cmd_discover_issuers_allowed_set
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_handle_discovery_response_issuer_not_allowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6752,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6753,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_handle.c:6755,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_handle.c:6756,1
    - Dst: mkdtemp
      Src: /src/mod_auth_openidc/test/test_handle.c:6756,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6757,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6758,1
    - Dst: oidc_cmd_metadata_dir_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6758,1
    - Dst: oidc_test_discovery_write_metadata_dir
      Src: /src/mod_auth_openidc/test/test_handle.c:6759,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_handle.c:6761,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_handle.c:6762,1
    - Dst: oidc_cmd_discover_issuers_allowed_set
      Src: /src/mod_auth_openidc/test/test_handle.c:6762,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/test_handle.c:6767,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_handle.c:6768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6769
      start: 6749
    functionDepth: 2
    functionLinenumber: 6749
    functionLinenumberEnd: 6769
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - mkdtemp
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - oidc_cmd_metadata_dir_set
    - oidc_test_discovery_write_metadata_dir
    - ck_assert_msg
    - ck_assert_ptr_null
    - oidc_discovery_response
    - ck_assert_int_eq
    - oidc_cmd_discover_issuers_allowed_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_handle_discovery_response_issuer_allowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:6773,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:6774,1
    - Dst: tcase_set_timeout
      Src: /src/mod_auth_openidc/test/test_handle.c:6775,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6776,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6777,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6778,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6779,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6780,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6781,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6782,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6783,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6784,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6785,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6786,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6787,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6788,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6789,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6790,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6791,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6792,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6793,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6794,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6795,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6796,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6798,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6799,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6801,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:6803,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:6804,1
    - Dst: tcase_set_timeout
      Src: /src/mod_auth_openidc/test/test_handle.c:6805,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6806,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6807,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6808,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6809,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6810,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6811,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6812,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6813,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6814,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6815,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6816,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6817,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6818,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6819,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6820,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6821,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6822,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6823,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6824,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6825,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6826,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:6828,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:6829,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6830,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6831,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6832,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6833,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6834,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6835,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6836,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6837,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6838,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6839,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6840,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6841,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6842,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6843,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6844,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6845,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6846,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6847,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6848,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6849,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6850,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6851,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6852,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6853,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6854,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6855,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6856,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6857,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6858,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6859,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6860,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6861,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6862,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6863,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6864,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6865,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6866,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6867,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:6869,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:6870,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6871,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6872,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6873,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6874,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6875,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6876,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6877,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6878,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6879,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6880,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6881,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6882,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6883,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6884,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6885,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6886,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6887,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6888,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6889,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6890,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6891,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:6893,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:6894,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6895,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6896,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6897,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6898,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6899,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6900,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6901,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:6903,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:6904,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6905,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6906,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6907,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6908,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6909,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6910,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:6912,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:6913,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6914,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6915,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6916,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6917,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6918,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:6920,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:6921,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6922,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6923,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6924,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6925,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6926,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6927,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6928,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6929,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6930,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6931,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6932,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6933,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6934,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6935,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6936,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6937,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6938,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6939,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6940,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6941,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6942,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6943,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6944,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6945,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6946,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6947,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6948,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6949,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6950,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:6952,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:6953,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6954,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6955,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6956,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6957,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6958,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6959,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6960,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6961,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6962,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6963,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6964,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6965,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6966,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6967,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6968,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6969,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6970,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6971,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6972,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6973,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6974,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6975,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6976,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6977,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6978,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6979,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6980,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6981,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6982,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6983,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6984,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6985,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6986,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6987,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6988,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:6990,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:6991,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6992,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6993,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6994,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6995,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6996,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6997,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6998,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:6999,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7000,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7001,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7002,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7003,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7004,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7005,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:7007,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:7008,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7009,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7011,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7012,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7014,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7015,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7016,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7017,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7018,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7019,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7020,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7021,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7022,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7023,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:7025,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:7026,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7027,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7028,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7029,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7030,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7031,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7032,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7033,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7034,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7035,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7036,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7037,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7038,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7039,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7040,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:7042,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:7043,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7044,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7045,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7046,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7047,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7048,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:7050,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:7051,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7052,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7053,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7054,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7055,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7056,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7057,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7058,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:7060,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:7061,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7062,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7063,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7064,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:7066,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:7067,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7068,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7069,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7070,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7071,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7072,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7073,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7074,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7075,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7076,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7077,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7078,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7079,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7080,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7081,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7082,1
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_handle.c:7084,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7085,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7086,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7087,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7088,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7089,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7090,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7091,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7092,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7093,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7094,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7095,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_handle.c:7097,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_handle.c:7098,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7099,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7100,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7101,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7102,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_handle.c:7103,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7104,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7106,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7107,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7108,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7109,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_handle.c:7110,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_handle.c:7112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 300
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7113
      start: 6770
    functionDepth: 1
    functionLinenumber: 6770
    functionLinenumberEnd: 7113
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_handle.c
    functionUses: 9
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_set_timeout
    - tcase_add_checked_fixture
    - tcase_add_test
    - suite_add_tcase
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_socket_recv
      Src: /src/mod_auth_openidc/test/http_server.c:56,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - sock
    - buf
    - cap
    - received_total
    argTypes:
    - apr_socket_t*
    - char*
    - apr_size_t
    - apr_size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 71
    functionName: srv_read_headers
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 0
    functionsReached:
    - apr_socket_recv
    linkageType: ''
    returnType: apr_ssize_t
    signature: apr_ssize_t srv_read_headers(apr_socket_t *sock, char *buf, apr_size_t
      cap, apr_size_t *received_total)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/http_server.c:75,1
    - Dst: strstr
      Src: /src/mod_auth_openidc/test/http_server.c:78,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/http_server.c:82,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/http_server.c:86,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/http_server.c:90,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/http_server.c:91,1
    - Dst: strstr
      Src: /src/mod_auth_openidc/test/http_server.c:97,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/http_server.c:103,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/http_server.c:110,1
    - Dst: strcasecmp
      Src: /src/mod_auth_openidc/test/http_server.c:111,1
    - Dst: apr_atoi64
      Src: /src/mod_auth_openidc/test/http_server.c:112,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/http_server.c:119,1
    - Dst: memcpy
      Src: /src/mod_auth_openidc/test/http_server.c:123,1
    - Dst: apr_socket_recv
      Src: /src/mod_auth_openidc/test/http_server.c:128,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 7
    argNames:
    - p
    - cap
    - headers
    - headers_len
    - trailing_body
    - trailing_body_len
    - sock
    argTypes:
    - apr_pool_t*
    - oidc_test_http_captured_t*
    - char*
    - apr_size_t
    - char*
    - apr_size_t
    - apr_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 137
    functionName: srv_parse_request
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 0
    functionsReached:
    - memcpy
    - apr_pstrdup
    - apr_atoi64
    - strstr
    - apr_table_make
    - apr_table_set
    - apr_socket_recv
    - strcasecmp
    - apr_palloc
    - strchr
    linkageType: ''
    returnType: void
    signature: "void srv_parse_request(apr_pool_t *p, oidc_test_http_captured_t *cap,
      char *headers, apr_size_t headers_len,\n\t\t\t      const char *trailing_body,
      apr_size_t trailing_body_len, apr_socket_t *sock)"
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 164
    functionName: srv_reason
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *srv_reason(int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/http_server.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - rec
    - key
    - value
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: srv_append_hdr
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: int
    signature: int srv_append_hdr(void *rec, const char *key, const char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/http_server.c:179,1
    - Dst: apr_table_do
      Src: /src/mod_auth_openidc/test/http_server.c:182,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/http_server.c:185,1
    - Dst: srv_reason
      Src: /src/mod_auth_openidc/test/http_server.c:191,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/http_server.c:195,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/http_server.c:196,1
    - Dst: srv_reason
      Src: /src/mod_auth_openidc/test/http_server.c:196,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/http_server.c:197,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/http_server.c:198,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/http_server.c:202,1
    - Dst: apr_socket_send
      Src: /src/mod_auth_openidc/test/http_server.c:203,1
    - Dst: apr_socket_send
      Src: /src/mod_auth_openidc/test/http_server.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - s
    - r
    - sock
    argTypes:
    - oidc_test_http_server_t*
    - oidc_test_http_response_t*
    - apr_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 208
    functionName: srv_send_response
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 0
    functionsReached:
    - strlen
    - apr_pstrcat
    - srv_reason
    - apr_socket_send
    - apr_psprintf
    - apr_table_do
    linkageType: ''
    returnType: void
    signature: void srv_send_response(oidc_test_http_server_t *s, const oidc_test_http_response_t
      *r, apr_socket_t *sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_socket_accept
      Src: /src/mod_auth_openidc/test/http_server.c:217,1
    - Dst: apr_socket_timeout_set
      Src: /src/mod_auth_openidc/test/http_server.c:225,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/http_server.c:225,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/http_server.c:227,1
    - Dst: srv_read_headers
      Src: /src/mod_auth_openidc/test/http_server.c:229,1
    - Dst: apr_socket_close
      Src: /src/mod_auth_openidc/test/http_server.c:231,1
    - Dst: srv_parse_request
      Src: /src/mod_auth_openidc/test/http_server.c:242,1
    - Dst: srv_send_response
      Src: /src/mod_auth_openidc/test/http_server.c:246,1
    - Dst: apr_socket_close
      Src: /src/mod_auth_openidc/test/http_server.c:248,1
    - Dst: apr_thread_exit
      Src: /src/mod_auth_openidc/test/http_server.c:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - t
    - data
    argTypes:
    - apr_thread_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 253
    functionName: APR_THREAD_FUNC::srv_run
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 0
    functionsReached:
    - srv_read_headers
    - apr_palloc
    - apr_thread_exit
    - srv_send_response
    - apr_socket_close
    - apr_socket_timeout_set
    - srv_parse_request
    - apr_socket_accept
    - apr_time_from_sec
    linkageType: ''
    returnType: void
    signature: void *APR_THREAD_FUNC srv_run(apr_thread_t *t, void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/http_server.c:260,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/http_server.c:264,1
    - Dst: apr_sockaddr_info_get
      Src: /src/mod_auth_openidc/test/http_server.c:267,1
    - Dst: apr_socket_create
      Src: /src/mod_auth_openidc/test/http_server.c:269,1
    - Dst: apr_socket_opt_set
      Src: /src/mod_auth_openidc/test/http_server.c:271,1
    - Dst: apr_socket_bind
      Src: /src/mod_auth_openidc/test/http_server.c:272,1
    - Dst: apr_socket_listen
      Src: /src/mod_auth_openidc/test/http_server.c:274,1
    - Dst: apr_socket_addr_get
      Src: /src/mod_auth_openidc/test/http_server.c:279,1
    - Dst: apr_thread_create
      Src: /src/mod_auth_openidc/test/http_server.c:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - pool
    - responses
    - n_responses
    argTypes:
    - apr_pool_t*
    - oidc_test_http_response_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 286
    functionName: oidc_test_http_server_start_seq
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 11
    functionsReached:
    - apr_socket_addr_get
    - apr_socket_bind
    - apr_sockaddr_info_get
    - apr_socket_create
    - apr_thread_create
    - apr_pcalloc
    - apr_socket_opt_set
    - apr_socket_listen
    linkageType: ''
    returnType: oidc_test_http_server_t
    signature: "oidc_test_http_server_t *oidc_test_http_server_start_seq(apr_pool_t
      *pool, const oidc_test_http_response_t *responses,\n\t\t\t\t\t\t\t int n_responses)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/http_server.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - response
    argTypes:
    - apr_pool_t*
    - oidc_test_http_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: oidc_test_http_server_start
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 104
    functionsReached:
    - oidc_test_http_server_start_seq
    linkageType: ''
    returnType: oidc_test_http_server_t
    signature: oidc_test_http_server_t *oidc_test_http_server_start(apr_pool_t *pool,
      const oidc_test_http_response_t *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - oidc_test_http_server_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: oidc_test_http_server_port
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int oidc_test_http_server_port(const oidc_test_http_server_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/http_server.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - pool
    argTypes:
    - oidc_test_http_server_t*
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: oidc_test_http_server_url
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 113
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_test_http_server_url(const oidc_test_http_server_t *s, apr_pool_t
      *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_http_server_captured
      Src: /src/mod_auth_openidc/test/http_server.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - oidc_test_http_server_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: oidc_test_http_server_wait
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 95
    functionsReached:
    - oidc_test_http_server_captured
    linkageType: ''
    returnType: oidc_test_http_captured_t
    signature: oidc_test_http_captured_t *oidc_test_http_server_wait(oidc_test_http_server_t
      *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_thread_join
      Src: /src/mod_auth_openidc/test/http_server.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - oidc_test_http_server_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: oidc_test_http_server_request_count
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 11
    functionsReached:
    - apr_thread_join
    linkageType: ''
    returnType: int
    signature: int oidc_test_http_server_request_count(oidc_test_http_server_t *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_http_server_request_count
      Src: /src/mod_auth_openidc/test/http_server.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - s
    - index
    argTypes:
    - oidc_test_http_server_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: oidc_test_http_server_captured
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 6
    functionsReached:
    - oidc_test_http_server_request_count
    linkageType: ''
    returnType: oidc_test_http_captured_t
    signature: oidc_test_http_captured_t *oidc_test_http_server_captured(oidc_test_http_server_t
      *s, int index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/http_server.c:329,1
    - Dst: apr_socket_close
      Src: /src/mod_auth_openidc/test/http_server.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - oidc_test_http_server_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: oidc_test_http_server_stop
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 113
    functionsReached:
    - oidc_test_http_server_wait
    - apr_socket_close
    linkageType: ''
    returnType: void
    signature: void oidc_test_http_server_stop(oidc_test_http_server_t *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_sockaddr_info_get
      Src: /src/mod_auth_openidc/test/http_server.c:339,1
    - Dst: apr_socket_create
      Src: /src/mod_auth_openidc/test/http_server.c:341,1
    - Dst: apr_socket_opt_set
      Src: /src/mod_auth_openidc/test/http_server.c:343,1
    - Dst: apr_socket_bind
      Src: /src/mod_auth_openidc/test/http_server.c:344,1
    - Dst: apr_socket_close
      Src: /src/mod_auth_openidc/test/http_server.c:345,1
    - Dst: apr_socket_addr_get
      Src: /src/mod_auth_openidc/test/http_server.c:350,1
    - Dst: apr_socket_close
      Src: /src/mod_auth_openidc/test/http_server.c:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 354
    functionName: oidc_test_http_free_port
    functionSourceFile: /src/mod_auth_openidc/test/http_server.c
    functionUses: 16
    functionsReached:
    - apr_socket_addr_get
    - apr_socket_bind
    - apr_sockaddr_info_get
    - apr_socket_create
    - apr_socket_close
    - apr_socket_opt_set
    linkageType: ''
    returnType: int
    signature: int oidc_test_http_free_port(apr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:51,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:52,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:55,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:55,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:56,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_table_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_get_bearer_token
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_oauth_bearer_from_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:62,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:64,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:67,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:67,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_table_set
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_get_bearer_token
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_bearer_from_header_with_leading_spaces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:73,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:75,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:78,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:78,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_oauth_get_bearer_token
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_bearer_not_present)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:84,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:86,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:89,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:89,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_table_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_oauth_get_bearer_token
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_bearer_wrong_scheme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:101,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:102,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:103,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:105,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:106,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:107,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:108,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_oauth.c:109,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_oauth.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_oauth_check_userid
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_no_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:114,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:115,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:116,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:121,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:122,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:125,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:126,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:127,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:128,1
    - Dst: ck_assert_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:129,1
    - Dst: ck_assert_table_str
      Src: /src/mod_auth_openidc/test/test_oauth.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - apr_table_set
    - ck_assert_table_str
    - ck_assert_table_unset
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_options_no_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:136,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:137,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:137,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:138,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:139,1
    - Dst: oidc_cmd_oauth_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - url
    argTypes:
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: e2e_set_introspection_endpoint
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_oauth_introspection_endpoint_url_set
    - oidc_test_cmd_get
    - oidc_cmd_oauth_ssl_validate_server_set
    - ck_assert_ptr_null
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST e2e_set_introspection_endpoint(oidc_cfg_t *c, const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:144,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:145,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:146,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:152,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:153,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:154,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:154,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:156,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:157,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:158,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:159,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:161,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:162,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_oauth.c:163,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_oauth.c:163,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_set_introspection_endpoint
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - _oidc_strstr
    - ck_assert_msg
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_oauth_check_userid_introspection_active)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:170,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:171,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:172,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:176,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:177,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:178,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:178,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:180,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:181,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:182,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:183,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_oauth.c:184,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_oauth.c:184,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:186,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 188
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_set_introspection_endpoint
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_oauth_check_userid
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_introspection_inactive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:193,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:194,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:195,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:197,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:197,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_oauth.c:201,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:202,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:203,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:204,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:204,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:205,1
    - Dst: oidc_cmd_oauth_token_expiry_claim_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:205,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:205,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:208,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:208,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:209,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:211,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - apr_time_sec
    - oidc_test_http_server_start
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - e2e_set_introspection_endpoint
    - apr_time_now
    - oidc_test_http_server_url
    - oidc_cmd_oauth_token_expiry_claim_set
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_introspection_mandatory_real_expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:217,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:218,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:219,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:225,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:226,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:227,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:227,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:229,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:230,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:232,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 234
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_set_introspection_endpoint
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - ck_assert_int_eq
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_introspection_error_response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:238,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:239,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:240,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:243,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:243,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_oauth.c:245,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:247,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:248,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:249,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:249,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:252,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:252,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:253,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:254,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:259,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:259,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:260,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 262
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - apr_time_sec
    - oidc_test_http_server_start
    - oidc_test_cfg_get
    - e2e_set_introspection_endpoint
    - apr_time_now
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_introspection_cached)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:272,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_oauth.c:273,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:274,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:275,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:275,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:280,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:280,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 282
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_accept_oauth_token_in_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_get_bearer_token
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_bearer_from_query)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:286,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_oauth.c:287,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:288,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:290,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:290,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:292,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:295,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:295,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 297
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - apr_table_set
    - oidc_cmd_dir_accept_oauth_token_in_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_get_bearer_token
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_bearer_from_cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:302,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_oauth.c:303,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:304,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:305,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:305,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:310,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:310,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 312
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_accept_oauth_token_in_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_oauth_get_bearer_token
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_bearer_from_query_duplicate_rejected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:317,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_oauth.c:318,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:319,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:320,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:320,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:323,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:324,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_oauth.c:325,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:328,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:328,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 330
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - _oidc_strlen
    - apr_table_set
    - oidc_cmd_dir_accept_oauth_token_in_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_oauth_get_bearer_token
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_bearer_from_post_duplicate_rejected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:339,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_oauth.c:340,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:344,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:345,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:345,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:346,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:349,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:349,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:350,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 352
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - apr_table_set
    - oidc_cmd_dir_accept_oauth_token_in_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_get_bearer_token
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_bearer_from_basic_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:356,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_oauth.c:357,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:359,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:360,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:360,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:362,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:365,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:365,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 367
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - apr_table_set
    - oidc_cmd_dir_accept_oauth_token_in_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_oauth_get_bearer_token
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_bearer_from_basic_header_no_colon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:371,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:372,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:373,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:378,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:382,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:383,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:384,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 386
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_redirect_uri_jwks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:390,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:391,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:392,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:396,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:399,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 401
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - oidc_oauth_check_userid
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_redirect_uri_remove_at_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:407,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:408,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_oauth.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - body
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 410
    functionName: e2e_post_body
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 25
    functionsReached:
    - apr_table_set
    - apr_pstrdup
    - _oidc_strlen
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST e2e_post_body(request_rec *r, const char *body)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:413,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_oauth.c:414,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:416,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:417,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:417,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:418,1
    - Dst: e2e_post_body
      Src: /src/mod_auth_openidc/test/test_oauth.c:419,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:422,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:422,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:423,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 425
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - e2e_post_body
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_accept_oauth_token_in_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_get_bearer_token
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_oauth_bearer_from_post)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:432,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_oauth.c:432,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:433,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:434,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:435,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:435,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:436,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_oauth.c:436,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:437,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_oauth.c:437,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:438,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_oauth.c:438,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:439,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:442,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_oauth.c:442,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_oauth.c:443,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:444,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_oauth.c:445,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_oauth.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - r
    - secret
    - exp_offset_secs
    argTypes:
    - request_rec*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 448
    functionName: e2e_sign_jwt_access_token_hs256
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - apr_time_sec
    - oidc_json_object_set_new
    - apr_time_now
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - oidc_json_string
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *e2e_sign_jwt_access_token_hs256(request_rec *r, const char
      *secret, int exp_offset_secs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:454,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:455,1
    - Dst: oidc_cmd_oauth_verify_shared_keys_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:455,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:456,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:456,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 459
    functionName: e2e_setup_jwt_validation
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_cmd_get
    - oidc_cmd_oauth_verify_shared_keys_set
    - oidc_cfg_provider_client_secret_set
    - oidc_cfg_provider_get
    - ck_assert_ptr_null
    linkageType: ''
    returnType: char
    signature: char *e2e_setup_jwt_validation(request_rec *r, oidc_cfg_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:464,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:465,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:467,1
    - Dst: e2e_sign_jwt_access_token_hs256
      Src: /src/mod_auth_openidc/test/test_oauth.c:468,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:470,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:471,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:472,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_hs256
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_oauth_check_userid_jwt_valid_hs256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:480,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:481,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:484,1
    - Dst: e2e_sign_jwt_access_token_hs256
      Src: /src/mod_auth_openidc/test/test_oauth.c:485,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:487,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:487,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:488,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:489,1
    - Dst: oidc_cache_get_access_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:492,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:493,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:497,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:497,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_oauth.c:498,1
    - Dst: oidc_cache_set_access_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:500,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:500,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:500,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:502,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:502,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:503,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 505
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_cache_get_access_token
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - apr_time_sec
    - oidc_test_cfg_get
    - apr_time_now
    - e2e_sign_jwt_access_token_hs256
    - apr_psprintf
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - oidc_cache_set_access_token
    - apr_time_from_sec
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_validation_cached)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:510,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:511,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:513,1
    - Dst: e2e_sign_jwt_access_token_hs256
      Src: /src/mod_auth_openidc/test/test_oauth.c:514,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:516,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 518
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_hs256
    - ck_assert_int_eq
    - oidc_oauth_check_userid
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_expired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:523,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:524,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:526,1
    - Dst: e2e_sign_jwt_access_token_hs256
      Src: /src/mod_auth_openidc/test/test_oauth.c:527,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:529,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 531
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_hs256
    - ck_assert_int_eq
    - oidc_oauth_check_userid
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_bad_signature)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:540,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_oauth.c:540,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:541,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:542,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:543,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:543,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:544,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_oauth.c:544,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:545,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_oauth.c:545,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:547,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_oauth.c:547,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:549,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:551,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_oauth.c:551,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:552,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:555,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_oauth.c:555,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_oauth.c:556,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:557,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_oauth.c:558,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_oauth.c:559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - r
    - secret
    - exp_offset_secs
    - aud
    - iss
    argTypes:
    - request_rec*
    - char*
    - int
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 561
    functionName: e2e_sign_jwt_access_token_claims
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - apr_time_sec
    - oidc_json_object_set_new
    - apr_time_now
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - oidc_json_string
    - ck_assert_int_eq
    - oidc_json_integer
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: "END_TEST *e2e_sign_jwt_access_token_claims(request_rec *r, const char
      *secret, int exp_offset_secs, oidc_json_t *aud,\n\t\t\t\t\t      const char
      *iss)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:569,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:569,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:571,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_oauth.c:571,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:572,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:573,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:576,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/test_oauth.c:577,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_oauth.c:577,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:580,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:581,1
    - Dst: oidc_json_is_real
      Src: /src/mod_auth_openidc/test/test_oauth.c:581,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:583,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_oauth.c:583,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:584,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_oauth.c:584,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:585,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:586,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:589,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_oauth.c:589,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_oauth.c:590,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:591,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_oauth.c:593,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_oauth.c:594,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_oauth.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - r
    - secret
    - exp_offset_secs
    argTypes:
    - request_rec*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 597
    functionName: e2e_sign_jwt_access_token_real_exp
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_time_sec
    - apr_time_now
    - oidc_jose_jwt_serialize
    - oidc_json_object_set
    - oidc_json_decode_object
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - ck_assert_ptr_nonnull
    - oidc_json_decref
    - oidc_json_string
    - oidc_util_key_symmetric_create
    - oidc_json_is_real
    - apr_pstrdup
    - oidc_json_object_get
    - oidc_jwt_destroy
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_json_integer
    linkageType: ''
    returnType: char
    signature: char *e2e_sign_jwt_access_token_real_exp(request_rec *r, const char
      *secret, int exp_offset_secs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:605,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:606,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:608,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:609,1
    - Dst: oidc_cmd_oauth_verify_aud_values_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:609,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:609,1
    - Dst: e2e_sign_jwt_access_token_claims
      Src: /src/mod_auth_openidc/test/test_oauth.c:612,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_oauth.c:612,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:614,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:614,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 604
    functionDepth: 3
    functionLinenumber: 604
    functionLinenumberEnd: 616
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cmd_get
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_claims
    - ck_assert_ptr_null
    - oidc_cmd_oauth_verify_aud_values_set
    - oidc_json_string
    - oidc_oauth_check_userid
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_oauth_check_userid_jwt_wrong_audience)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:621,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:622,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:624,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:625,1
    - Dst: oidc_cmd_oauth_verify_aud_values_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:625,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:625,1
    - Dst: e2e_sign_jwt_access_token_claims
      Src: /src/mod_auth_openidc/test/test_oauth.c:628,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_oauth.c:628,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:630,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:630,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 632
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cmd_get
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_claims
    - ck_assert_ptr_null
    - oidc_cmd_oauth_verify_aud_values_set
    - oidc_json_string
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_matching_audience)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:638,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:639,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:641,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:642,1
    - Dst: oidc_cmd_oauth_verify_aud_values_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:642,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:642,1
    - Dst: oidc_json_array
      Src: /src/mod_auth_openidc/test/test_oauth.c:644,1
    - Dst: oidc_json_array_append_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:645,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_oauth.c:645,1
    - Dst: oidc_json_array_append_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:646,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_oauth.c:646,1
    - Dst: e2e_sign_jwt_access_token_claims
      Src: /src/mod_auth_openidc/test/test_oauth.c:647,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:649,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:649,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 651
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cmd_get
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - oidc_json_array
    - e2e_sign_jwt_access_token_claims
    - ck_assert_ptr_null
    - oidc_cmd_oauth_verify_aud_values_set
    - oidc_json_string
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - oidc_json_array_append_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_audience_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:656,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:657,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:659,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:660,1
    - Dst: oidc_cmd_oauth_verify_aud_values_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:660,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:660,1
    - Dst: e2e_sign_jwt_access_token_claims
      Src: /src/mod_auth_openidc/test/test_oauth.c:662,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:664,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 665
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_claims
    - ck_assert_ptr_null
    - oidc_cmd_oauth_verify_aud_values_set
    - ck_assert_int_eq
    - oidc_oauth_check_userid
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_no_audience_claim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:671,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:672,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:674,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:675,1
    - Dst: oidc_cmd_oauth_verify_aud_values_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:675,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:675,1
    - Dst: e2e_sign_jwt_access_token_claims
      Src: /src/mod_auth_openidc/test/test_oauth.c:678,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_oauth.c:678,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:680,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:680,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:681,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:685,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:685,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_oauth.c:687,1
    - Dst: oidc_cache_set_access_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:691,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:691,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:691,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:693,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:693,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 666
    functionDepth: 3
    functionLinenumber: 666
    functionLinenumberEnd: 695
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cmd_get
    - apr_time_sec
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_claims
    - apr_time_now
    - ck_assert_ptr_null
    - oidc_cmd_oauth_verify_aud_values_set
    - oidc_json_string
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - apr_psprintf
    - oidc_cache_set_access_token
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_audience_cached)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:700,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:701,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:703,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:704,1
    - Dst: oidc_cmd_oauth_verify_issuer_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:705,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:705,1
    - Dst: e2e_sign_jwt_access_token_claims
      Src: /src/mod_auth_openidc/test/test_oauth.c:706,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:708,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 709
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_claims
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_oauth_check_userid
    - oidc_cmd_oauth_verify_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_wrong_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:714,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:715,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:717,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:718,1
    - Dst: oidc_cmd_oauth_verify_issuer_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:719,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:719,1
    - Dst: e2e_sign_jwt_access_token_claims
      Src: /src/mod_auth_openidc/test/test_oauth.c:720,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:722,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:722,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 710
    functionDepth: 3
    functionLinenumber: 710
    functionLinenumberEnd: 724
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_claims
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - oidc_cmd_oauth_verify_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_matching_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:729,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:730,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:732,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:733,1
    - Dst: oidc_cmd_oauth_verify_issuer_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:734,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:734,1
    - Dst: e2e_sign_jwt_access_token_claims
      Src: /src/mod_auth_openidc/test/test_oauth.c:735,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:737,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 725
    functionDepth: 3
    functionLinenumber: 725
    functionLinenumberEnd: 738
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cmd_get
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_claims
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_oauth_check_userid
    - oidc_cmd_oauth_verify_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_no_issuer_claim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:743,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:744,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:746,1
    - Dst: e2e_sign_jwt_access_token_claims
      Src: /src/mod_auth_openidc/test/test_oauth.c:747,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:749,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 750
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_claims
    - ck_assert_int_eq
    - oidc_oauth_check_userid
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_no_exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:757,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:758,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:760,1
    - Dst: e2e_sign_jwt_access_token_claims
      Src: /src/mod_auth_openidc/test/test_oauth.c:761,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_oauth.c:762,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:764,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:764,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 751
    functionDepth: 3
    functionLinenumber: 751
    functionLinenumberEnd: 766
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - ck_assert_int_eq
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_claims
    - oidc_json_string
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_no_audience_configured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:774,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:775,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:778,1
    - Dst: e2e_sign_jwt_access_token_real_exp
      Src: /src/mod_auth_openidc/test/test_oauth.c:779,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:781,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:781,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:782,1
    - Dst: oidc_cache_get_access_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:784,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 786
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_cache_get_access_token
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cfg_get
    - e2e_sign_jwt_access_token_real_exp
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_real_exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:791,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:792,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:797,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:799,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:800,1
    - Dst: oidc_cmd_oauth_decrypt_shared_keys_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:800,1
    - Dst: e2e_sign_jwt_access_token_hs256
      Src: /src/mod_auth_openidc/test/test_oauth.c:803,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:804,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_oauth.c:804,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:805,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:806,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:807,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:808,1
    - Dst: oidc_jwt_encrypt
      Src: /src/mod_auth_openidc/test/test_oauth.c:809,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test_oauth.c:809,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:810,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_oauth.c:811,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_oauth.c:812,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:814,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:815,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:816,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:817,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/test_oauth.c:819,1
    - Dst: oidc_cfg_oauth_decrypt_shared_keys_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 820
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_cmd_oauth_decrypt_shared_keys_set
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - oidc_jwk_destroy
    - ck_assert_ptr_nonnull
    - _oidc_strlen
    - oidc_test_cmd_get
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_jwk_list_destroy_hash
    - oidc_cfg_oauth_decrypt_shared_keys_get
    - e2e_sign_jwt_access_token_hs256
    - oidc_util_key_symmetric_create
    - apr_pstrdup
    - oidc_jwt_encrypt
    - oidc_jwt_destroy
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_encrypted_decrypt_shared_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:827,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:828,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:829,1
    - Dst: oidc_test_http_server_start_seq
      Src: /src/mod_auth_openidc/test/test_oauth.c:839,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:840,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_oauth.c:844,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:845,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:848,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:849,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:851,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:852,1
    - Dst: oidc_cmd_oauth_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:852,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:852,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:853,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:854,1
    - Dst: oidc_cmd_oauth_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:854,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:857,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:858,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:859,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:862,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:863,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:868,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:869,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:870,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 821
    functionDepth: 3
    functionLinenumber: 821
    functionLinenumberEnd: 873
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_test_cmd_get
    - oidc_cmd_oauth_metadata_url_set
    - oidc_cmd_oauth_ssl_validate_server_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - oidc_test_http_server_start_seq
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_metadata_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:880,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:881,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:882,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:889,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:890,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_oauth.c:893,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:894,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:897,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:898,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:900,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:901,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:902,1
    - Dst: oidc_cmd_oauth_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:902,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:903,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:904,1
    - Dst: oidc_cmd_oauth_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:904,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:907,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:908,1
    - Dst: oidc_cmd_provider_metadata_refresh_interval_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:908,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:911,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:912,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:914,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:915,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:916,1
    - Dst: oidc_cache_get_oauth_provider
      Src: /src/mod_auth_openidc/test/test_oauth.c:920,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 922
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cmd_oauth_metadata_url_set
    - oidc_cmd_oauth_ssl_validate_server_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_cmd_provider_metadata_refresh_interval_set
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cache_get_oauth_provider
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_metadata_cache_expiry_seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:929,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:930,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:931,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:937,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:938,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_oauth.c:941,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:942,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:945,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:946,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:948,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:949,1
    - Dst: oidc_cmd_oauth_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:949,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:949,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:950,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:951,1
    - Dst: oidc_cmd_oauth_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:951,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:954,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:954,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:956,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:957,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:958,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:962,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:962,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:964,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 923
    functionDepth: 3
    functionLinenumber: 923
    functionLinenumberEnd: 966
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cmd_oauth_metadata_url_set
    - oidc_cmd_oauth_ssl_validate_server_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - oidc_cfg_oauth_introspection_endpoint_url_get
    - apr_psprintf
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_metadata_does_not_mutate_shared_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:971,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:972,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:973,1
    - Dst: apr_pmemdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:975,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:978,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:978,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:979,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:980,1
    - Dst: apr_pmemdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:982,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:986,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:986,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:987,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 989
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - apr_pmemdup
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_subrequest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:993,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:994,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:999,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:1000,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1001,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1002,1
    - Dst: oidc_cmd_oauth_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1002,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1006,1
    - Dst: oidc_oauth_metadata_provider_retrieve
      Src: /src/mod_auth_openidc/test/test_oauth.c:1006,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1007,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:1010,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1011,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/test_oauth.c:1011,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1011,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test_oauth.c:1013,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1014,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 990
    functionDepth: 3
    functionLinenumber: 990
    functionLinenumberEnd: 1016
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cmd_oauth_ssl_validate_server_set
    - oidc_oauth_metadata_provider_retrieve
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_json_object_get
    - oidc_json_decref
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_metadata_provider_retrieve_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1020,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1021,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1026,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:1027,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1028,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1029,1
    - Dst: oidc_cmd_oauth_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1029,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1033,1
    - Dst: oidc_oauth_metadata_provider_retrieve
      Src: /src/mod_auth_openidc/test/test_oauth.c:1033,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1034,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1037,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1039,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1017
    functionDepth: 3
    functionLinenumber: 1017
    functionLinenumberEnd: 1041
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cmd_oauth_ssl_validate_server_set
    - oidc_oauth_metadata_provider_retrieve
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_metadata_provider_retrieve_invalid_json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1045,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1046,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:1047,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1050,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1051,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1052,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:1053,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_oauth.c:1054,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_oauth.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1056
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - ck_assert_msg
    - ck_assert_int_eq
    - _oidc_strstr
    - oidc_oauth_check_userid
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_no_keys_configured)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1062,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1063,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:1064,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_oauth.c:1067,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_oauth.c:1068,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1069,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1070,1
    - Dst: oidc_cmd_oauth_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1070,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_oauth.c:1071,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1072,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1073,1
    - Dst: oidc_cmd_oauth_ssl_validate_server_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1073,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1074,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1074,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1079,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:1080,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1081,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1082,1
    - Dst: oidc_cmd_oauth_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1082,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1082,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1083,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1083,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1084,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1057
    functionDepth: 3
    functionLinenumber: 1057
    functionLinenumberEnd: 1086
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cmd_oauth_metadata_url_set
    - oidc_cmd_oauth_ssl_validate_server_set
    - oidc_test_http_server_start
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_free_port
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - ck_assert_ptr_null
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_oauth_check_userid
    - ck_assert_int_ne
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_metadata_url_failures)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1092,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1093,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1095,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1099,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:1100,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1101,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1101,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1102,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1103,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_method_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1103,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1104,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1105,1
    - Dst: oidc_cmd_oauth_client_id_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1105,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1106,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1107,1
    - Dst: oidc_cmd_oauth_client_secret_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1107,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1108,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1109,1
    - Dst: oidc_cmd_oauth_introspection_endpoint_auth_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1109,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1110,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1111,1
    - Dst: oidc_cmd_oauth_introspection_client_auth_bearer_token_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1111,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1113,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1114,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1115,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1117,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1118,1
    - Dst: ck_assert_msg
      Src: /src/mod_auth_openidc/test/test_oauth.c:1119,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/test/test_oauth.c:1119,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1120,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:1121,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1122,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1087
    functionDepth: 3
    functionLinenumber: 1087
    functionLinenumberEnd: 1125
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_oauth_client_id_set
    - oidc_test_http_server_wait
    - apr_table_set
    - _oidc_strstr
    - apr_table_get
    - oidc_cmd_oauth_introspection_client_auth_bearer_token_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_msg
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - ck_assert_ptr_nonnull
    - oidc_cmd_oauth_introspection_endpoint_auth_set
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_cmd_oauth_introspection_endpoint_method_set
    - oidc_cmd_oauth_client_secret_set
    - e2e_set_introspection_endpoint
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_introspection_get_bearer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1130,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:1131,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:1132,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1133,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_oauth.c:1134,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1135,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1135,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1138,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1126
    functionDepth: 2
    functionLinenumber: 1126
    functionLinenumberEnd: 1139
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_accept_oauth_token_in_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_oauth_get_bearer_token
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_bearer_from_cookie_missing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1145,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1146,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:1147,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1152,1
    - Dst: oidc_cmd_oauth_token_expiry_claim_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1152,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1152,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1155,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1156,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1156,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1157,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1157,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1158,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1159,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1163,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1164,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1164,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1165,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1165,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1166,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1167,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1170,1
    - Dst: oidc_cmd_oauth_token_expiry_claim_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1170,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1170,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1173,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1174,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1174,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1175,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1175,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1176,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1177,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1178,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1183,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1184,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1184,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1185,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1185,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1186,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1187,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1190,1
    - Dst: oidc_cmd_oauth_token_expiry_claim_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1190,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1190,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1194,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1195,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1195,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1196,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1196,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1197,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1140
    functionDepth: 3
    functionLinenumber: 1140
    functionLinenumberEnd: 1199
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cmd_get
    - oidc_test_http_server_start
    - oidc_test_cfg_get
    - oidc_cmd_oauth_token_expiry_claim_set
    - e2e_set_introspection_endpoint
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_expiry_claim_variants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1205,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1206,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_oauth.c:1207,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:1208,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:1212,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:1212,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1215,1
    - Dst: oidc_cache_set_access_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:1215,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1216,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1217,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1217,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1218,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1218,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1219,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1220,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1223,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1224,1
    - Dst: oidc_cmd_dir_token_introspection_interval_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1224,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_oauth.c:1225,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:1226,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:1226,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1227,1
    - Dst: oidc_cache_set_access_token
      Src: /src/mod_auth_openidc/test/test_oauth.c:1227,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1229,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1230,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1230,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1231,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1231,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1232,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1233,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1236,1
    - Dst: oidc_cmd_dir_token_introspection_interval_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1236,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1238,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1239,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1239,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1240,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1240,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1241,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1200
    functionDepth: 3
    functionLinenumber: 1200
    functionLinenumberEnd: 1243
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - apr_time_sec
    - apr_time_now
    - oidc_test_http_server_wait
    - oidc_cmd_dir_token_introspection_interval_set
    - oidc_test_cfg_get
    - oidc_test_http_server_url
    - oidc_test_http_server_stop
    - ck_assert_ptr_null
    - oidc_oauth_check_userid
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_http_server_start
    - oidc_test_cmd_get
    - e2e_set_introspection_endpoint
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_cache_set_access_token
    - apr_time_from_sec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_introspection_cache_negatives)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1248,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1249,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:1250,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1256,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1257,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1257,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1258,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1258,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1259,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1260,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1264,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1265,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1265,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1266,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1266,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1267,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1268,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1272,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1273,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1273,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1274,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1274,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1275,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1244
    functionDepth: 3
    functionLinenumber: 1244
    functionLinenumberEnd: 1277
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_http_server_start
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_set_introspection_endpoint
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - ck_assert_int_eq
    - oidc_oauth_check_userid
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_introspection_active_claim_variants)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1282,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1283,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:1284,1
    - Dst: oidc_test_http_free_port
      Src: /src/mod_auth_openidc/test/test_oauth.c:1286,1
    - Dst: ck_assert_int_ne
      Src: /src/mod_auth_openidc/test/test_oauth.c:1287,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1288,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test_oauth.c:1288,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1290,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1278
    functionDepth: 3
    functionLinenumber: 1278
    functionLinenumberEnd: 1291
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_request_get
    - oidc_test_cfg_get
    - e2e_set_introspection_endpoint
    - oidc_test_http_free_port
    - apr_psprintf
    - ck_assert_int_eq
    - oidc_oauth_check_userid
    - ck_assert_int_ne
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_introspection_endpoint_unreachable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1297,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1298,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_oauth.c:1299,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/test_oauth.c:1300,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1302,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1303,1
    - Dst: oidc_cmd_dir_authn_header_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1303,1
    - Dst: oidc_test_http_server_start
      Src: /src/mod_auth_openidc/test/test_oauth.c:1309,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:1310,1
    - Dst: e2e_set_introspection_endpoint
      Src: /src/mod_auth_openidc/test/test_oauth.c:1311,1
    - Dst: oidc_test_http_server_url
      Src: /src/mod_auth_openidc/test/test_oauth.c:1311,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1313,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1313,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1314,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1315,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_oauth.c:1316,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1317,1
    - Dst: oidc_test_http_server_wait
      Src: /src/mod_auth_openidc/test/test_oauth.c:1319,1
    - Dst: oidc_test_http_server_stop
      Src: /src/mod_auth_openidc/test/test_oauth.c:1320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1292
    functionDepth: 3
    functionLinenumber: 1292
    functionLinenumberEnd: 1321
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_test_http_server_start
    - oidc_test_cfg_get
    - oidc_cmd_dir_authn_header_set
    - e2e_set_introspection_endpoint
    - oidc_test_http_server_url
    - oidc_test_http_server_wait
    - oidc_test_http_server_stop
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - ck_assert_str_eq
    - oidc_oauth_check_userid
    - apr_table_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_introspection_pingfederate_shape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1326,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1327,1
    - Dst: e2e_setup_jwt_validation
      Src: /src/mod_auth_openidc/test/test_oauth.c:1331,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_oauth.c:1332,1
    - Dst: oidc_cmd_oauth_verify_aud_values_set
      Src: /src/mod_auth_openidc/test/test_oauth.c:1333,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/test_oauth.c:1333,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1335,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test_oauth.c:1335,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:1336,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:1337,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test_oauth.c:1338,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test_oauth.c:1338,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:1339,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/test_oauth.c:1339,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:1340,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_oauth.c:1340,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:1341,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_oauth.c:1341,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/test_oauth.c:1342,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/test_oauth.c:1342,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test_oauth.c:1343,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1346,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/test_oauth.c:1346,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/test_oauth.c:1347,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test_oauth.c:1348,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/test_oauth.c:1349,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_oauth.c:1351,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/test_oauth.c:1351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1322
    functionDepth: 3
    functionLinenumber: 1322
    functionLinenumberEnd: 1352
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_time_sec
    - apr_time_now
    - oidc_jose_jwt_serialize
    - oidc_test_cfg_get
    - ck_assert_ptr_null
    - oidc_oauth_check_userid
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_test_request_get
    - e2e_setup_jwt_validation
    - oidc_test_cmd_get
    - oidc_cmd_oauth_verify_aud_values_set
    - oidc_json_string
    - oidc_util_key_symmetric_create
    - apr_pstrdup
    - oidc_jwt_destroy
    - ck_assert_int_eq
    - oidc_json_integer
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_oauth_check_userid_jwt_aud_wrong_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_oauth.c:1356,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_oauth.c:1357,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1358,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1359,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1360,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1361,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1362,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1363,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1364,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1365,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1366,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1367,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1368,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_oauth.c:1370,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_oauth.c:1371,1
    - Dst: tcase_set_timeout
      Src: /src/mod_auth_openidc/test/test_oauth.c:1372,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1373,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1374,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1375,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1376,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1377,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1378,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1379,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1380,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1381,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1382,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1383,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1384,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1385,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1386,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1387,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1388,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1389,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1390,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1391,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_oauth.c:1393,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_oauth.c:1394,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1395,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1396,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1397,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1398,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1399,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1400,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1401,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1402,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1403,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1404,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1405,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1406,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1407,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1408,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1409,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1410,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1411,1
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_oauth.c:1413,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_oauth.c:1414,1
    - Dst: tcase_set_timeout
      Src: /src/mod_auth_openidc/test/test_oauth.c:1415,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1416,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1417,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1418,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1419,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_oauth.c:1420,1
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_oauth.c:1422,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_oauth.c:1423,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_oauth.c:1424,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_oauth.c:1425,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_oauth.c:1426,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_oauth.c:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1429
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_oauth.c
    functionUses: 9
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_set_timeout
    - tcase_add_checked_fixture
    - tcase_add_test
    - suite_add_tcase
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - argc
    - argv
    - msg
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: usage
    functionSourceFile: /src/mod_auth_openidc/test/test-cmd.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int usage(int argc, char **argv, const char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/test/test-cmd.c:74,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:76,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/test/test-cmd.c:76,1
    - Dst: apr_file_info_get
      Src: /src/mod_auth_openidc/test/test-cmd.c:80,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test-cmd.c:82,1
    - Dst: apr_file_read_full
      Src: /src/mod_auth_openidc/test/test-cmd.c:84,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:86,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/test/test-cmd.c:86,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/test/test-cmd.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - pool
    - path
    - rbuf
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 101
    functionName: file_read
    functionSourceFile: /src/mod_auth_openidc/test/test-cmd.c
    functionUses: 4
    functionsReached:
    - apr_file_open
    - apr_file_info_get
    - apr_strerror
    - apr_file_close
    - apr_pcalloc
    - apr_file_read_full
    - fprintf
    linkageType: ''
    returnType: int
    signature: int file_read(apr_pool_t *pool, const char *path, char **rbuf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/mod_auth_openidc/test/test-cmd.c:106,1
    - Dst: file_read
      Src: /src/mod_auth_openidc/test/test-cmd.c:111,1
    - Dst: file_read
      Src: /src/mod_auth_openidc/test/test-cmd.c:113,1
    - Dst: cjose_header_new
      Src: /src/mod_auth_openidc/test/test-cmd.c:118,1
    - Dst: cjose_header_set
      Src: /src/mod_auth_openidc/test/test-cmd.c:119,1
    - Dst: cjose_jwk_import
      Src: /src/mod_auth_openidc/test/test-cmd.c:121,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test-cmd.c:121,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:123,1
    - Dst: cjose_jws_sign
      Src: /src/mod_auth_openidc/test/test-cmd.c:128,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test-cmd.c:128,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:130,1
    - Dst: cjose_jws_export
      Src: /src/mod_auth_openidc/test/test-cmd.c:135,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:136,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:141,1
    - Dst: cjose_jws_release
      Src: /src/mod_auth_openidc/test/test-cmd.c:143,1
    - Dst: cjose_jwk_release
      Src: /src/mod_auth_openidc/test/test-cmd.c:144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - argc
    - argv
    - pool
    argTypes:
    - int
    - char**
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 147
    functionName: sign
    functionSourceFile: /src/mod_auth_openidc/test/test-cmd.c
    functionUses: 22
    functionsReached:
    - cjose_jwk_import
    - cjose_header_set
    - _oidc_strlen
    - cjose_jws_release
    - cjose_jwk_release
    - cjose_jws_export
    - fprintf
    - cjose_jws_sign
    - file_read
    - cjose_header_new
    - usage
    linkageType: ''
    returnType: int
    signature: int sign(int argc, char **argv, apr_pool_t *pool)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/mod_auth_openidc/test/test-cmd.c:152,1
    - Dst: file_read
      Src: /src/mod_auth_openidc/test/test-cmd.c:156,1
    - Dst: file_read
      Src: /src/mod_auth_openidc/test/test-cmd.c:158,1
    - Dst: cjose_jws_import
      Src: /src/mod_auth_openidc/test/test-cmd.c:163,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test-cmd.c:163,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:165,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test-cmd.c:171,1
    - Dst: oidc_jwk_parse
      Src: /src/mod_auth_openidc/test/test-cmd.c:174,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:176,1
    - Dst: cjose_jws_verify
      Src: /src/mod_auth_openidc/test/test-cmd.c:181,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:182,1
    - Dst: cjose_jws_get_plaintext
      Src: /src/mod_auth_openidc/test/test-cmd.c:189,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:190,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:195,1
    - Dst: cjose_jws_release
      Src: /src/mod_auth_openidc/test/test-cmd.c:197,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test-cmd.c:198,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test-cmd.c:199,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - argc
    - argv
    - pool
    argTypes:
    - int
    - char**
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 202
    functionName: verify
    functionSourceFile: /src/mod_auth_openidc/test/test-cmd.c
    functionUses: 16
    functionsReached:
    - _oidc_strlen
    - cjose_jws_verify
    - cjose_jws_release
    - oidc_json_decref
    - cjose_jws_import
    - oidc_jwk_parse
    - json_loads
    - cjose_jws_get_plaintext
    - file_read
    - oidc_jwk_destroy
    - fprintf
    - usage
    linkageType: ''
    returnType: int
    signature: int verify(int argc, char **argv, apr_pool_t *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/mod_auth_openidc/test/test-cmd.c:207,1
    - Dst: file_read
      Src: /src/mod_auth_openidc/test/test-cmd.c:211,1
    - Dst: file_read
      Src: /src/mod_auth_openidc/test/test-cmd.c:213,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test-cmd.c:216,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/test/test-cmd.c:219,1
    - Dst: oidc_jwk_parse
      Src: /src/mod_auth_openidc/test/test-cmd.c:222,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:224,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test-cmd.c:229,1
    - Dst: oidc_jwe_decrypt
      Src: /src/mod_auth_openidc/test/test-cmd.c:232,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:233,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:238,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test-cmd.c:239,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/test-cmd.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - argc
    - argv
    - pool
    argTypes:
    - int
    - char**
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 243
    functionName: decrypt
    functionSourceFile: /src/mod_auth_openidc/test/test-cmd.c
    functionUses: 9
    functionsReached:
    - apr_hash_set
    - oidc_json_decref
    - apr_hash_make
    - oidc_jwk_parse
    - json_loads
    - oidc_jwe_decrypt
    - file_read
    - oidc_jwk_destroy
    - fprintf
    - usage
    linkageType: ''
    returnType: int
    signature: int decrypt(int argc, char **argv, apr_pool_t *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/mod_auth_openidc/test/test-cmd.c:248,1
    - Dst: oidc_jwk_parse_pem_private_key
      Src: /src/mod_auth_openidc/test/test-cmd.c:256,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:257,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test-cmd.c:257,1
    - Dst: oidc_jwk_parse_pem_public_key
      Src: /src/mod_auth_openidc/test/test-cmd.c:261,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:262,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test-cmd.c:262,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test-cmd.c:268,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:269,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/test/test-cmd.c:269,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:273,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/test-cmd.c:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - argc
    - argv
    - pool
    argTypes:
    - int
    - char**
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 278
    functionName: key2jwk
    functionSourceFile: /src/mod_auth_openidc/test/test-cmd.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_to_json
    - oidc_jwk_parse_pem_private_key
    - oidc_jwk_parse_pem_public_key
    - oidc_jose_e2s
    - oidc_jwk_destroy
    - fprintf
    - usage
    linkageType: ''
    returnType: int
    signature: int key2jwk(int argc, char **argv, apr_pool_t *pool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/mod_auth_openidc/test/test-cmd.c:283,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test-cmd.c:285,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/test-cmd.c:288,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/test/test-cmd.c:288,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:290,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/test-cmd.c:296,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:297,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/mod_auth_openidc/test/test-cmd.c:302,1
    - Dst: apr_base64_encode_len
      Src: /src/mod_auth_openidc/test/test-cmd.c:303,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/test-cmd.c:304,1
    - Dst: apr_base64_encode
      Src: /src/mod_auth_openidc/test/test-cmd.c:305,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/mod_auth_openidc/test/test-cmd.c:305,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - argc
    - argv
    - pool
    argTypes:
    - int
    - char**
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 310
    functionName: enckey
    functionSourceFile: /src/mod_auth_openidc/test/test-cmd.c
    functionUses: 0
    functionsReached:
    - _oidc_str_to_int
    - oidc_jwk_to_json
    - oidc_test_request_get
    - apr_palloc
    - apr_base64_encode
    - cjose_jwk_get_keydata
    - apr_base64_encode_len
    - cjose_jwk_get_keysize
    - fprintf
    - oidc_util_key_symmetric_create
    - usage
    linkageType: ''
    returnType: int
    signature: int enckey(int argc, char **argv, apr_pool_t *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/mod_auth_openidc/test/test-cmd.c:314,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test-cmd.c:317,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test-cmd.c:320,1
    - Dst: cjose_base64url_decode
      Src: /src/mod_auth_openidc/test/test-cmd.c:327,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/test/test-cmd.c:327,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:328,1
    - Dst: oidc_jose_hash_and_base64url_encode
      Src: /src/mod_auth_openidc/test/test-cmd.c:332,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:334,1
    - Dst: oidc_util_hash_string_and_base64url_encode
      Src: /src/mod_auth_openidc/test/test-cmd.c:338,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:339,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - argc
    - argv
    - pool
    argTypes:
    - int
    - char**
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 347
    functionName: hash_base64url
    functionSourceFile: /src/mod_auth_openidc/test/test-cmd.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_test_request_get
    - usage
    - cjose_base64url_decode
    - oidc_jose_hash_and_base64url_encode
    - oidc_util_hash_string_and_base64url_encode
    - fprintf
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: int hash_base64url(int argc, char **argv, apr_pool_t *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/mod_auth_openidc/test/test-cmd.c:351,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/test/test-cmd.c:352,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test-cmd.c:353,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/test-cmd.c:353,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:354,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:355,1
    - Dst: _oidc_str_to_time
      Src: /src/mod_auth_openidc/test/test-cmd.c:357,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:358,1
    - Dst: apr_rfc822_date
      Src: /src/mod_auth_openidc/test/test-cmd.c:361,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:362,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/test-cmd.c:363,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/test-cmd.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - argc
    - argv
    - pool
    argTypes:
    - int
    - char**
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 366
    functionName: timestamp
    functionSourceFile: /src/mod_auth_openidc/test/test-cmd.c
    functionUses: 3
    functionsReached:
    - _oidc_str_to_int
    - apr_time_sec
    - apr_time_now
    - apr_psprintf
    - apr_rfc822_date
    - fprintf
    - _oidc_str_to_time
    - apr_time_from_sec
    - usage
    linkageType: ''
    returnType: int
    signature: int timestamp(int argc, char **argv, apr_pool_t *pool)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/test/test-cmd.c:375,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test-cmd.c:380,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/test-cmd.c:382,1
    - Dst: oidc_session_id_new
      Src: /src/mod_auth_openidc/test/test-cmd.c:385,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/test/test-cmd.c:386,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:387,1
    - Dst: exit
      Src: /src/mod_auth_openidc/test/test-cmd.c:388,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/test-cmd.c:390,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/test-cmd.c:390,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:395,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/test-cmd.c:397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - argc
    - argv
    - pool
    argTypes:
    - int
    - char**
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 399
    functionName: uuid
    functionSourceFile: /src/mod_auth_openidc/test/test-cmd.c
    functionUses: 0
    functionsReached:
    - _oidc_str_to_int
    - apr_pstrdup
    - oidc_test_request_get
    - apr_hash_set
    - apr_hash_make
    - oidc_session_id_new
    - exit
    - fprintf
    - apr_hash_get
    linkageType: ''
    returnType: int
    signature: int uuid(int argc, char **argv, apr_pool_t *pool)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/mod_auth_openidc/test/test-cmd.c:405,1
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/test-cmd.c:407,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test-cmd.c:409,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test-cmd.c:411,1
    - Dst: sign
      Src: /src/mod_auth_openidc/test/test-cmd.c:412,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test-cmd.c:414,1
    - Dst: verify
      Src: /src/mod_auth_openidc/test/test-cmd.c:415,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test-cmd.c:417,1
    - Dst: decrypt
      Src: /src/mod_auth_openidc/test/test-cmd.c:418,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test-cmd.c:420,1
    - Dst: key2jwk
      Src: /src/mod_auth_openidc/test/test-cmd.c:421,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test-cmd.c:423,1
    - Dst: enckey
      Src: /src/mod_auth_openidc/test/test-cmd.c:424,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test-cmd.c:426,1
    - Dst: hash_base64url
      Src: /src/mod_auth_openidc/test/test-cmd.c:427,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test-cmd.c:429,1
    - Dst: timestamp
      Src: /src/mod_auth_openidc/test/test-cmd.c:430,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/test/test-cmd.c:432,1
    - Dst: uuid
      Src: /src/mod_auth_openidc/test/test-cmd.c:433,1
    - Dst: usage
      Src: /src/mod_auth_openidc/test/test-cmd.c:436,1
    - Dst: oidc_test_teardown
      Src: /src/mod_auth_openidc/test/test-cmd.c:438,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - argc
    - argv
    - env
    argTypes:
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 400
    functionDepth: 5
    functionLinenumber: 400
    functionLinenumberEnd: 441
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test-cmd.c
    functionUses: 9
    functionsReached:
    - usage
    - oidc_test_teardown
    - enckey
    - sign
    - timestamp
    - oidc_test_setup
    - oidc_test_pool_get
    - key2jwk
    - verify
    - uuid
    - decrypt
    - hash_base64url
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv, char **env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_config.c:59,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_config.c:62,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:63,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_config.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - base
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: oidc_test_server_create
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_server_create
    - apr_pcalloc
    - ap_set_module_config
    linkageType: ''
    returnType: server_rec
    signature: server_rec *oidc_test_server_create(apr_pool_t *pool, const server_rec
      *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/test_config.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: oidc_test_server_cfg
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    linkageType: ''
    returnType: oidc_cfg_t
    signature: oidc_cfg_t *oidc_test_server_cfg(const server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_config.c:75,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/test_config.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - pool
    - s
    - primitive
    argTypes:
    - apr_pool_t*
    - server_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: oidc_test_server_cmd
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - apr_pcalloc
    linkageType: ''
    returnType: cmd_parms
    signature: cmd_parms *oidc_test_server_cmd(apr_pool_t *pool, server_rec *s, const
      char *primitive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:89,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:90,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_config.c:91,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:91,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_config.c:92,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:92,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_config.c:94,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - base
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: oidc_test_server_create_openidc
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_server_create
    - oidc_cfg_provider_get
    - oidc_cfg_provider_authorization_endpoint_url_set
    - oidc_test_server_cfg
    - oidc_cfg_provider_client_id_set
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: server_rec
    signature: server_rec *oidc_test_server_create_openidc(apr_pool_t *pool, const
      server_rec *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_hooks
      Src: /src/mod_auth_openidc/test/test_config.c:105,1
    - Dst: oidc_test_hook_post_config_get
      Src: /src/mod_auth_openidc/test/test_config.c:106,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:107,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:109,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_config.c:109,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_config.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: oidc_test_post_config
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - register_hooks
    - oidc_test_hook_post_config_get
    - post_config
    - ck_assert_int_eq
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: int
    signature: int oidc_test_post_config(apr_pool_t *pool, server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:114,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:115,1
    - Dst: oidc_test_server_create_openidc
      Src: /src/mod_auth_openidc/test/test_config.c:116,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:118,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_pool_get
    - ck_assert_int_eq
    - oidc_test_server_create_openidc
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_config_post_config_ok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:123,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:124,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:125,1
    - Dst: register_hooks
      Src: /src/mod_auth_openidc/test/test_config.c:128,1
    - Dst: oidc_test_hook_post_config_get
      Src: /src/mod_auth_openidc/test/test_config.c:129,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:130,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_config.c:133,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:133,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:133,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:134,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_config.c:134,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:136,1
    - Dst: post_config
      Src: /src/mod_auth_openidc/test/test_config.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - register_hooks
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_test_hook_post_config_get
    - oidc_cfg_provider_get
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - post_config
    - ck_assert_int_eq
    - oidc_cfg_provider_issuer_set
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_post_config_runs_once)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:145,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:146,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:147,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:149,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_test_pool_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_post_config_unconfigured_server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:155,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:156,1
    - Dst: oidc_test_server_create_openidc
      Src: /src/mod_auth_openidc/test/test_config.c:157,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:158,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:161,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:161,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:162,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_config.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - ck_assert_int_eq
    - oidc_cfg_crypto_passphrase_secret1_get
    - oidc_test_server_create_openidc
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_crypto_passphrase_autogenerated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:167,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:168,1
    - Dst: oidc_test_server_create_openidc
      Src: /src/mod_auth_openidc/test/test_config.c:169,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:171,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:172,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 173
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - ck_assert_int_eq
    - oidc_test_server_create_openidc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_missing_redirect_uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:177,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:178,1
    - Dst: oidc_test_server_create_openidc
      Src: /src/mod_auth_openidc/test/test_config.c:179,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_config.c:181,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:181,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:181,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:182,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_cfg_provider_get
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - oidc_cfg_provider_client_id_set
    - ck_assert_int_eq
    - oidc_test_server_create_openidc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_missing_client_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:187,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:188,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:189,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:190,1
    - Dst: oidc_cfg_provider_issuer_set
      Src: /src/mod_auth_openidc/test/test_config.c:194,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:194,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_config.c:195,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:195,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:197,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 198
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_cfg_provider_get
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - oidc_cfg_provider_client_id_set
    - ck_assert_int_eq
    - oidc_cfg_provider_issuer_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_missing_authorization_endpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:203,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:204,1
    - Dst: oidc_test_server_create_openidc
      Src: /src/mod_auth_openidc/test/test_config.c:205,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:206,1
    - Dst: oidc_cfg_provider_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_config.c:209,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:209,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:210,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 211
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_cfg_provider_get
    - oidc_test_pool_get
    - oidc_cfg_provider_metadata_url_set
    - oidc_test_server_cfg
    - ck_assert_int_eq
    - oidc_test_server_create_openidc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_metadata_dir_and_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:216,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:217,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:218,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:219,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:223,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_metadata_dir_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:229,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:230,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:231,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:232,1
    - Dst: oidc_cfg_provider_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_config.c:234,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:234,1
    - Dst: oidc_cfg_provider_client_id_set
      Src: /src/mod_auth_openidc/test/test_config.c:235,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:235,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:237,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 238
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_cfg_provider_get
    - oidc_test_pool_get
    - oidc_cfg_provider_metadata_url_set
    - oidc_test_server_cfg
    - oidc_cfg_provider_client_id_set
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_insecure_urls_warn_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:243,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:244,1
    - Dst: oidc_test_server_create_openidc
      Src: /src/mod_auth_openidc/test/test_config.c:245,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:246,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:250,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - ck_assert_int_eq
    - oidc_test_server_create_openidc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_relative_redirect_uri_with_cookie_domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:256,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:257,1
    - Dst: oidc_test_server_create_openidc
      Src: /src/mod_auth_openidc/test/test_config.c:258,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:259,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:262,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:262,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:266,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 267
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - ck_assert_int_eq
    - oidc_test_server_create_openidc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_cookie_domain_mismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:272,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:273,1
    - Dst: oidc_test_server_create_openidc
      Src: /src/mod_auth_openidc/test/test_config.c:274,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:275,1
    - Dst: oidc_cfg_provider_dpop_mode_int_set
      Src: /src/mod_auth_openidc/test/test_config.c:277,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:277,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:278,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 279
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_cfg_provider_get
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - ck_assert_int_eq
    - oidc_cfg_provider_dpop_mode_int_set
    - oidc_test_server_create_openidc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_dpop_without_signing_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:287,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:288,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:289,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:290,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:293,1
    - Dst: oidc_cmd_oauth_client_id_set
      Src: /src/mod_auth_openidc/test/test_config.c:294,1
    - Dst: oidc_test_server_cmd
      Src: /src/mod_auth_openidc/test/test_config.c:294,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:295,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 297
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_cmd_oauth_client_id_set
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_test_server_cmd
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_oauth_no_verification_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:301,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:302,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:303,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:304,1
    - Dst: oidc_cmd_oauth_metadata_url_set
      Src: /src/mod_auth_openidc/test/test_config.c:305,1
    - Dst: oidc_test_server_cmd
      Src: /src/mod_auth_openidc/test/test_config.c:305,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:307,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_cmd_oauth_metadata_url_set
    - oidc_test_pool_get
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_test_server_cmd
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_oauth_metadata_url_insecure_warns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:313,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:314,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:315,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:316,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:318,1
    - Dst: oidc_cfg_oauth_verify_jwks_uri_set
      Src: /src/mod_auth_openidc/test/test_config.c:318,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:319,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 320
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - oidc_cfg_oauth_verify_jwks_uri_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_oauth_local_validation_without_audience)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:325,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:326,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:327,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:328,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:330,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_config.c:331,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:332,1
    - Dst: oidc_cfg_oauth_verify_jwks_uri_set
      Src: /src/mod_auth_openidc/test/test_config.c:332,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:333,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:333,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:336,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:337,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_set
      Src: /src/mod_auth_openidc/test/test_config.c:337,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:337,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:339,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 340
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - oidc_cfg_oauth_introspection_endpoint_url_set
    - oidc_cfg_oauth_verify_jwks_uri_set
    - ck_assert_ptr_null
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_oauth_introspection_and_local_validation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:348,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:349,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:350,1
    - Dst: oidc_test_server_create_openidc
      Src: /src/mod_auth_openidc/test/test_config.c:351,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:354,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:355,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:358,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:358,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:360,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_config.c:360,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:360,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:361,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/test/test_config.c:361,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 362
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - ck_assert_ptr_null
    - ck_assert_int_eq
    - oidc_cfg_crypto_passphrase_secret1_get
    - oidc_test_server_create_openidc
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_merged_vhosts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:370,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:371,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:372,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:374,1
    - Dst: oidc_cmd_redirect_uri_set
      Src: /src/mod_auth_openidc/test/test_config.c:374,1
    - Dst: oidc_test_server_cmd
      Src: /src/mod_auth_openidc/test/test_config.c:374,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:376,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 377
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - ck_assert_int_eq
    - oidc_test_pool_get
    - ck_assert_ptr_null
    - oidc_cmd_redirect_uri_set
    - oidc_test_server_cmd
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_own_redirect_uri_without_provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:382,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:383,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:384,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:385,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:389,1
    - Dst: oidc_cmd_redirect_uri_set
      Src: /src/mod_auth_openidc/test/test_config.c:389,1
    - Dst: oidc_test_server_cmd
      Src: /src/mod_auth_openidc/test/test_config.c:389,1
    - Dst: oidc_cfg_server_merge
      Src: /src/mod_auth_openidc/test/test_config.c:393,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:393,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:393,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_config.c:394,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_config.c:395,1
    - Dst: oidc_cfg_redirect_uri_get
      Src: /src/mod_auth_openidc/test/test_config.c:395,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:396,1
    - Dst: oidc_cfg_redirect_uri_inherited_get
      Src: /src/mod_auth_openidc/test/test_config.c:396,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:399,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 400
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_cfg_server_merge
    - ck_assert_int_eq
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - oidc_cfg_redirect_uri_inherited_get
    - oidc_cfg_redirect_uri_get
    - ap_set_module_config
    - ck_assert_ptr_null
    - oidc_cmd_redirect_uri_set
    - ck_assert_str_eq
    - oidc_test_server_cmd
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_inherited_redirect_uri_without_provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:405,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:406,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:407,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:408,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:411,1
    - Dst: oidc_cmd_redirect_uri_set
      Src: /src/mod_auth_openidc/test/test_config.c:411,1
    - Dst: oidc_test_server_cmd
      Src: /src/mod_auth_openidc/test/test_config.c:411,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:413,1
    - Dst: oidc_cmd_redirect_uri_set
      Src: /src/mod_auth_openidc/test/test_config.c:413,1
    - Dst: oidc_test_server_cmd
      Src: /src/mod_auth_openidc/test/test_config.c:413,1
    - Dst: oidc_cfg_server_merge
      Src: /src/mod_auth_openidc/test/test_config.c:416,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:416,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:416,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/test_config.c:417,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:418,1
    - Dst: oidc_cfg_redirect_uri_inherited_get
      Src: /src/mod_auth_openidc/test/test_config.c:418,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:421,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 422
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_cfg_server_merge
    - ck_assert_int_eq
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - oidc_cfg_redirect_uri_inherited_get
    - ap_set_module_config
    - ck_assert_ptr_null
    - oidc_cmd_redirect_uri_set
    - oidc_test_server_cmd
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_openidc_overridden_redirect_uri_without_provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:427,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:428,1
    - Dst: oidc_test_server_create
      Src: /src/mod_auth_openidc/test/test_config.c:429,1
    - Dst: oidc_test_server_create_openidc
      Src: /src/mod_auth_openidc/test/test_config.c:430,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:432,1
    - Dst: oidc_test_server_cfg
      Src: /src/mod_auth_openidc/test/test_config.c:433,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:436,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 437
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_server_create
    - oidc_test_pool_get
    - oidc_test_server_cfg
    - ck_assert_int_eq
    - oidc_test_server_create_openidc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_merged_vhosts_one_broken)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:442,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:443,1
    - Dst: oidc_test_server_create_openidc
      Src: /src/mod_auth_openidc/test/test_config.c:444,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:447,1
    - Dst: oidc_test_post_config
      Src: /src/mod_auth_openidc/test/test_config.c:447,1
    - Dst: oidc_test_hook_child_init_get
      Src: /src/mod_auth_openidc/test/test_config.c:449,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:450,1
    - Dst: child_init
      Src: /src/mod_auth_openidc/test/test_config.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 452
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_post_config
    - oidc_test_request_get
    - oidc_test_hook_child_init_get
    - child_init
    - oidc_test_pool_get
    - ck_assert_int_eq
    - oidc_test_server_create_openidc
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_child_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:463,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:464,1
    - Dst: register_hooks
      Src: /src/mod_auth_openidc/test/test_config.c:468,1
    - Dst: oidc_test_hook_insert_filter_get
      Src: /src/mod_auth_openidc/test/test_config.c:469,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:470,1
    - Dst: oidc_test_added_input_filter_reset
      Src: /src/mod_auth_openidc/test/test_config.c:473,1
    - Dst: insert_filter
      Src: /src/mod_auth_openidc/test/test_config.c:474,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:475,1
    - Dst: oidc_test_added_input_filter_get
      Src: /src/mod_auth_openidc/test/test_config.c:475,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_config.c:478,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_config.c:479,1
    - Dst: apr_pool_userdata_set
      Src: /src/mod_auth_openidc/test/test_config.c:480,1
    - Dst: insert_filter
      Src: /src/mod_auth_openidc/test/test_config.c:481,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:482,1
    - Dst: oidc_test_added_input_filter_get
      Src: /src/mod_auth_openidc/test/test_config.c:482,1
    - Dst: oidc_test_added_input_filter_reset
      Src: /src/mod_auth_openidc/test/test_config.c:485,1
    - Dst: insert_filter
      Src: /src/mod_auth_openidc/test/test_config.c:487,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:488,1
    - Dst: oidc_test_added_input_filter_get
      Src: /src/mod_auth_openidc/test/test_config.c:488,1
    - Dst: oidc_test_set_auth_type
      Src: /src/mod_auth_openidc/test/test_config.c:492,1
    - Dst: insert_filter
      Src: /src/mod_auth_openidc/test/test_config.c:493,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:494,1
    - Dst: oidc_test_added_input_filter_get
      Src: /src/mod_auth_openidc/test/test_config.c:494,1
    - Dst: oidc_test_set_auth_type
      Src: /src/mod_auth_openidc/test/test_config.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 496
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - oidc_test_hook_insert_filter_get
    - register_hooks
    - oidc_test_request_get
    - apr_pool_userdata_set
    - oidc_test_added_input_filter_reset
    - oidc_test_set_auth_type
    - oidc_test_pool_get
    - oidc_test_added_input_filter_get
    - apr_table_make
    - insert_filter
    - apr_table_set
    - ck_assert_ptr_null
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_insert_filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:501,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:502,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/test_config.c:504,1
    - Dst: register_hooks
      Src: /src/mod_auth_openidc/test/test_config.c:510,1
    - Dst: oidc_test_input_filter_get
      Src: /src/mod_auth_openidc/test/test_config.c:511,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:512,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/test_config.c:514,1
    - Dst: apr_pool_userdata_set
      Src: /src/mod_auth_openidc/test/test_config.c:515,1
    - Dst: oidc_http_hdr_in_set
      Src: /src/mod_auth_openidc/test/test_config.c:516,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_config.c:518,1
    - Dst: apr_brigade_create
      Src: /src/mod_auth_openidc/test/test_config.c:520,1
    - Dst: oidc_test_brigade_prime
      Src: /src/mod_auth_openidc/test/test_config.c:521,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:523,1
    - Dst: filter
      Src: /src/mod_auth_openidc/test/test_config.c:523,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:525,1
    - Dst: apr_brigade_pflatten
      Src: /src/mod_auth_openidc/test/test_config.c:525,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_config.c:526,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/test_config.c:526,1
    - Dst: ck_assert_str_eq
      Src: /src/mod_auth_openidc/test/test_config.c:528,1
    - Dst: oidc_http_hdr_in_content_length_get
      Src: /src/mod_auth_openidc/test/test_config.c:528,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:531,1
    - Dst: oidc_test_added_input_filter_get
      Src: /src/mod_auth_openidc/test/test_config.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 532
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - register_hooks
    - oidc_test_pool_get
    - apr_table_make
    - apr_table_set
    - oidc_test_input_filter_get
    - oidc_test_brigade_prime
    - ck_assert_ptr_null
    - ck_assert_str_eq
    - apr_pstrmemdup
    - oidc_http_hdr_in_content_length_get
    - apr_pool_userdata_set
    - ck_assert_ptr_nonnull
    - oidc_test_request_get
    - oidc_http_hdr_in_set
    - _oidc_memset
    - apr_brigade_create
    - filter
    - apr_brigade_pflatten
    - oidc_test_added_input_filter_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_input_filter_appends_post_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:537,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:538,1
    - Dst: register_hooks
      Src: /src/mod_auth_openidc/test/test_config.c:543,1
    - Dst: oidc_test_input_filter_get
      Src: /src/mod_auth_openidc/test/test_config.c:544,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:545,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_config.c:547,1
    - Dst: apr_brigade_create
      Src: /src/mod_auth_openidc/test/test_config.c:549,1
    - Dst: oidc_test_brigade_prime
      Src: /src/mod_auth_openidc/test/test_config.c:550,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:552,1
    - Dst: filter
      Src: /src/mod_auth_openidc/test/test_config.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 553
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - register_hooks
    - _oidc_memset
    - oidc_test_request_get
    - apr_brigade_create
    - filter
    - ck_assert_int_eq
    - oidc_test_pool_get
    - oidc_test_input_filter_get
    - oidc_test_brigade_prime
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_input_filter_propagates_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:558,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:559,1
    - Dst: register_hooks
      Src: /src/mod_auth_openidc/test/test_config.c:564,1
    - Dst: oidc_test_input_filter_get
      Src: /src/mod_auth_openidc/test/test_config.c:565,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:566,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/test/test_config.c:568,1
    - Dst: apr_brigade_create
      Src: /src/mod_auth_openidc/test/test_config.c:570,1
    - Dst: oidc_test_brigade_prime
      Src: /src/mod_auth_openidc/test/test_config.c:571,1
    - Dst: ck_assert_int_eq
      Src: /src/mod_auth_openidc/test/test_config.c:573,1
    - Dst: filter
      Src: /src/mod_auth_openidc/test/test_config.c:573,1
    - Dst: ck_assert
      Src: /src/mod_auth_openidc/test/test_config.c:574,1
    - Dst: APR_BRIGADE_EMPTY
      Src: /src/mod_auth_openidc/test/test_config.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 575
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - register_hooks
    - _oidc_memset
    - oidc_test_request_get
    - apr_brigade_create
    - filter
    - ck_assert_int_eq
    - ck_assert
    - oidc_test_pool_get
    - APR_BRIGADE_EMPTY
    - oidc_test_input_filter_get
    - oidc_test_brigade_prime
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_input_filter_eatcrlf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/test_config.c:583,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/test_config.c:584,1
    - Dst: register_hooks
      Src: /src/mod_auth_openidc/test/test_config.c:589,1
    - Dst: oidc_test_authz_provider_get
      Src: /src/mod_auth_openidc/test/test_config.c:590,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:591,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:592,1
    - Dst: oidc_test_server_cmd
      Src: /src/mod_auth_openidc/test/test_config.c:594,1
    - Dst: ck_assert_ptr_null
      Src: /src/mod_auth_openidc/test/test_config.c:595,1
    - Dst: authz_provider*::parse_require_line
      Src: /src/mod_auth_openidc/test/test_config.c:595,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:596,1
    - Dst: ck_assert_ptr_nonnull
      Src: /src/mod_auth_openidc/test/test_config.c:600,1
    - Dst: authz_provider*::parse_require_line
      Src: /src/mod_auth_openidc/test/test_config.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 601
    functionName: START_TEST
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 0
    functionsReached:
    - register_hooks
    - oidc_test_request_get
    - oidc_test_server_cmd
    - oidc_test_pool_get
    - authz_provider*::parse_require_line
    - ck_assert_ptr_null
    - oidc_test_authz_provider_get
    - ck_assert_ptr_nonnull
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_config_parse_require_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcase_create
      Src: /src/mod_auth_openidc/test/test_config.c:605,1
    - Dst: tcase_add_checked_fixture
      Src: /src/mod_auth_openidc/test/test_config.c:606,1
    - Dst: tcase_set_timeout
      Src: /src/mod_auth_openidc/test/test_config.c:607,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:609,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:610,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:611,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:612,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:613,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:614,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:615,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:616,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:617,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:618,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:619,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:620,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:621,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:622,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:623,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:624,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:625,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:626,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:627,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:628,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:629,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:630,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:631,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:632,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:633,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:634,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:635,1
    - Dst: tcase_add_test
      Src: /src/mod_auth_openidc/test/test_config.c:636,1
    - Dst: suite_create
      Src: /src/mod_auth_openidc/test/test_config.c:638,1
    - Dst: suite_add_tcase
      Src: /src/mod_auth_openidc/test/test_config.c:639,1
    - Dst: oidc_test_suite_run
      Src: /src/mod_auth_openidc/test/test_config.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 642
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/test_config.c
    functionUses: 9
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_set_timeout
    - tcase_add_checked_fixture
    - tcase_add_test
    - suite_add_tcase
    - oidc_test_suite_run
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:42,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:49,1
    - Dst: oidc_cfg_server_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:50,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:50,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:51,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:54,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_url.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_hash_set
    - apr_hash_make
    - oidc_test_setup
    - oidc_test_pool_get
    - oidc_cfg_server_create
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:63,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:66,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:66,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:70,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:72,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:74,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:77,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:78,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:79,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_url.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 83
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_url.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_pool_create
    - oidc_test_cfg_get
    - oidc_test_pool_get
    - oidc_validate_redirect_url
    - apr_pool_destroy
    - LLVMFuzzerInitialize
    - apr_pstrmemdup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_json.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_json.c
    functionUses: 1
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_json.c:39,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_json.c:42,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_json.c:42,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_json.c:44,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_json.c:47,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_json.c:49,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_json.c:50,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_json.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_json.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_pool_create
    - oidc_json_decref
    - oidc_json_decode_object
    - oidc_test_pool_get
    - apr_pool_destroy
    - LLVMFuzzerInitialize
    - apr_pstrmemdup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c
    functionUses: 2
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:59,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:62,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:62,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:67,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:69,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:70,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:71,1
    - Dst: memset
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:76,1
    - Dst: memchr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:80,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:82,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:84,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:85,1
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:88,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:88,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 92
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_pool_create
    - apr_table_copy
    - oidc_test_cfg_get
    - memchr
    - oidc_test_pool_get
    - apr_table_make
    - apr_table_set
    - apr_pool_destroy
    - oidc_discovery_response
    - memset
    - LLVMFuzzerInitialize
    - apr_pstrmemdup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:90,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:91,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:94,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:94,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c
    functionUses: 3
    functionsReached:
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_setup
    - oidc_test_pool_get
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:107,1
    - Dst: oidc_util_read_form_encoded_params
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:108,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - params
    - name
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: fuzz_param_get
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c
    functionUses: 0
    functionsReached:
    - oidc_util_read_form_encoded_params
    - apr_table_make
    - apr_table_get
    linkageType: ''
    returnType: char
    signature: char *fuzz_param_get(request_rec *r, const char *params, const char
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:114,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:115,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:115,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:116,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - payload
    - claim
    - value
    argTypes:
    - oidc_json_t*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: fuzz_freshen
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_json_is_integer
    - oidc_json_object_get
    - oidc_json_integer
    - oidc_json_integer_value
    linkageType: ''
    returnType: void
    signature: void fuzz_freshen(oidc_json_t *payload, const char *claim, apr_time_t
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:121,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:122,1
    - Dst: strcmp
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:122,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:122,1
    - Dst: oidc_jose_hash_string
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:128,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:130,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:132,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - r
    - payload
    - claim
    - value
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: fuzz_hash_claim
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_json_object_get
    - strcmp
    - oidc_json_is_string
    - oidc_util_base64url_encode
    - oidc_json_string
    - oidc_json_string_value
    - oidc_jose_hash_string
    linkageType: ''
    returnType: void
    signature: void fuzz_hash_claim(request_rec *r, oidc_json_t *payload, const char
      *claim, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:144,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:145,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:149,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:150,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:152,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:153,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:155,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - r
    - payload
    argTypes:
    - request_rec*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 159
    functionName: fuzz_sign
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - oidc_json_decref
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    linkageType: ''
    returnType: char
    signature: char *fuzz_sign(request_rec *r, oidc_json_t *payload)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:168,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:171,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:176,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:177,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:178,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:178,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:179,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:184,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:187,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:187,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:188,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:189,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:189,1
    - Dst: fuzz_freshen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:190,1
    - Dst: fuzz_freshen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:191,1
    - Dst: fuzz_hash_claim
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:192,1
    - Dst: fuzz_param_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:192,1
    - Dst: fuzz_hash_claim
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:193,1
    - Dst: fuzz_param_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:193,1
    - Dst: fuzz_sign
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:195,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:199,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:199,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:200,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - r
    - params
    - nonce
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 201
    functionName: fuzz_id_token_substitute
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_json_object_set_new
    - apr_time_sec
    - fuzz_freshen
    - strlen
    - fuzz_hash_claim
    - oidc_json_decode_object
    - oidc_json_object_get
    - apr_time_now
    - fuzz_param_get
    - strstr
    - apr_pstrcat
    - fuzz_sign
    - oidc_json_string
    - oidc_http_url_encode
    - apr_pstrmemdup
    - strchr
    - oidc_http_url_decode
    linkageType: ''
    returnType: char
    signature: char *fuzz_id_token_substitute(request_rec *r, char *params, const
      char *nonce)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:205,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:208,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:208,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:210,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:214,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:217,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:218,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:219,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:220,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:220,1
    - Dst: memset
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:224,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:235,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:236,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:237,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:238,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:239,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:240,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:241,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:242,1
    - Dst: oidc_proto_state_set_response_mode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:244,1
    - Dst: oidc_proto_state_set_pkce_state
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:245,1
    - Dst: oidc_proto_state_set_prompt
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:247,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:248,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:249,1
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:250,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:251,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:252,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:253,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:253,1
    - Dst: fuzz_strndup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:255,1
    - Dst: fuzz_strndup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:255,1
    - Dst: fuzz_param_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:256,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:257,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:257,1
    - Dst: fuzz_id_token_substitute
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:258,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:265,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:266,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:273,1
    - Dst: oidc_response_authorization_post
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:275,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:277,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:278,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c:280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 282
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_to_cookie
    - oidc_test_pool_get
    - apr_table_make
    - apr_table_set
    - oidc_test_cfg_get
    - oidc_state_browser_fingerprint
    - oidc_response_authorization_redirect
    - apr_pstrcat
    - oidc_proto_state_set_issuer
    - oidc_test_request_get
    - fuzz_strndup
    - oidc_proto_state_set_nonce
    - strlen
    - oidc_session_load
    - apr_table_copy
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - oidc_proto_state_new
    - oidc_proto_state_set_response_mode
    - oidc_state_cookie_name
    - oidc_http_url_encode
    - memset
    - LLVMFuzzerInitialize
    - apr_pool_destroy
    - apr_pool_create
    - oidc_proto_state_set_state
    - oidc_proto_state_set_response_type
    - oidc_proto_state_set_pkce_state
    - fuzz_param_get
    - oidc_proto_state_set_original_method
    - fuzz_id_token_substitute
    - oidc_response_authorization_post
    - oidc_proto_state_set_prompt
    - apr_psprintf
    - oidc_proto_state_set_timestamp_now
    - oidc_session_free
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:62,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:63,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:65,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:65,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c
    functionUses: 4
    functionsReached:
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_setup
    - oidc_test_pool_get
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:78,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:81,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:81,1
    - Dst: apr_pool_userdata_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:83,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:85,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:89,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:92,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:93,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:94,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:95,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:95,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:96,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:96,1
    - Dst: memset
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:100,1
    - Dst: fuzz_strndup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:105,1
    - Dst: fuzz_strndup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:105,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:109,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:116,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:118,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:126,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:129,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:130,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:131,1
    - Dst: oidc_session_set_access_token_type
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:132,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:133,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:134,1
    - Dst: oidc_session_set_idtoken
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:135,1
    - Dst: oidc_session_set_session_state
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:136,1
    - Dst: oidc_session_set_original_url
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:137,1
    - Dst: oidc_session_set_session_expires
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:138,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:138,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:138,1
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:141,1
    - Dst: oidc_content_handler
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:144,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:146,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 48
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 150
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c
    functionUses: 0
    functionsReached:
    - oidc_session_set_access_token_type
    - apr_time_now
    - oidc_test_pool_get
    - apr_table_make
    - apr_table_set
    - oidc_session_set_refresh_token
    - oidc_session_set_access_token
    - oidc_session_set_session_state
    - oidc_test_cfg_get
    - apr_pstrcat
    - oidc_session_set_access_token_expires
    - apr_pool_userdata_set
    - oidc_handle_redirect_uri_request
    - oidc_test_request_get
    - fuzz_strndup
    - strlen
    - oidc_session_load
    - apr_table_copy
    - oidc_session_set_session_expires
    - oidc_content_handler
    - memset
    - LLVMFuzzerInitialize
    - apr_pool_destroy
    - oidc_session_set_original_url
    - apr_pstrdup
    - apr_pool_create
    - oidc_session_set_issuer
    - oidc_session_set_idtoken
    - oidc_session_free
    - apr_time_from_sec
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/test/fuzz/fuzz.h:44,1
    - Dst: memcpy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz.h:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pool
    - data
    - size
    argTypes:
    - apr_pool_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: fuzz_strndup
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz.h
    functionUses: 2
    functionsReached:
    - memcpy
    - apr_palloc
    linkageType: ''
    returnType: char
    signature: char *fuzz_strndup(apr_pool_t *pool, const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: fuzz_jwt_keys_destroy
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_list_destroy_hash
    linkageType: ''
    returnType: void
    signature: void fuzz_jwt_keys_destroy(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:118,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:120,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:121,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:122,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:127,1
    - Dst: oidc_jwk_parse_json
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:128,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:129,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:132,1
    - Dst: atexit
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 139
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c
    functionUses: 5
    functionsReached:
    - oidc_test_request_get
    - apr_hash_set
    - oidc_json_decref
    - apr_hash_make
    - oidc_json_decode_object
    - atexit
    - oidc_test_setup
    - oidc_test_pool_get
    - oidc_jwk_parse_json
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:143,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:146,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:146,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:148,1
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:153,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:156,1
    - Dst: oidc_jwt_hdr_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:157,1
    - Dst: oidc_jwt_hdr_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:158,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:160,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:161,1
    - Dst: oidc_jose_get_timestamp
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:163,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:164,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:168,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 172
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c
    functionUses: 0
    functionsReached:
    - apr_pool_create
    - oidc_jose_get_string
    - oidc_jwt_verify
    - oidc_jwt_hdr_get
    - oidc_test_pool_get
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - apr_pool_destroy
    - oidc_jose_get_timestamp
    - oidc_jwt_parse
    - LLVMFuzzerInitialize
    - apr_pstrmemdup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c
    functionUses: 6
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:52,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:55,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:55,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:57,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:59,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:61,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:63,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:64,1
    - Dst: oidc_metadata_provider_is_valid
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:65,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:66,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:67,1
    - Dst: oidc_metadata_client_parse
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:68,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:69,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 74
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_pool_create
    - oidc_json_decref
    - oidc_metadata_provider_parse
    - oidc_metadata_conf_parse
    - oidc_test_cfg_get
    - oidc_json_decode_object
    - oidc_cfg_provider_create
    - oidc_metadata_client_parse
    - oidc_test_pool_get
    - oidc_metadata_provider_is_valid
    - apr_pool_destroy
    - LLVMFuzzerInitialize
    - apr_pstrmemdup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_base64.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_base64.c
    functionUses: 7
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_base64.c:38,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_base64.c:41,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_base64.c:41,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_base64.c:44,1
    - Dst: oidc_util_base64url_decode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_base64.c:46,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_base64.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_base64.c
    functionUses: 0
    functionsReached:
    - apr_pool_create
    - oidc_test_pool_get
    - oidc_util_base64url_decode
    - apr_pool_destroy
    - LLVMFuzzerInitialize
    - apr_pstrmemdup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c
    functionUses: 8
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:60,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:63,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:63,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:66,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:68,1
    - Dst: fuzz_strndup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:70,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:73,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:73,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:74,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:74,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:77,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:78,1
    - Dst: oidc_http_hdr_normalize_name
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:79,1
    - Dst: oidc_util_cookie_domain_valid
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:82,1
    - Dst: oidc_util_cookie_domain_valid
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:83,1
    - Dst: oidc_util_hostname_endswith
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:84,1
    - Dst: oidc_util_hostname_endswith
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:85,1
    - Dst: oidc_util_strcasestr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:88,1
    - Dst: oidc_util_strcasestr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:89,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:90,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:91,1
    - Dst: oidc_util_spaced_string_equals
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:92,1
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:93,1
    - Dst: oidc_util_spaced_string_to_hashtable
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:94,1
    - Dst: oidc_util_strcmp_const_time
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:95,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:98,1
    - Dst: oidc_util_table_add_query_encoded_params
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:99,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:105,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:106,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:109,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:110,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:111,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:112,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:112,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:113,1
    - Dst: oidc_cfg_parse_is_valid_url
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:116,1
    - Dst: oidc_cfg_parse_is_valid_http_url
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:117,1
    - Dst: oidc_http_param_is_sensitive
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:120,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:121,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:122,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 126
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c
    functionUses: 0
    functionsReached:
    - oidc_http_redact_json_for_log
    - oidc_test_pool_get
    - apr_table_make
    - apr_table_set
    - oidc_http_param_is_sensitive
    - oidc_util_hostname_endswith
    - oidc_util_spaced_string_to_hashtable
    - oidc_cfg_parse_is_valid_url
    - oidc_util_strcasestr
    - oidc_http_url_decode
    - oidc_cfg_parse_is_valid_http_url
    - oidc_proto_jwt_header_peek
    - oidc_test_cfg_get
    - oidc_state_browser_fingerprint
    - oidc_util_html_javascript_escape
    - oidc_test_request_get
    - fuzz_strndup
    - oidc_util_spaced_string_equals
    - oidc_util_spaced_string_contains
    - oidc_util_cookie_domain_valid
    - oidc_util_strcmp_const_time
    - oidc_util_issuer_match
    - oidc_http_url_encode
    - LLVMFuzzerInitialize
    - apr_pool_destroy
    - oidc_http_hdr_normalize_name
    - oidc_util_table_add_query_encoded_params
    - apr_pool_create
    - oidc_http_redact_body_for_log
    - oidc_util_html_escape
    - oidc_http_hdr_in_accept_contains
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:63,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:67,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:68,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:68,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c
    functionUses: 9
    functionsReached:
    - oidc_cfg_provider_client_secret_set
    - oidc_test_cfg_get
    - oidc_cfg_provider_get
    - oidc_test_setup
    - oidc_test_pool_get
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:83,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:84,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:84,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:85,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - payload
    - claim
    - value
    argTypes:
    - oidc_json_t*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: fuzz_freshen
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c
    functionUses: 1
    functionsReached:
    - oidc_json_object_set_new
    - oidc_json_is_integer
    - oidc_json_object_get
    - oidc_json_integer
    - oidc_json_integer_value
    linkageType: ''
    returnType: void
    signature: void fuzz_freshen(oidc_json_t *payload, const char *claim, apr_time_t
      value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:97,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:98,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:102,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:103,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:105,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:106,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:108,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - r
    - payload
    argTypes:
    - request_rec*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 112
    functionName: fuzz_sign
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c
    functionUses: 1
    functionsReached:
    - apr_pstrdup
    - oidc_jwt_new
    - oidc_json_decref
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    linkageType: ''
    returnType: char
    signature: char *fuzz_sign(request_rec *r, oidc_json_t *payload)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:116,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:119,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:119,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:123,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:125,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:126,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:127,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:128,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:128,1
    - Dst: memset
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:132,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:139,1
    - Dst: fuzz_strndup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:141,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:144,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:145,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:145,1
    - Dst: fuzz_freshen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:146,1
    - Dst: fuzz_freshen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:147,1
    - Dst: fuzz_sign
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:148,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:150,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:150,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:156,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:157,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:160,1
    - Dst: oidc_logout
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:161,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:161,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:162,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 166
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c
    functionUses: 0
    functionsReached:
    - apr_time_sec
    - apr_time_now
    - oidc_test_pool_get
    - apr_table_make
    - apr_table_set
    - oidc_json_decode_object
    - oidc_test_cfg_get
    - apr_pstrcat
    - fuzz_sign
    - oidc_test_request_get
    - fuzz_strndup
    - strlen
    - oidc_session_load
    - apr_table_copy
    - oidc_http_url_encode
    - memset
    - LLVMFuzzerInitialize
    - apr_pool_destroy
    - apr_pool_create
    - fuzz_freshen
    - oidc_session_free
    - oidc_logout
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c
    functionUses: 10
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c:48,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c:51,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c:51,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c:53,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c:57,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c:58,1
    - Dst: oidc_util_read_form_encoded_params
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c:59,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 63
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_pool_create
    - oidc_test_pool_get
    - apr_table_make
    - apr_pool_destroy
    - LLVMFuzzerInitialize
    - apr_pstrmemdup
    - oidc_util_read_form_encoded_params
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c
    functionUses: 11
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:55,1
    - Dst: oidc_jwk_pem_bio_to_jwk
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:60,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:62,1
    - Dst: oidc_jwk_to_public_json
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:63,1
    - Dst: oidc_jwk_default_jws_alg
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:64,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:66,1
    - Dst: BIO_free
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - pool
    - data
    - size
    - is_private
    argTypes:
    - apr_pool_t*
    - uint8_t*
    - size_t
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: fuzz_pem
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_to_json
    - oidc_jwk_pem_bio_to_jwk
    - oidc_jwk_default_jws_alg
    - BIO_free
    - oidc_jwk_destroy
    - oidc_jwk_to_public_json
    - BIO_new_mem_buf
    linkageType: ''
    returnType: void
    signature: void fuzz_pem(apr_pool_t *pool, const uint8_t *data, size_t size, apr_byte_t
      is_private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:73,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:80,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:80,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:83,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:86,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:87,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:88,1
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:89,1
    - Dst: fuzz_pem
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:92,1
    - Dst: fuzz_pem
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:93,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 97
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c
    functionUses: 0
    functionsReached:
    - apr_pool_create
    - oidc_cfg_parse_key_record
    - oidc_test_pool_get
    - apr_pool_destroy
    - LLVMFuzzerInitialize
    - apr_pstrmemdup
    - fuzz_pem
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c
    functionUses: 12
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:57,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:60,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:60,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:66,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:68,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:69,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:70,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:71,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:71,1
    - Dst: oidc_http_get_cookie
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:73,1
    - Dst: oidc_http_get_chunked_cookie
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:75,1
    - Dst: oidc_state_cookies_clean_expired
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:76,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:76,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 80
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c
    functionUses: 0
    functionsReached:
    - oidc_test_request_get
    - apr_pool_create
    - oidc_test_cfg_get
    - oidc_test_pool_get
    - apr_table_make
    - oidc_state_cookies_clean_expired
    - apr_table_set
    - apr_pool_destroy
    - oidc_http_get_cookie
    - LLVMFuzzerInitialize
    - apr_pstrmemdup
    - oidc_http_get_chunked_cookie
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:39,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:41,1
    - Dst: fseek
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:44,1
    - Dst: ftell
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:45,1
    - Dst: fseek
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:48,1
    - Dst: malloc
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:49,1
    - Dst: fread
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:50,1
    - Dst: fclose
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:51,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:52,1
    - Dst: free
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 55
    functionName: run_file
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/standalone.c
    functionUses: 0
    functionsReached:
    - fclose
    - ftell
    - free
    - fread
    - fopen
    - fseek
    - fprintf
    - LLVMFuzzerTestOneInput
    - malloc
    linkageType: ''
    returnType: long
    signature: long run_file(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:59,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:61,1
    - Dst: getline
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:68,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:71,1
    - Dst: free
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:74,1
    - Dst: fclose
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: run_lines
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/standalone.c
    functionUses: 0
    functionsReached:
    - fclose
    - getline
    - free
    - fopen
    - fprintf
    - LLVMFuzzerTestOneInput
    linkageType: ''
    returnType: long
    signature: long run_lines(const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:85,1
    - Dst: run_lines
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:90,1
    - Dst: run_file
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:90,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/test/fuzz/standalone.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 107
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/standalone.c
    functionUses: 9
    functionsReached:
    - run_file
    - run_lines
    - strcmp
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: fuzz_shared_keys_destroy
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_list_destroy_hash
    linkageType: ''
    returnType: void
    signature: void fuzz_shared_keys_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:90,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - pool
    - r
    - directive
    argTypes:
    - apr_pool_t*
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: fuzz_cmd
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
    functionUses: 0
    functionsReached:
    - apr_pcalloc
    linkageType: ''
    returnType: cmd_parms
    signature: cmd_parms *fuzz_cmd(apr_pool_t *pool, request_rec *r, const char *directive)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:104,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:105,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:106,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:107,1
    - Dst: oidc_cmd_oauth_verify_shared_keys_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:111,1
    - Dst: fuzz_cmd
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:111,1
    - Dst: oidc_cfg_oauth_verify_shared_keys_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:113,1
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:116,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:117,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:119,1
    - Dst: atexit
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:122,1
    - Dst: oidc_cmd_oauth_verify_issuer_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:124,1
    - Dst: fuzz_cmd
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:124,1
    - Dst: oidc_cmd_oauth_verify_aud_values_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:125,1
    - Dst: fuzz_cmd
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:125,1
    - Dst: oidc_cfg_provider_client_secret_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:126,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 134
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
    functionUses: 13
    functionsReached:
    - oidc_test_request_get
    - oidc_cmd_oauth_verify_shared_keys_set
    - apr_hash_this
    - oidc_test_cfg_get
    - atexit
    - oidc_cfg_provider_client_secret_set
    - oidc_test_setup
    - oidc_cfg_provider_get
    - oidc_test_pool_get
    - fuzz_cmd
    - oidc_cfg_oauth_verify_shared_keys_get
    - apr_hash_next
    - oidc_cmd_oauth_verify_aud_values_set
    - oidc_cmd_oauth_verify_issuer_set
    - apr_hash_first
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:138,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:139,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:139,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:140,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - payload
    - claim
    - value
    argTypes:
    - oidc_json_t*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: fuzz_freshen
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
    functionUses: 2
    functionsReached:
    - oidc_json_object_set_new
    - oidc_json_is_integer
    - oidc_json_object_get
    - oidc_json_integer
    - oidc_json_integer_value
    linkageType: ''
    returnType: void
    signature: void fuzz_freshen(oidc_json_t *payload, const char *claim, apr_time_t
      value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:149,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:152,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:152,1
    - Dst: fuzz_freshen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:153,1
    - Dst: fuzz_freshen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:154,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:159,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:160,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:163,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:164,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:166,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:167,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:168,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:169,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 172
    functionName: fuzz_maybe_sign
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - apr_pstrdup
    - apr_time_sec
    - fuzz_freshen
    - oidc_json_decref
    - oidc_json_decode_object
    - apr_time_now
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - oidc_jwk_destroy
    - oidc_jwt_sign
    - oidc_util_key_symmetric_create
    linkageType: ''
    returnType: char
    signature: char *fuzz_maybe_sign(request_rec *r, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:177,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:177,1
    - Dst: fuzz_maybe_sign
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:179,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:179,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: fuzz_authorization_substitute
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
    functionUses: 0
    functionsReached:
    - apr_pstrcat
    - fuzz_maybe_sign
    - strncmp
    - strlen
    linkageType: ''
    returnType: char
    signature: char *fuzz_authorization_substitute(request_rec *r, const char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:187,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:190,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:195,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:196,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:197,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:197,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:198,1
    - Dst: fuzz_maybe_sign
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:199,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:203,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:203,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - r
    - params
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 205
    functionName: fuzz_param_substitute
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - strlen
    - fuzz_maybe_sign
    - strstr
    - apr_pstrcat
    - oidc_http_url_encode
    - apr_pstrmemdup
    - strchr
    - oidc_http_url_decode
    linkageType: ''
    returnType: char
    signature: char *fuzz_param_substitute(request_rec *r, char *params)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:209,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:212,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:212,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:214,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:218,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:221,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:222,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:223,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:224,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:224,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:225,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:226,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:233,1
    - Dst: oidc_cfg_dir_config_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:234,1
    - Dst: oidc_cmd_dir_accept_oauth_token_in_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:237,1
    - Dst: fuzz_cmd
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:237,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:239,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:247,1
    - Dst: fuzz_strndup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:254,1
    - Dst: fuzz_strndup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:254,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:258,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:262,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:269,1
    - Dst: fuzz_authorization_substitute
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:270,1
    - Dst: fuzz_param_substitute
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:271,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:273,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:275,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:278,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:279,1
    - Dst: ap_set_module_config
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:281,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c:283,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 285
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
    functionUses: 2
    functionsReached:
    - ap_get_module_config
    - oidc_test_pool_get
    - apr_table_make
    - apr_table_set
    - oidc_cmd_dir_accept_oauth_token_in_set
    - fuzz_authorization_substitute
    - strchr
    - oidc_oauth_get_bearer_token
    - oidc_test_cfg_get
    - oidc_oauth_check_userid
    - fuzz_param_substitute
    - apr_table_unset
    - oidc_test_request_get
    - fuzz_strndup
    - strlen
    - apr_table_copy
    - LLVMFuzzerInitialize
    - apr_pool_destroy
    - apr_pool_create
    - oidc_cfg_dir_config_create
    - fuzz_cmd
    - ap_set_module_config
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c
    functionUses: 14
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c:51,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c:54,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c:54,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c:56,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c:61,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c:62,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c:63,1
    - Dst: oidc_http_response_header
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c:68,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 72
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c
    functionUses: 2
    functionsReached:
    - oidc_test_request_get
    - apr_pool_create
    - apr_hash_set
    - apr_hash_make
    - oidc_test_pool_get
    - oidc_http_response_header
    - LLVMFuzzerInitialize
    - apr_pool_destroy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c
    functionUses: 15
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:59,1
    - Dst: oidc_jwk_to_public_json
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:60,1
    - Dst: oidc_jwk_default_jws_alg
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:61,1
    - Dst: oidc_jwk_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:63,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - jwk
    argTypes:
    - apr_pool_t*
    - oidc_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: fuzz_jwk_use
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_to_json
    - oidc_jwk_to_public_json
    - oidc_jwk_copy
    - oidc_jwk_destroy
    - oidc_jwk_default_jws_alg
    linkageType: ''
    returnType: void
    signature: void fuzz_jwk_use(apr_pool_t *pool, const oidc_jwk_t *jwk)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:70,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:73,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:73,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:75,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:78,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:80,1
    - Dst: oidc_is_jwks
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:82,1
    - Dst: oidc_jwks_parse_json
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:84,1
    - Dst: fuzz_jwk_use
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:87,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:87,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:90,1
    - Dst: oidc_is_jwk
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:91,1
    - Dst: oidc_jwk_parse_json
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:93,1
    - Dst: fuzz_jwk_use
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:94,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:95,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:98,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c:101,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 103
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c
    functionUses: 2
    functionsReached:
    - oidc_test_request_get
    - apr_pool_create
    - oidc_json_decref
    - oidc_json_decode_object
    - fuzz_jwk_use
    - APR_ARRAY_IDX
    - oidc_test_pool_get
    - oidc_jwk_parse_json
    - oidc_is_jwk
    - oidc_jwk_list_destroy
    - apr_pool_destroy
    - oidc_jwks_parse_json
    - LLVMFuzzerInitialize
    - apr_pstrmemdup
    - oidc_jwk_destroy
    - oidc_is_jwks
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c
    functionUses: 16
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:46,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:49,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:49,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:51,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:54,1
    - Dst: oidc_proto_state_from_cookie
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:55,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:55,1
    - Dst: oidc_proto_state_get_issuer
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:57,1
    - Dst: oidc_proto_state_get_nonce
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:58,1
    - Dst: oidc_proto_state_get_state
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:59,1
    - Dst: oidc_proto_state_get_timestamp
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:60,1
    - Dst: oidc_proto_state_get_original_url
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:61,1
    - Dst: oidc_proto_state_get_original_method
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:62,1
    - Dst: oidc_proto_state_get_response_type
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:63,1
    - Dst: oidc_proto_state_get_response_mode
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:64,1
    - Dst: oidc_proto_state_get_prompt
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:65,1
    - Dst: oidc_proto_state_get_pkce_state
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:66,1
    - Dst: oidc_proto_state_get_auth_request_params
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:67,1
    - Dst: oidc_proto_state_get_path_scope
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:68,1
    - Dst: oidc_proto_state_to_string
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:69,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:71,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 76
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c
    functionUses: 2
    functionsReached:
    - oidc_test_pool_get
    - oidc_proto_state_get_issuer
    - oidc_proto_state_get_response_mode
    - oidc_proto_state_get_original_url
    - oidc_proto_state_get_timestamp
    - oidc_proto_state_from_cookie
    - oidc_test_cfg_get
    - oidc_proto_state_get_nonce
    - apr_pstrmemdup
    - oidc_proto_state_get_original_method
    - oidc_test_request_get
    - oidc_proto_state_destroy
    - oidc_proto_state_get_prompt
    - LLVMFuzzerInitialize
    - apr_pool_destroy
    - oidc_proto_state_get_auth_request_params
    - apr_pool_create
    - oidc_proto_state_get_path_scope
    - oidc_proto_state_get_response_type
    - oidc_proto_state_get_pkce_state
    - oidc_proto_state_get_state
    - oidc_proto_state_to_string
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:47,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:50,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:51,1
    - Dst: oidc_cmd_dir_preserve_post_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:52,1
    - Dst: oidc_test_cmd_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c
    functionUses: 17
    functionsReached:
    - oidc_test_cmd_get
    - oidc_test_request_get
    - ap_get_module_config
    - oidc_cmd_dir_preserve_post_set
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:60,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:63,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:63,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:66,1
    - Dst: apr_table_copy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:68,1
    - Dst: fuzz_strndup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:70,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:72,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:83,1
    - Dst: strlen
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:85,1
    - Dst: oidc_response_post_preserve_javascript
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:89,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 93
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c
    functionUses: 2
    functionsReached:
    - oidc_test_request_get
    - apr_pool_create
    - fuzz_strndup
    - strlen
    - oidc_response_post_preserve_javascript
    - apr_table_copy
    - oidc_test_pool_get
    - apr_table_set
    - LLVMFuzzerInitialize
    - apr_pool_destroy
    - strchr
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_test_setup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c
    functionUses: 18
    functionsReached:
    - oidc_test_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:65,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:68,1
    - Dst: oidc_test_pool_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:68,1
    - Dst: oidc_test_request_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:73,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:75,1
    - Dst: fuzz_strndup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:77,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:79,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:82,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:85,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:88,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:92,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:93,1
    - Dst: apr_table_add
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:100,1
    - Dst: oidc_test_cfg_get
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:103,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:105,1
    - Dst: oidc_util_url_cur_host
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:106,1
    - Dst: oidc_util_url_cur_is_secure
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:108,1
    - Dst: oidc_util_url_matches_redirect_uri
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:109,1
    - Dst: oidc_util_url_cur_matches
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:110,1
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:111,1
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:112,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c:114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 116
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c
    functionUses: 2
    functionsReached:
    - oidc_util_url_cur_host
    - oidc_test_pool_get
    - apr_table_make
    - oidc_util_url_matches_redirect_uri
    - oidc_util_url_abs
    - oidc_util_url_cur_matches
    - strchr
    - oidc_test_cfg_get
    - apr_pstrmemdup
    - oidc_util_url_cur
    - apr_table_add
    - oidc_test_request_get
    - fuzz_strndup
    - oidc_util_url_cur_is_secure
    - LLVMFuzzerInitialize
    - apr_pool_destroy
    - apr_pstrdup
    - apr_pool_create
    - apr_strtok
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:81,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/http.c:84,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 2
    argNames:
    - r
    - str
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: oidc_http_url_encode
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 44
    functionsReached:
    - _oidc_strlen
    - apr_palloc
    linkageType: ''
    returnType: char
    signature: char *oidc_http_url_encode(const request_rec *r, const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: oidc_http_url_decode_hex_digit
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int oidc_http_url_decode_hex_digit(const char c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:126,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/http.c:128,1
    - Dst: oidc_http_url_decode_hex_digit
      Src: /src/mod_auth_openidc/src/http.c:138,1
    - Dst: oidc_http_url_decode_hex_digit
      Src: /src/mod_auth_openidc/src/http.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - r
    - str
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 155
    functionName: oidc_http_url_decode
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 4
    functionsReached:
    - _oidc_strlen
    - oidc_http_url_decode_hex_digit
    - apr_palloc
    linkageType: ''
    returnType: char
    signature: char *oidc_http_url_decode(const request_rec *r, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/http.c:161,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - name
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: oidc_http_hdr_in_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - oidc_debug
    - apr_table_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_get(const request_rec *r, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:172,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/http.c:174,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/http.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - r
    - name
    - separator
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: oidc_http_hdr_in_get_left_most_only
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - apr_strtok
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_get_left_most_only(const request_rec *r, const
      char *name, const char *separator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:185,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/http.c:188,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/http.c:188,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/http.c:192,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:192,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:193,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:194,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/http.c:198,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 5
    argNames:
    - r
    - name
    - separator
    - postfix_separator
    - needle
    argTypes:
    - request_rec*
    - char*
    - char*
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 202
    functionName: oidc_http_hdr_in_contains
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_pstrdup
    - oidc_http_hdr_in_get
    - _oidc_strncmp
    - apr_strtok
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_http_hdr_in_contains(const request_rec *r, const char
      *name, const char *separator,\n\t\t\t\t\t    const char postfix_separator, const
      char *needle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/http.c:208,1
    - Dst: strpbrk
      Src: /src/mod_auth_openidc/src/http.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: oidc_http_hdr_value_sanitize
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - strpbrk
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_value_sanitize(const request_rec *r, const char
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_value_sanitize
      Src: /src/mod_auth_openidc/src/http.c:222,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:224,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/http.c:225,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:229,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/src/http.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - r
    - table
    - name
    - value
    argTypes:
    - request_rec*
    - apr_table_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 232
    functionName: oidc_http_hdr_table_set
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_table_set
    - oidc_http_hdr_value_sanitize
    - oidc_debug
    - apr_table_unset
    linkageType: ''
    returnType: void
    signature: void oidc_http_hdr_table_set(const request_rec *r, apr_table_t *table,
      const char *name, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_value_sanitize
      Src: /src/mod_auth_openidc/src/http.c:240,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:241,1
    - Dst: apr_table_addn
      Src: /src/mod_auth_openidc/src/http.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r
    - table
    - name
    - value
    argTypes:
    - request_rec*
    - apr_table_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: oidc_http_hdr_table_add
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_table_addn
    - oidc_http_hdr_value_sanitize
    - oidc_debug
    linkageType: ''
    returnType: void
    signature: void oidc_http_hdr_table_add(const request_rec *r, apr_table_t *table,
      const char *name, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_table_set
      Src: /src/mod_auth_openidc/src/http.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - name
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: oidc_http_hdr_out_set
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - oidc_http_hdr_table_set
    linkageType: ''
    returnType: void
    signature: void oidc_http_hdr_out_set(const request_rec *r, const char *name,
      const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/http.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - name
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: oidc_http_hdr_out_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_table_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_out_get(const request_rec *r, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:263,1
    - Dst: apr_table_add
      Src: /src/mod_auth_openidc/src/http.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - name
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: oidc_http_hdr_err_out_add
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_table_add
    - oidc_debug
    linkageType: ''
    returnType: void
    signature: void oidc_http_hdr_err_out_add(const request_rec *r, const char *name,
      const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_err_out_add
      Src: /src/mod_auth_openidc/src/http.c:272,1
    - Dst: oidc_http_hdr_err_out_add
      Src: /src/mod_auth_openidc/src/http.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: oidc_http_set_no_cache_headers
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - oidc_http_hdr_err_out_add
    linkageType: ''
    returnType: void
    signature: void oidc_http_set_no_cache_headers(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_table_set
      Src: /src/mod_auth_openidc/src/http.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - name
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: oidc_http_hdr_in_set
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - oidc_http_hdr_table_set
    linkageType: ''
    returnType: void
    signature: void oidc_http_hdr_in_set(const request_rec *r, const char *name, const
      char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: oidc_http_hdr_in_cookie_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_cookie_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_set
      Src: /src/mod_auth_openidc/src/http.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: oidc_http_hdr_in_cookie_set
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_set
    linkageType: ''
    returnType: void
    signature: void oidc_http_hdr_in_cookie_set(const request_rec *r, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: oidc_http_hdr_in_user_agent_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_user_agent_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get_left_most_only
      Src: /src/mod_auth_openidc/src/http.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: oidc_http_hdr_in_x_forwarded_for_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get_left_most_only
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_x_forwarded_for_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: oidc_http_hdr_in_content_type_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_content_type_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: oidc_http_hdr_in_content_length_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_content_length_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: oidc_http_hdr_in_x_requested_with_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_x_requested_with_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: oidc_http_hdr_in_sec_fetch_mode_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_sec_fetch_mode_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 344
    functionName: oidc_http_hdr_in_sec_fetch_dest_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_sec_fetch_dest_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: oidc_http_hdr_in_accept_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_accept_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_contains
      Src: /src/mod_auth_openidc/src/http.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - needle
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: oidc_http_hdr_in_accept_contains
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - oidc_http_hdr_in_contains
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_http_hdr_in_accept_contains(const request_rec *r, const
      char *needle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: oidc_http_hdr_in_authorization_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_authorization_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get_left_most_only
      Src: /src/mod_auth_openidc/src/http.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 372
    functionName: oidc_http_hdr_in_x_forwarded_proto_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get_left_most_only
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_x_forwarded_proto_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get_left_most_only
      Src: /src/mod_auth_openidc/src/http.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: oidc_http_hdr_in_x_forwarded_port_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get_left_most_only
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_x_forwarded_port_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get_left_most_only
      Src: /src/mod_auth_openidc/src/http.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: oidc_http_hdr_in_x_forwarded_host_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get_left_most_only
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_x_forwarded_host_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get_left_most_only
      Src: /src/mod_auth_openidc/src/http.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: oidc_http_hdr_in_forwarded_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - oidc_http_hdr_in_get_left_most_only
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_forwarded_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: oidc_http_hdr_in_host_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_host_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_get
      Src: /src/mod_auth_openidc/src/http.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: oidc_http_hdr_in_traceparent_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_hdr_in_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_in_traceparent_get(const request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_out_set
      Src: /src/mod_auth_openidc/src/http.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: oidc_http_hdr_out_location_set
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - oidc_http_hdr_out_set
    linkageType: ''
    returnType: void
    signature: void oidc_http_hdr_out_location_set(const request_rec *r, const char
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_out_get
      Src: /src/mod_auth_openidc/src/http.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 421
    functionName: oidc_http_hdr_out_location_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - oidc_http_hdr_out_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_out_location_get(const request_rec *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:429,1
    - Dst: oidc_http_hdr_in_forwarded_get
      Src: /src/mod_auth_openidc/src/http.c:430,1
    - Dst: oidc_util_strcasestr
      Src: /src/mod_auth_openidc/src/http.c:431,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:433,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/http.c:434,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/http.c:437,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/http.c:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - r
    - elem
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 426
    functionDepth: 4
    functionLinenumber: 426
    functionLinenumberEnd: 442
    functionName: oidc_http_hdr_forwarded_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - _oidc_strlen
    - oidc_http_hdr_in_forwarded_get
    - apr_pstrdup
    - apr_psprintf
    - _oidc_strstr
    - oidc_util_strcasestr
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_forwarded_get(const request_rec *r, const char
      *elem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/http.c:460,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:461,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/http.c:465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - r
    - str
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 469
    functionName: oidc_http_hdr_normalize_name
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - _oidc_strlen
    - apr_pstrdup
    - strchr
    linkageType: ''
    returnType: char
    signature: char *oidc_http_hdr_normalize_name(const request_rec *r, const char
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/http.c:480,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/http.c:488,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/http.c:490,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/http.c:496,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/http.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - contents
    - size
    - nmemb
    - userp
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 503
    functionName: oidc_http_response_data
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - apr_palloc
    - _oidc_memcpy
    - oidc_error
    linkageType: ''
    returnType: size_t
    signature: size_t oidc_http_response_data(void *contents, size_t size, size_t
      nmemb, void *userp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/http.c:518,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/src/http.c:522,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/http.c:525,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:533,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:539,1
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/http.c:545,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/http.c:545,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/http.c:546,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/http.c:547,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:548,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/http.c:549,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/http.c:549,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 557
    functionName: oidc_http_response_header
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 4
    functionsReached:
    - _oidc_strlen
    - apr_pstrndup
    - apr_hash_set
    - apr_pstrdup
    - apr_hash_this
    - apr_hash_count
    - oidc_debug
    - apr_hash_next
    - _oidc_strnatcasecmp
    - _oidc_strstr
    - apr_hash_first
    linkageType: ''
    returnType: size_t
    signature: size_t oidc_http_response_header(const char *buffer, size_t size, size_t
      nitems, void *userdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/http.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 585
    functionName: oidc_http_param_is_sensitive
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_http_param_is_sensitive(const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:592,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/http.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - name
    - name_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 596
    functionName: oidc_http_param_name_is_sensitive
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - _oidc_strncmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_http_param_name_is_sensitive(const char *name, size_t
      name_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_log_mask_secrets
      Src: /src/mod_auth_openidc/src/http.c:610,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/http.c:624,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:624,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/http.c:629,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:630,1
    - Dst: memchr
      Src: /src/mod_auth_openidc/src/http.c:631,1
    - Dst: oidc_http_param_name_is_sensitive
      Src: /src/mod_auth_openidc/src/http.c:635,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/http.c:640,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/http.c:643,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - r
    - data
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 655
    functionName: oidc_http_redact_body_for_log
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - _oidc_strlen
    - oidc_http_param_name_is_sensitive
    - memchr
    - oidc_util_log_mask_secrets
    - _oidc_memcpy
    - apr_palloc
    - strchr
    linkageType: ''
    returnType: char
    signature: char *oidc_http_redact_body_for_log(request_rec *r, const char *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:673,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:674,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/http.c:675,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/http.c:684,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/http.c:707,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/http.c:709,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/http.c:713,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:714,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:718,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/http.c:719,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - pool
    - data
    - needle
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 724
    functionName: oidc_http_redact_json_member
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - _oidc_memcpy
    - _oidc_strstr
    - apr_palloc
    - strchr
    linkageType: ''
    returnType: char
    signature: char *oidc_http_redact_json_member(apr_pool_t *pool, const char *data,
      const char *needle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_log_mask_secrets
      Src: /src/mod_auth_openidc/src/http.c:732,1
    - Dst: oidc_http_redact_json_member
      Src: /src/mod_auth_openidc/src/http.c:738,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/http.c:739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - r
    - data
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 742
    functionName: oidc_http_redact_json_for_log
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - apr_pstrcat
    - oidc_util_log_mask_secrets
    - oidc_http_redact_json_member
    linkageType: ''
    returnType: char
    signature: char *oidc_http_redact_json_for_log(request_rec *r, const char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/http.c:749,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:750,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/http.c:750,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/http.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - rec
    - key
    - value
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 752
    functionName: oidc_http_add_form_url_encoded_param
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - APR_ARRAY_PUSH
    - apr_psprintf
    - oidc_http_url_encode
    linkageType: ''
    returnType: int
    signature: int oidc_http_add_form_url_encoded_param(void *rec, const char *key,
      const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_param_is_sensitive
      Src: /src/mod_auth_openidc/src/http.c:761,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/http.c:762,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - rec
    - key
    - value
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 764
    functionName: oidc_http_add_form_encoded_param_for_log
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - APR_ARRAY_PUSH
    - oidc_http_param_is_sensitive
    - apr_psprintf
    linkageType: ''
    returnType: int
    signature: int oidc_http_add_form_encoded_param_for_log(void *rec, const char
      *key, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/http.c:772,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/src/http.c:772,1
    - Dst: apr_table_do
      Src: /src/mod_auth_openidc/src/http.c:773,1
    - Dst: apr_array_pstrcat
      Src: /src/mod_auth_openidc/src/http.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - params
    argTypes:
    - request_rec*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 775
    functionName: oidc_http_encode_params
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_table_do
    - apr_array_pstrcat
    - apr_table_elts
    - apr_array_make
    linkageType: ''
    returnType: char
    signature: "char *oidc_http_encode_params(request_rec *r, const apr_table_t *params,\n\t\t\t\t
      \    int (*encoder)(void *, const char *, const char *))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/http.c:783,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/src/http.c:786,1
    - Dst: oidc_http_encode_params
      Src: /src/mod_auth_openidc/src/http.c:787,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/http.c:790,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:791,1
    - Dst: oidc_http_encode_params
      Src: /src/mod_auth_openidc/src/http.c:793,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:794,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/http.c:796,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:797,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - r
    - url
    - params
    argTypes:
    - request_rec*
    - char*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 800
    functionName: oidc_http_query_encoded_url
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - apr_pstrdup
    - oidc_error
    - oidc_debug
    - apr_psprintf
    - oidc_http_encode_params
    - strchr
    - apr_table_elts
    linkageType: ''
    returnType: char
    signature: char *oidc_http_query_encoded_url(request_rec *r, const char *url,
      const apr_table_t *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/src/http.c:807,1
    - Dst: oidc_http_encode_params
      Src: /src/mod_auth_openidc/src/http.c:808,1
    - Dst: oidc_http_encode_params
      Src: /src/mod_auth_openidc/src/http.c:810,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:811,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - params
    argTypes:
    - request_rec*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 816
    functionName: oidc_http_form_encoded_data
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 3
    functionsReached:
    - oidc_debug
    - apr_table_elts
    - oidc_http_encode_params
    linkageType: ''
    returnType: char
    signature: char *oidc_http_form_encoded_data(request_rec *r, const apr_table_t
      *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r
    - ','
    - curl
    - ','
    - code
    - ','
    - option
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 825
    functionName: OIDC_HTTP_CURL_SETOPT_PARMS
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_HTTP_CURL_SETOPT_PARMS(r, curl, code, option, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 827
    functionName: OIDC_HTTP_CURL_SETOPT
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_HTTP_CURL_SETOPT(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - option
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 837
    functionName: OIDC_HTTP_CURL_SETOPT_SSL
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_HTTP_CURL_SETOPT_SSL(option, value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/http.c:843,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:846,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:849,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:852,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:855,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:858,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:861,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:864,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:865,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:866,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:869,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:872,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:873,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:874,1
    - Dst: OIDC_HTTP_CURL_SETOPT_SSL
      Src: /src/mod_auth_openidc/src/http.c:875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - r
    - curl
    argTypes:
    - request_rec*
    - CURL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 877
    functionName: oidc_http_set_curl_ssl_options
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - OIDC_HTTP_CURL_SETOPT_SSL
    - oidc_debug
    - apr_table_get
    linkageType: ''
    returnType: void
    signature: void oidc_http_set_curl_ssl_options(request_rec *r, CURL *curl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/http.c:883,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:885,1
    - Dst: getpid
      Src: /src/mod_auth_openidc/src/http.c:886,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:887,1
    - Dst: oidc_util_openssl_version
      Src: /src/mod_auth_openidc/src/http.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 891
    functionName: oidc_http_user_agent
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - getpid
    - apr_psprintf
    - apr_table_get
    - oidc_util_openssl_version
    linkageType: ''
    returnType: char
    signature: char *oidc_http_user_agent(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/http.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 898
    functionName: oidc_http_interface
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - apr_table_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_interface(const request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_ca_bundle_path_get
      Src: /src/mod_auth_openidc/src/http.c:909,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:910,1
    - Dst: oidc_cfg_ca_bundle_path_get
      Src: /src/mod_auth_openidc/src/http.c:910,1
    - Dst: malloc
      Src: /src/mod_auth_openidc/src/http.c:917,1
    - Dst: SearchPath
      Src: /src/mod_auth_openidc/src/http.c:919,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:921,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/http.c:923,1
    - Dst: free
      Src: /src/mod_auth_openidc/src/http.c:925,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - r
    - curl
    - c
    argTypes:
    - request_rec*
    - CURL*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 927
    functionName: oidc_http_request_setup_ca_bundle
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_ca_bundle_path_get
    - SearchPath
    - oidc_warn
    - free
    - OIDC_HTTP_CURL_SETOPT
    - malloc
    linkageType: ''
    returnType: void
    signature: void oidc_http_request_setup_ca_bundle(request_rec *r, CURL *curl,
      const oidc_cfg_t *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:941,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:943,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:946,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - r
    - curl
    - outgoing_proxy
    argTypes:
    - request_rec*
    - CURL*
    - oidc_http_outgoing_proxy_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 948
    functionName: oidc_http_request_setup_proxy
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - OIDC_HTTP_CURL_SETOPT
    linkageType: ''
    returnType: void
    signature: "void oidc_http_request_setup_proxy(request_rec *r, CURL *curl,\n\t\t\t\t\t
      \ const oidc_http_outgoing_proxy_t *outgoing_proxy)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_slist_append
      Src: /src/mod_auth_openidc/src/http.c:960,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:960,1
    - Dst: curl_slist_append
      Src: /src/mod_auth_openidc/src/http.c:964,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:965,1
    - Dst: oidc_http_hdr_in_traceparent_get
      Src: /src/mod_auth_openidc/src/http.c:967,1
    - Dst: oidc_cfg_trace_parent_get
      Src: /src/mod_auth_openidc/src/http.c:968,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:969,1
    - Dst: curl_slist_append
      Src: /src/mod_auth_openidc/src/http.c:971,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:971,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:975,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:975,1
    - Dst: curl_slist_append
      Src: /src/mod_auth_openidc/src/http.c:976,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:976,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - r
    - c
    - content_type
    - access_token
    - dpop
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 954
    functionDepth: 3
    functionLinenumber: 954
    functionLinenumberEnd: 980
    functionName: oidc_http_request_build_header_list
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 3
    functionsReached:
    - oidc_cfg_trace_parent_get
    - _oidc_strlen
    - oidc_debug
    - apr_psprintf
    - curl_slist_append
    - oidc_http_hdr_in_traceparent_get
    linkageType: ''
    returnType: struct curl_slist
    signature: "struct curl_slist *oidc_http_request_build_header_list(request_rec
      *r, const oidc_cfg_t *c, const char *content_type,\n\t\t\t\t\t\t       const
      char *access_token, const char *dpop)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/http.c:995,1
    - Dst: oidc_http_get_cookie
      Src: /src/mod_auth_openidc/src/http.c:996,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1000,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1001,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:1007,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1008,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - r
    - curl
    - pass_cookies
    argTypes:
    - request_rec*
    - CURL*
    - apr_array_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 1009
    functionName: oidc_http_request_pass_cookies
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - APR_ARRAY_IDX
    - OIDC_HTTP_CURL_SETOPT
    - oidc_debug
    - apr_psprintf
    - oidc_http_get_cookie
    linkageType: ''
    returnType: void
    signature: void oidc_http_request_pass_cookies(request_rec *r, CURL *curl, const
      apr_array_header_t *pass_cookies)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_perform
      Src: /src/mod_auth_openidc/src/http.c:1021,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/http.c:1026,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/src/http.c:1028,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/http.c:1032,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/src/http.c:1034,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/src/http.c:1037,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/src/http.c:1037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - r
    - c
    - curl
    - url
    - curl_err
    - http_timeout
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - CURL*
    - char*
    - char*
    - oidc_http_timeout_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1041
    functionName: oidc_http_request_perform_with_retries
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_sleep
    - oidc_error
    - apr_time_from_msec
    - OIDC_METRICS_COUNTER_INC_VALUE
    - curl_easy_perform
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_http_request_perform_with_retries(request_rec *r,
      const oidc_cfg_t *c, CURL *curl,\n\t\t\t\t\t\t\t const char *url, const char
      *curl_err,\n\t\t\t\t\t\t\t const oidc_http_timeout_t *http_timeout)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/http.c:1063,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:1066,1
    - Dst: oidc_http_redact_body_for_log
      Src: /src/mod_auth_openidc/src/http.c:1070,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/http.c:1071,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/http.c:1079,1
    - Dst: oidc_http_curl_acquire
      Src: /src/mod_auth_openidc/src/http.c:1083,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/http.c:1085,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1093,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1094,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1095,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1097,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1098,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1099,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1100,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1103,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1104,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1107,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1109,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1112,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1114,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1118,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1119,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1121,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1122,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1127,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1128,1
    - Dst: oidc_http_set_curl_ssl_options
      Src: /src/mod_auth_openidc/src/http.c:1130,1
    - Dst: oidc_http_request_setup_ca_bundle
      Src: /src/mod_auth_openidc/src/http.c:1132,1
    - Dst: oidc_http_user_agent
      Src: /src/mod_auth_openidc/src/http.c:1135,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/http.c:1136,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:1137,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1138,1
    - Dst: oidc_http_interface
      Src: /src/mod_auth_openidc/src/http.c:1142,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/http.c:1143,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:1145,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1146,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/http.c:1148,1
    - Dst: oidc_http_request_setup_proxy
      Src: /src/mod_auth_openidc/src/http.c:1154,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1158,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1159,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1163,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1166,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1169,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1174,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1175,1
    - Dst: oidc_http_request_build_header_list
      Src: /src/mod_auth_openidc/src/http.c:1178,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1180,1
    - Dst: oidc_http_request_pass_cookies
      Src: /src/mod_auth_openidc/src/http.c:1183,1
    - Dst: OIDC_HTTP_CURL_SETOPT
      Src: /src/mod_auth_openidc/src/http.c:1186,1
    - Dst: oidc_http_request_perform_with_retries
      Src: /src/mod_auth_openidc/src/http.c:1189,1
    - Dst: curl_easy_getinfo
      Src: /src/mod_auth_openidc/src/http.c:1193,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:1194,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/src/http.c:1196,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1196,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/src/http.c:1198,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:1204,1
    - Dst: oidc_http_redact_json_for_log
      Src: /src/mod_auth_openidc/src/http.c:1204,1
    - Dst: curl_slist_free_all
      Src: /src/mod_auth_openidc/src/http.c:1211,1
    - Dst: oidc_http_curl_release
      Src: /src/mod_auth_openidc/src/http.c:1212,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 84
    argCount: 17
    argNames:
    - r
    - url
    - data
    - content_type
    - basic_auth
    - access_token
    - dpop
    - ssl_validate_server
    - response
    - response_code
    - response_hdrs
    - http_timeout
    - outgoing_proxy
    - pass_cookies
    - ssl_cert
    - ssl_key
    - ssl_key_pwd
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - int
    - char**
    - long*
    - apr_hash_t*
    - oidc_http_timeout_t*
    - oidc_http_outgoing_proxy_t*
    - apr_array_header_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1046
    functionDepth: 4
    functionLinenumber: 1046
    functionLinenumberEnd: 1215
    functionName: oidc_http_request
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - oidc_util_mask_value
    - ap_get_module_config
    - oidc_http_redact_json_for_log
    - oidc_http_curl_release
    - oidc_debug
    - OIDC_HTTP_CURL_SETOPT
    - oidc_http_request_perform_with_retries
    - oidc_http_curl_acquire
    - oidc_error
    - oidc_http_request_pass_cookies
    - oidc_http_request_setup_proxy
    - oidc_http_request_build_header_list
    - OIDC_METRICS_COUNTER_INC_VALUE
    - apr_pstrmemdup
    - oidc_http_interface
    - curl_slist_free_all
    - oidc_http_request_setup_ca_bundle
    - oidc_http_user_agent
    - curl_easy_getinfo
    - oidc_http_set_curl_ssl_options
    - oidc_warn
    - oidc_http_redact_body_for_log
    - apr_psprintf
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_http_request(request_rec *r, const char *url, const
      char *data, const char *content_type,\n\t\t\t\t    const char *basic_auth, const
      char *access_token, const char *dpop,\n\t\t\t\t    int ssl_validate_server,
      char **response, long *response_code,\n\t\t\t\t    apr_hash_t *response_hdrs,
      const oidc_http_timeout_t *http_timeout,\n\t\t\t\t    const oidc_http_outgoing_proxy_t
      *outgoing_proxy,\n\t\t\t\t    const apr_array_header_t *pass_cookies, const
      char *ssl_cert, const char *ssl_key,\n\t\t\t\t    const char *ssl_key_pwd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_query_encoded_url
      Src: /src/mod_auth_openidc/src/http.c:1225,1
    - Dst: oidc_http_request
      Src: /src/mod_auth_openidc/src/http.c:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 16
    argNames:
    - r
    - url
    - params
    - basic_auth
    - access_token
    - dpop
    - ssl_validate_server
    - response
    - response_code
    - response_hdrs
    - http_timeout
    - outgoing_proxy
    - pass_cookies
    - ssl_cert
    - ssl_key
    - ssl_key_pwd
    argTypes:
    - request_rec*
    - char*
    - apr_table_t*
    - char*
    - char*
    - char*
    - int
    - char**
    - long*
    - apr_hash_t*
    - oidc_http_timeout_t*
    - oidc_http_outgoing_proxy_t*
    - apr_array_header_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1220
    functionDepth: 5
    functionLinenumber: 1220
    functionLinenumberEnd: 1229
    functionName: oidc_http_get
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 17
    functionsReached:
    - oidc_http_request
    - oidc_http_query_encoded_url
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_http_get(request_rec *r, const char *url, const apr_table_t
      *params, const char *basic_auth,\n\t\t\t const char *access_token, const char
      *dpop, int ssl_validate_server, char **response,\n\t\t\t long *response_code,
      apr_hash_t *response_hdrs, const oidc_http_timeout_t *http_timeout,\n\t\t\t
      const oidc_http_outgoing_proxy_t *outgoing_proxy, const apr_array_header_t *pass_cookies,\n\t\t\t
      const char *ssl_cert, const char *ssl_key, const char *ssl_key_pwd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_form_encoded_data
      Src: /src/mod_auth_openidc/src/http.c:1239,1
    - Dst: oidc_http_request
      Src: /src/mod_auth_openidc/src/http.c:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 16
    argNames:
    - r
    - url
    - params
    - basic_auth
    - access_token
    - dpop
    - ssl_validate_server
    - response
    - response_code
    - response_hdrs
    - http_timeout
    - outgoing_proxy
    - pass_cookies
    - ssl_cert
    - ssl_key
    - ssl_key_pwd
    argTypes:
    - request_rec*
    - char*
    - apr_table_t*
    - char*
    - char*
    - char*
    - int
    - char**
    - long*
    - apr_hash_t*
    - oidc_http_timeout_t*
    - oidc_http_outgoing_proxy_t*
    - apr_array_header_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1234
    functionDepth: 5
    functionLinenumber: 1234
    functionLinenumberEnd: 1243
    functionName: oidc_http_post_form
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_request
    - oidc_http_form_encoded_data
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_http_post_form(request_rec *r, const char *url, const
      apr_table_t *params, const char *basic_auth,\n\t\t\t       const char *access_token,
      const char *dpop, int ssl_validate_server, char **response,\n\t\t\t       long
      *response_code, apr_hash_t *response_hdrs, const oidc_http_timeout_t *http_timeout,\n\t\t\t
      \      const oidc_http_outgoing_proxy_t *outgoing_proxy, const apr_array_header_t
      *pass_cookies,\n\t\t\t       const char *ssl_cert, const char *ssl_key, const
      char *ssl_key_pwd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/http.c:1254,1
    - Dst: oidc_http_request
      Src: /src/mod_auth_openidc/src/http.c:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 16
    argNames:
    - r
    - url
    - json
    - basic_auth
    - access_token
    - dpop
    - ssl_validate_server
    - response
    - response_code
    - response_hdrs
    - http_timeout
    - outgoing_proxy
    - pass_cookies
    - ssl_cert
    - ssl_key
    - ssl_key_pwd
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    - char*
    - char*
    - int
    - char**
    - long*
    - apr_hash_t*
    - oidc_http_timeout_t*
    - oidc_http_outgoing_proxy_t*
    - apr_array_header_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1248
    functionDepth: 5
    functionLinenumber: 1248
    functionLinenumberEnd: 1258
    functionName: oidc_http_post_json
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_request
    - oidc_json_encode
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_http_post_json(request_rec *r, const char *url, const
      oidc_json_t *json, const char *basic_auth,\n\t\t\t       const char *access_token,
      const char *dpop, int ssl_validate_server, char **response,\n\t\t\t       long
      *response_code, apr_hash_t *response_hdrs, const oidc_http_timeout_t *http_timeout,\n\t\t\t
      \      const oidc_http_outgoing_proxy_t *outgoing_proxy, const apr_array_header_t
      *pass_cookies,\n\t\t\t       const char *ssl_cert, const char *ssl_key, const
      char *ssl_key_pwd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/http.c:1268,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:1269,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/src/http.c:1272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1273
    functionName: oidc_http_get_path
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_pstrdup
    - apr_pstrndup
    linkageType: ''
    returnType: char
    signature: char *oidc_http_get_path(request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_get_path
      Src: /src/mod_auth_openidc/src/http.c:1280,1
    - Dst: oidc_cfg_dir_cookie_path_get
      Src: /src/mod_auth_openidc/src/http.c:1281,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/http.c:1283,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:1283,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/http.c:1286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1278
    functionDepth: 2
    functionLinenumber: 1278
    functionLinenumberEnd: 1296
    functionName: oidc_http_get_cookie_path
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get_path
    - oidc_warn
    - _oidc_strlen
    - oidc_cfg_dir_cookie_path_get
    - _oidc_strncmp
    linkageType: ''
    returnType: char
    signature: char *oidc_http_get_cookie_path(request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/http.c:1316,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:1319,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:1323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1326
    functionName: oidc_http_set_cookie_append_value
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - oidc_debug
    - apr_table_get
    linkageType: ''
    returnType: char
    signature: char *oidc_http_set_cookie_append_value(request_rec *r)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/http.c:1334,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/http.c:1340,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/http.c:1345,1
    - Dst: apr_rfc822_date
      Src: /src/mod_auth_openidc/src/http.c:1346,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/http.c:1347,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1352,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1355,1
    - Dst: oidc_http_get_cookie_path
      Src: /src/mod_auth_openidc/src/http.c:1355,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1359,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/http.c:1361,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1362,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/http.c:1363,1
    - Dst: oidc_util_url_cur_is_secure
      Src: /src/mod_auth_openidc/src/http.c:1365,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1366,1
    - Dst: oidc_cfg_cookie_http_only_get
      Src: /src/mod_auth_openidc/src/http.c:1368,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1369,1
    - Dst: oidc_http_set_cookie_append_value
      Src: /src/mod_auth_openidc/src/http.c:1371,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1373,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1375,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:1378,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/http.c:1379,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:1382,1
    - Dst: oidc_http_hdr_err_out_add
      Src: /src/mod_auth_openidc/src/http.c:1387,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - r
    - cookieName
    - cookieValue
    - expires
    - ext
    argTypes:
    - request_rec*
    - char*
    - char*
    - apr_time_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1331
    functionDepth: 3
    functionLinenumber: 1331
    functionLinenumberEnd: 1388
    functionName: oidc_http_set_cookie
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 4
    functionsReached:
    - oidc_warn
    - _oidc_strlen
    - ap_get_module_config
    - oidc_error
    - oidc_util_url_cur_is_secure
    - oidc_cfg_cookie_domain_get
    - oidc_http_get_cookie_path
    - oidc_cfg_cookie_http_only_get
    - oidc_http_set_cookie_append_value
    - apr_psprintf
    - apr_rfc822_date
    - apr_pcalloc
    - oidc_http_hdr_err_out_add
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: "void oidc_http_set_cookie(request_rec *r, const char *cookieName,
      const char *cookieValue, apr_time_t expires,\n\t\t\t  const char *ext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/http.c:1399,1
    - Dst: oidc_http_hdr_in_cookie_get
      Src: /src/mod_auth_openidc/src/http.c:1399,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/http.c:1404,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/http.c:1412,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:1412,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:1413,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:1416,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/http.c:1417,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/http.c:1423,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/http.c:1429,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1430,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/http.c:1430,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - r
    - cookieName
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1393
    functionDepth: 3
    functionLinenumber: 1393
    functionLinenumberEnd: 1433
    functionName: oidc_http_get_cookie
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 3
    functionsReached:
    - oidc_util_mask_value
    - apr_pstrdup
    - _oidc_strlen
    - oidc_http_hdr_in_cookie_get
    - oidc_debug
    - apr_psprintf
    - _oidc_strncmp
    - apr_strtok
    linkageType: ''
    returnType: char
    signature: char *oidc_http_get_cookie(request_rec *r, const char *cookieName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - cookieName
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1448
    functionName: oidc_http_get_chunk_count_name
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_http_get_chunk_count_name(request_rec *r, const char *cookieName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_get_cookie
      Src: /src/mod_auth_openidc/src/http.c:1455,1
    - Dst: oidc_http_get_chunk_count_name
      Src: /src/mod_auth_openidc/src/http.c:1455,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/src/http.c:1456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - cookieName
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1453
    functionDepth: 4
    functionLinenumber: 1453
    functionLinenumberEnd: 1458
    functionName: oidc_http_get_chunked_count
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get_chunk_count_name
    - oidc_http_get_cookie
    - _oidc_str_to_int
    linkageType: ''
    returnType: int
    signature: int oidc_http_get_chunked_count(request_rec *r, const char *cookieName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - cookieName
    - i
    argTypes:
    - request_rec*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1465
    functionName: oidc_http_get_chunk_cookie_name
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_http_get_chunk_cookie_name(request_rec *r, const char *cookieName,
      int i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_get_cookie
      Src: /src/mod_auth_openidc/src/http.c:1475,1
    - Dst: oidc_http_get_chunked_count
      Src: /src/mod_auth_openidc/src/http.c:1476,1
    - Dst: oidc_http_get_cookie
      Src: /src/mod_auth_openidc/src/http.c:1478,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/http.c:1480,1
    - Dst: oidc_http_get_cookie
      Src: /src/mod_auth_openidc/src/http.c:1484,1
    - Dst: oidc_http_get_chunk_cookie_name
      Src: /src/mod_auth_openidc/src/http.c:1484,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/http.c:1488,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - r
    - cookieName
    - chunkSize
    argTypes:
    - request_rec*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1470
    functionDepth: 5
    functionLinenumber: 1470
    functionLinenumberEnd: 1494
    functionName: oidc_http_get_chunked_cookie
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 4
    functionsReached:
    - oidc_warn
    - oidc_http_get_chunk_cookie_name
    - oidc_http_get_chunked_count
    - apr_psprintf
    - oidc_http_get_cookie
    linkageType: ''
    returnType: char
    signature: char *oidc_http_get_chunked_cookie(request_rec *r, const char *cookieName,
      int chunkSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_get_chunked_count
      Src: /src/mod_auth_openidc/src/http.c:1501,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/http.c:1504,1
    - Dst: oidc_http_get_chunk_cookie_name
      Src: /src/mod_auth_openidc/src/http.c:1504,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/http.c:1505,1
    - Dst: oidc_http_get_chunk_count_name
      Src: /src/mod_auth_openidc/src/http.c:1505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - cookieName
    - expires
    - ext
    argTypes:
    - request_rec*
    - char*
    - apr_time_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1499
    functionDepth: 5
    functionLinenumber: 1499
    functionLinenumberEnd: 1507
    functionName: oidc_http_clear_chunked_cookie
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - oidc_http_get_chunk_count_name
    - oidc_http_get_chunked_count
    - oidc_http_set_cookie
    - oidc_http_get_chunk_cookie_name
    linkageType: ''
    returnType: void
    signature: "void oidc_http_clear_chunked_cookie(request_rec *r, const char *cookieName,
      apr_time_t expires,\n\t\t\t\t\t   const char *ext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/http.c:1514,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/http.c:1519,1
    - Dst: oidc_http_clear_chunked_cookie
      Src: /src/mod_auth_openidc/src/http.c:1520,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/http.c:1526,1
    - Dst: oidc_http_clear_chunked_cookie
      Src: /src/mod_auth_openidc/src/http.c:1527,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/http.c:1538,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/src/http.c:1548,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/http.c:1550,1
    - Dst: oidc_http_get_chunk_cookie_name
      Src: /src/mod_auth_openidc/src/http.c:1550,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/http.c:1552,1
    - Dst: oidc_http_get_chunk_count_name
      Src: /src/mod_auth_openidc/src/http.c:1552,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/http.c:1553,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/http.c:1554,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 6
    argNames:
    - r
    - cookieName
    - cookieValue
    - expires
    - chunkSize
    - ext
    argTypes:
    - request_rec*
    - char*
    - char*
    - apr_time_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1512
    functionDepth: 6
    functionLinenumber: 1512
    functionLinenumberEnd: 1557
    functionName: oidc_http_set_chunked_cookie
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 4
    functionsReached:
    - oidc_http_clear_chunked_cookie
    - _oidc_strlen
    - apr_pstrndup
    - oidc_error
    - oidc_http_get_chunk_cookie_name
    - oidc_http_set_cookie
    - apr_psprintf
    - oidc_http_get_chunk_count_name
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_http_set_chunked_cookie(request_rec *r, const char
      *cookieName, const char *cookieValue,\n\t\t\t\t\tapr_time_t expires, int chunkSize,
      const char *ext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1572
    functionName: oidc_http_proxy_auth_options
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char **oidc_http_proxy_auth_options(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/http.c:1578,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/http.c:1580,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/http.c:1582,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/http.c:1584,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/http.c:1587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1577
    functionDepth: 1
    functionLinenumber: 1577
    functionLinenumberEnd: 1591
    functionName: oidc_http_proxy_s2auth
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 2
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long oidc_http_proxy_s2auth(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/mod_auth_openidc/src/http.c:1597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1596
    functionDepth: 0
    functionLinenumber: 1596
    functionLinenumberEnd: 1598
    functionName: oidc_http_init
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - curl_global_init
    linkageType: ''
    returnType: void
    signature: void oidc_http_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_cleanup
      Src: /src/mod_auth_openidc/src/http.c:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1603
    functionDepth: 0
    functionLinenumber: 1603
    functionLinenumberEnd: 1605
    functionName: oidc_http_cleanup
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - curl_global_cleanup
    linkageType: ''
    returnType: void
    signature: void oidc_http_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_thread_mutex_lock
      Src: /src/mod_auth_openidc/src/http.c:1619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1621
    functionName: oidc_http_curl_pool_lock
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_thread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void oidc_http_curl_pool_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_thread_mutex_unlock
      Src: /src/mod_auth_openidc/src/http.c:1625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1627
    functionName: oidc_http_curl_pool_unlock
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - apr_thread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void oidc_http_curl_pool_unlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/mod_auth_openidc/src/http.c:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1629
    functionDepth: 0
    functionLinenumber: 1629
    functionLinenumberEnd: 1638
    functionName: oidc_http_curl_pool_cleanup
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_http_curl_pool_cleanup(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_thread_mutex_create
      Src: /src/mod_auth_openidc/src/http.c:1644,1
    - Dst: apr_pool_cleanup_register
      Src: /src/mod_auth_openidc/src/http.c:1649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1640
    functionDepth: 0
    functionLinenumber: 1640
    functionLinenumberEnd: 1650
    functionName: oidc_http_curl_pool_init
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - apr_pool_cleanup_register
    - apr_thread_mutex_create
    linkageType: ''
    returnType: void
    signature: void oidc_http_curl_pool_init(apr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1659
    functionName: oidc_http_curl_pool_child_init
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void oidc_http_curl_pool_child_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_init
      Src: /src/mod_auth_openidc/src/http.c:1664,1
    - Dst: oidc_http_curl_pool_lock
      Src: /src/mod_auth_openidc/src/http.c:1665,1
    - Dst: oidc_http_curl_pool_unlock
      Src: /src/mod_auth_openidc/src/http.c:1668,1
    - Dst: curl_easy_init
      Src: /src/mod_auth_openidc/src/http.c:1669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1670
    functionName: oidc_http_curl_acquire
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_curl_pool_lock
    - curl_easy_init
    - oidc_http_curl_pool_unlock
    linkageType: ''
    returnType: CURL
    signature: CURL *oidc_http_curl_acquire(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_reset
      Src: /src/mod_auth_openidc/src/http.c:1681,1
    - Dst: oidc_http_curl_pool_lock
      Src: /src/mod_auth_openidc/src/http.c:1682,1
    - Dst: oidc_http_curl_pool_unlock
      Src: /src/mod_auth_openidc/src/http.c:1687,1
    - Dst: curl_easy_cleanup
      Src: /src/mod_auth_openidc/src/http.c:1690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - curl
    - reuse
    argTypes:
    - CURL*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1677
    functionDepth: 1
    functionLinenumber: 1677
    functionLinenumberEnd: 1691
    functionName: oidc_http_curl_release
    functionSourceFile: /src/mod_auth_openidc/src/http.c
    functionUses: 1
    functionsReached:
    - oidc_http_curl_pool_unlock
    - curl_easy_cleanup
    - oidc_http_curl_pool_lock
    - curl_easy_reset
    linkageType: ''
    returnType: void
    signature: void oidc_http_curl_release(CURL *curl, apr_byte_t reuse)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: OIDC_JSON_INDENT
    functionSourceFile: /src/mod_auth_openidc/src/json.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_JSON_INDENT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/mod_auth_openidc/src/metrics.c:192,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metrics.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pool
    - n
    argTypes:
    - apr_pool_t*
    - oidc_json_int_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: _json_int2str
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - snprintf
    - apr_pstrdup
    linkageType: ''
    returnType: char
    signature: char *_json_int2str(apr_pool_t *pool, oidc_json_int_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_swarn
      Src: /src/mod_auth_openidc/src/metrics.c:203,1
    - Dst: _json_int2str
      Src: /src/mod_auth_openidc/src/metrics.c:207,1
    - Dst: _json_int2str
      Src: /src/mod_auth_openidc/src/metrics.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - cur
    - add
    argTypes:
    - server_rec*
    - oidc_json_int_t
    - oidc_json_int_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: _is_overflow
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - _json_int2str
    - oidc_swarn
    linkageType: ''
    returnType: int
    signature: int _is_overflow(server_rec *s, oidc_json_int_t cur, oidc_json_int_t
      add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - rec
    - key
    - value
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: oidc_metrics_add_classnames
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: int
    signature: int oidc_metrics_add_classnames(void *rec, const char *key, const char
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/metrics.c:247,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/metrics.c:252,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/metrics.c:259,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/metrics.c:260,1
    - Dst: apr_table_do
      Src: /src/mod_auth_openidc/src/metrics.c:265,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:266,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/metrics.c:269,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/metrics.c:270,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/metrics.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pool
    - name
    - valid_names
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 272
    functionName: oidc_metrics_is_valid_classname
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 3
    functionsReached:
    - apr_table_make
    - apr_table_set
    - apr_psprintf
    - _oidc_strstr
    - apr_table_do
    - apr_table_get
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_metrics_is_valid_classname(apr_pool_t *pool, const
      char *name, char **valid_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/src/metrics.c:278,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/src/metrics.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - dval
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: _oidc_metrics_get_env_int
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - _oidc_str_to_int
    - getenv
    linkageType: ''
    returnType: int
    signature: int _oidc_metrics_get_env_int(const char *name, int dval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_metrics_get_env_int
      Src: /src/mod_auth_openidc/src/metrics.c:291,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/metrics.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 301
    functionName: _oidc_metrics_shm_size
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_serror
    - _oidc_metrics_get_env_int
    linkageType: ''
    returnType: apr_size_t
    signature: apr_size_t _oidc_metrics_shm_size(server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_shm_baseaddr_get
      Src: /src/mod_auth_openidc/src/metrics.c:307,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/src/metrics.c:308,1
    - Dst: _oidc_metrics_shm_size
      Src: /src/mod_auth_openidc/src/metrics.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - pool
    argTypes:
    - server_rec*
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: _oidc_metrics_storage_get
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - _oidc_metrics_shm_size
    - apr_pstrndup
    - apr_shm_baseaddr_get
    linkageType: ''
    returnType: char
    signature: char *_oidc_metrics_storage_get(server_rec *s, apr_pool_t *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_shm_baseaddr_get
      Src: /src/mod_auth_openidc/src/metrics.c:315,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/metrics.c:317,1
    - Dst: _oidc_metrics_shm_size
      Src: /src/mod_auth_openidc/src/metrics.c:318,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/metrics.c:319,1
    - Dst: _oidc_metrics_shm_size
      Src: /src/mod_auth_openidc/src/metrics.c:322,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/metrics.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - server_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 328
    functionName: _oidc_metrics_storage_set
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_serror
    - _oidc_strlen
    - _oidc_memcpy
    - _oidc_metrics_shm_size
    - apr_shm_baseaddr_get
    linkageType: ''
    returnType: void
    signature: void _oidc_metrics_storage_set(server_rec *s, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_parse
      Src: /src/mod_auth_openidc/src/metrics.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pool
    - s_json
    - s_err
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: oidc_metrics_json_load
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_parse
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_metrics_json_load(apr_pool_t *pool, const char *s_json,
      char **s_err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metrics_json_load
      Src: /src/mod_auth_openidc/src/metrics.c:346,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/metrics.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - pool
    - s_json
    argTypes:
    - server_rec*
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: oidc_metrics_json_parse_s
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_json_load
    - oidc_serror
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_metrics_json_parse_s(server_rec *s, apr_pool_t *pool,
      const char *s_json)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:356,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:358,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/src/metrics.c:359,1
    - Dst: oidc_json_integer_set
      Src: /src/mod_auth_openidc/src/metrics.c:360,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/metrics.c:361,1
    - Dst: oidc_metrics_reset_integer_tree
      Src: /src/mod_auth_openidc/src/metrics.c:362,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 365
    functionName: oidc_metrics_reset_integer_tree
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 1
    functionsReached:
    - oidc_metrics_reset_integer_tree
    - oidc_json_object_iter_next
    - oidc_json_is_object
    - oidc_json_is_integer
    - oidc_json_integer_set
    - oidc_json_object_iter_value
    - oidc_json_object_iter
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_reset_integer_tree(oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:372,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/metrics.c:372,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:373,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/metrics.c:373,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:374,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/metrics.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - j_entry
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 375
    functionName: oidc_metrics_reset_timer
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_integer
    - oidc_json_object_set_new
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_reset_timer(oidc_json_t *j_entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:384,1
    - Dst: oidc_metrics_reset_integer_tree
      Src: /src/mod_auth_openidc/src/metrics.c:386,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:388,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:389,1
    - Dst: oidc_metrics_reset_timer
      Src: /src/mod_auth_openidc/src/metrics.c:391,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:391,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - j_server
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 394
    functionName: oidc_metrics_reset_server
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_reset_integer_tree
    - oidc_json_object_iter_next
    - oidc_metrics_reset_timer
    - oidc_json_object_get
    - oidc_json_object_iter_value
    - oidc_json_object_iter
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_reset_server(const oidc_json_t *j_server)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_metrics_storage_get
      Src: /src/mod_auth_openidc/src/metrics.c:405,1
    - Dst: oidc_metrics_json_parse_s
      Src: /src/mod_auth_openidc/src/metrics.c:408,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:410,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:412,1
    - Dst: oidc_metrics_reset_server
      Src: /src/mod_auth_openidc/src/metrics.c:414,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:414,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:415,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/metrics.c:419,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metrics.c:422,1
    - Dst: _oidc_metrics_storage_set
      Src: /src/mod_auth_openidc/src/metrics.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - s
    - pool
    argTypes:
    - server_rec*
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 399
    functionDepth: 4
    functionLinenumber: 399
    functionLinenumberEnd: 426
    functionName: oidc_metrics_storage_reset
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_iter_next
    - oidc_json_decref
    - oidc_json_object_iter_value
    - oidc_json_encode
    - oidc_json_object
    - _oidc_metrics_storage_get
    - oidc_metrics_reset_server
    - oidc_metrics_json_parse_s
    - oidc_json_object_iter
    - _oidc_metrics_storage_set
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_storage_reset(server_rec *s, apr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:432,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:434,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/metrics.c:434,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:435,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/metrics.c:435,1
    - Dst: apr_time_as_msec
      Src: /src/mod_auth_openidc/src/metrics.c:435,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:436,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/metrics.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - timing
    argTypes:
    - oidc_metrics_timing_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 438
    functionName: oidc_metrics_timings_new
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_integer
    - oidc_json_object_set_new
    - apr_time_as_msec
    - oidc_json_object
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_metrics_timings_new(const oidc_metrics_timing_t *timing)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:449,1
    - Dst: oidc_json_integer_set
      Src: /src/mod_auth_openidc/src/metrics.c:450,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/metrics.c:450,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:453,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/metrics.c:454,1
    - Dst: apr_time_as_msec
      Src: /src/mod_auth_openidc/src/metrics.c:456,1
    - Dst: _is_overflow
      Src: /src/mod_auth_openidc/src/metrics.c:457,1
    - Dst: oidc_json_integer_set
      Src: /src/mod_auth_openidc/src/metrics.c:460,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:462,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/metrics.c:463,1
    - Dst: oidc_json_integer_set
      Src: /src/mod_auth_openidc/src/metrics.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - s
    - entry
    - timing
    argTypes:
    - server_rec*
    - oidc_json_t*
    - oidc_metrics_timing_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 465
    functionName: oidc_metrics_timings_update
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get
    - _is_overflow
    - oidc_json_integer_set
    - apr_time_as_msec
    - oidc_json_integer_value
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_timings_update(server_rec *s, const oidc_json_t *entry,
      const oidc_metrics_timing_t *timing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/metrics.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 474
    functionName: _metrics_value2key
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: char *_metrics_value2key(const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/metrics.c:483,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/metrics.c:483,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/metrics.c:484,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/metrics.c:485,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/metrics.c:486,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:489,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:490,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/metrics.c:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - htable
    argTypes:
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 494
    functionName: oidc_metrics_counter_new
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_hash_first
    - oidc_json_object_set_new
    - apr_hash_this
    - oidc_json_object
    - apr_hash_next
    - oidc_json_integer
    - _oidc_strcmp
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_metrics_counter_new(apr_hash_t *htable)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/metrics.c:504,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/metrics.c:504,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/metrics.c:505,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/metrics.c:506,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:509,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:511,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/metrics.c:511,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/metrics.c:515,1
    - Dst: _is_overflow
      Src: /src/mod_auth_openidc/src/metrics.c:516,1
    - Dst: oidc_json_integer_set
      Src: /src/mod_auth_openidc/src/metrics.c:518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - s
    - j_counter
    - htable
    argTypes:
    - server_rec*
    - oidc_json_t*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 520
    functionName: oidc_metrics_counter_update
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_hash_first
    - oidc_json_object_set_new
    - apr_hash_this
    - oidc_json_object_get
    - _is_overflow
    - oidc_json_integer_set
    - apr_hash_next
    - oidc_json_integer
    - oidc_json_integer_value
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_counter_update(server_rec *s, oidc_json_t *j_counter,
      apr_hash_t *htable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:526,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:528,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:529,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:529,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:530,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:530,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - json
    - name
    argTypes:
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 534
    functionName: oidc_metrics_server_get
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get
    - oidc_json_object_set_new
    - oidc_json_object
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_metrics_server_get(oidc_json_t *json, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:540,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - type
    - name
    argTypes:
    - apr_pool_t*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 541
    functionName: _oidc_metrics_type_name2key
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *_oidc_metrics_type_name2key(apr_pool_t *pool, unsigned int type,
      const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/mod_auth_openidc/src/metrics.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: _oidc_metrics_key2type
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _oidc_metrics_key2type(const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:557,1
    - Dst: oidc_metrics_counter_update
      Src: /src/mod_auth_openidc/src/metrics.c:559,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:561,1
    - Dst: oidc_metrics_counter_new
      Src: /src/mod_auth_openidc/src/metrics.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - s
    - parent
    - key
    - counter_hash
    argTypes:
    - server_rec*
    - oidc_json_t*
    - char*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 562
    functionName: oidc_metrics_counter_set_or_update
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get
    - oidc_metrics_counter_update
    - oidc_json_object_set_new
    - oidc_metrics_counter_new
    linkageType: ''
    returnType: void
    signature: "void oidc_metrics_counter_set_or_update(server_rec *s, oidc_json_t
      *parent, const char *key,\n\t\t\t\t\t       apr_hash_t *counter_hash)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metrics.c:570,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/metrics.c:571,1
    - Dst: oidc_metrics_counter_set_or_update
      Src: /src/mod_auth_openidc/src/metrics.c:575,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:580,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:582,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:583,1
    - Dst: oidc_metrics_counter_new
      Src: /src/mod_auth_openidc/src/metrics.c:583,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:584,1
    - Dst: oidc_metrics_counter_set_or_update
      Src: /src/mod_auth_openidc/src/metrics.c:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - s
    - pool
    - j_counters
    - key
    - counter_hash
    argTypes:
    - server_rec*
    - apr_pool_t*
    - oidc_json_t*
    - char*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 589
    functionName: oidc_metrics_store_counter_entry
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_json_object_set_new
    - oidc_json_object_get
    - oidc_metrics_counter_new
    - oidc_json_object
    - oidc_metrics_counter_set_or_update
    - _oidc_strstr
    linkageType: ''
    returnType: void
    signature: "void oidc_metrics_store_counter_entry(server_rec *s, apr_pool_t *pool,
      oidc_json_t *j_counters, const char *key,\n\t\t\t\t\t     apr_hash_t *counter_hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/metrics.c:601,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/metrics.c:601,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/metrics.c:602,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:603,1
    - Dst: oidc_metrics_server_get
      Src: /src/mod_auth_openidc/src/metrics.c:603,1
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/metrics.c:604,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/metrics.c:604,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/metrics.c:605,1
    - Dst: oidc_metrics_store_counter_entry
      Src: /src/mod_auth_openidc/src/metrics.c:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - s
    - pool
    - json
    argTypes:
    - server_rec*
    - apr_pool_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 594
    functionDepth: 5
    functionLinenumber: 594
    functionLinenumberEnd: 609
    functionName: oidc_metrics_store_counters
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_hash_this
    - oidc_json_object_get
    - oidc_metrics_server_get
    - apr_hash_next
    - oidc_metrics_store_counter_entry
    - apr_hash_first
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_store_counters(server_rec *s, apr_pool_t *pool, oidc_json_t
      *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/metrics.c:622,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/metrics.c:622,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/metrics.c:623,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:624,1
    - Dst: oidc_metrics_server_get
      Src: /src/mod_auth_openidc/src/metrics.c:624,1
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/metrics.c:625,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/metrics.c:625,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/metrics.c:626,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:627,1
    - Dst: oidc_metrics_timings_update
      Src: /src/mod_auth_openidc/src/metrics.c:629,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:631,1
    - Dst: oidc_metrics_timings_new
      Src: /src/mod_auth_openidc/src/metrics.c:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - s
    - json
    argTypes:
    - server_rec*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 634
    functionName: oidc_metrics_store_timings
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_timings_new
    - oidc_json_object_set_new
    - apr_hash_this
    - oidc_json_object_get
    - oidc_metrics_server_get
    - apr_hash_next
    - oidc_metrics_timings_update
    - apr_hash_first
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_store_timings(server_rec *s, oidc_json_t *json)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/metrics.c:644,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/metrics.c:644,1
    - Dst: apr_pool_create
      Src: /src/mod_auth_openidc/src/metrics.c:650,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/metrics.c:651,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/metrics.c:656,1
    - Dst: _oidc_metrics_storage_get
      Src: /src/mod_auth_openidc/src/metrics.c:659,1
    - Dst: oidc_metrics_json_parse_s
      Src: /src/mod_auth_openidc/src/metrics.c:662,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:664,1
    - Dst: oidc_metrics_store_counters
      Src: /src/mod_auth_openidc/src/metrics.c:666,1
    - Dst: oidc_metrics_store_timings
      Src: /src/mod_auth_openidc/src/metrics.c:667,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/metrics.c:670,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metrics.c:673,1
    - Dst: _oidc_metrics_storage_set
      Src: /src/mod_auth_openidc/src/metrics.c:676,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/metrics.c:679,1
    - Dst: apr_pool_destroy
      Src: /src/mod_auth_openidc/src/metrics.c:681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 639
    functionDepth: 6
    functionLinenumber: 639
    functionLinenumberEnd: 682
    functionName: oidc_metrics_store
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_serror
    - oidc_cache_mutex_unlock
    - apr_pool_create
    - oidc_json_decref
    - apr_hash_count
    - oidc_metrics_store_counters
    - oidc_json_object
    - oidc_metrics_store_timings
    - oidc_json_encode
    - _oidc_metrics_storage_get
    - oidc_cache_mutex_lock
    - oidc_metrics_json_parse_s
    - apr_pool_destroy
    - _oidc_metrics_storage_set
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_store(server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/src/metrics.c:690,1
    - Dst: _oidc_metrics_get_env_int
      Src: /src/mod_auth_openidc/src/metrics.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 692
    functionName: _oidc_metrics_interval
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_time_from_msec
    - _oidc_metrics_get_env_int
    linkageType: ''
    returnType: apr_interval_time_t
    signature: apr_interval_time_t _oidc_metrics_interval(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/src/metrics.c:703,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/src/metrics.c:703,1
    - Dst: oidc_util_rand_int
      Src: /src/mod_auth_openidc/src/metrics.c:703,1
    - Dst: _oidc_metrics_interval
      Src: /src/mod_auth_openidc/src/metrics.c:708,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/src/metrics.c:711,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/src/metrics.c:712,1
    - Dst: apr_atomic_read32
      Src: /src/mod_auth_openidc/src/metrics.c:718,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/src/metrics.c:723,1
    - Dst: apr_atomic_read32
      Src: /src/mod_auth_openidc/src/metrics.c:724,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/metrics.c:731,1
    - Dst: oidc_metrics_store
      Src: /src/mod_auth_openidc/src/metrics.c:734,1
    - Dst: oidc_util_apr_hash_clear
      Src: /src/mod_auth_openidc/src/metrics.c:737,1
    - Dst: oidc_util_apr_hash_clear
      Src: /src/mod_auth_openidc/src/metrics.c:738,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/metrics.c:741,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - thread
    - data
    argTypes:
    - apr_thread_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 699
    functionDepth: 7
    functionLinenumber: 699
    functionLinenumberEnd: 747
    functionName: APR_THREAD_FUNC::oidc_metrics_thread_run
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_sleep
    - oidc_cache_mutex_unlock
    - apr_atomic_read32
    - oidc_util_rand_int
    - apr_time_from_msec
    - _oidc_metrics_interval
    - oidc_metrics_store
    - oidc_util_apr_hash_clear
    - oidc_cache_mutex_lock
    linkageType: ''
    returnType: void
    signature: void *APR_THREAD_FUNC oidc_metrics_thread_run(apr_thread_t *thread,
      void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: apr_shm_create
      Src: /src/mod_auth_openidc/src/metrics.c:763,1
    - Dst: _oidc_metrics_shm_size
      Src: /src/mod_auth_openidc/src/metrics.c:763,1
    - Dst: apr_shm_baseaddr_get
      Src: /src/mod_auth_openidc/src/metrics.c:769,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/metrics.c:770,1
    - Dst: _oidc_metrics_shm_size
      Src: /src/mod_auth_openidc/src/metrics.c:770,1
    - Dst: apr_thread_create
      Src: /src/mod_auth_openidc/src/metrics.c:776,1
    - Dst: getpid
      Src: /src/mod_auth_openidc/src/metrics.c:778,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/metrics.c:781,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/metrics.c:782,1
    - Dst: oidc_cache_mutex_create
      Src: /src/mod_auth_openidc/src/metrics.c:785,1
    - Dst: oidc_cache_mutex_post_config
      Src: /src/mod_auth_openidc/src/metrics.c:788,1
    - Dst: oidc_cache_mutex_create
      Src: /src/mod_auth_openidc/src/metrics.c:792,1
    - Dst: oidc_cache_mutex_post_config
      Src: /src/mod_auth_openidc/src/metrics.c:795,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 799
    functionName: oidc_metrics_post_config
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 1
    functionsReached:
    - getpid
    - _oidc_memset
    - apr_hash_make
    - oidc_cache_mutex_create
    - _oidc_metrics_shm_size
    - apr_shm_create
    - apr_thread_create
    - oidc_cache_mutex_post_config
    - apr_shm_baseaddr_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_metrics_post_config(apr_pool_t *pool, server_rec *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_mutex_child_init
      Src: /src/mod_auth_openidc/src/metrics.c:811,1
    - Dst: oidc_cache_mutex_child_init
      Src: /src/mod_auth_openidc/src/metrics.c:814,1
    - Dst: getpid
      Src: /src/mod_auth_openidc/src/metrics.c:818,1
    - Dst: apr_atomic_set32
      Src: /src/mod_auth_openidc/src/metrics.c:819,1
    - Dst: apr_thread_join
      Src: /src/mod_auth_openidc/src/metrics.c:820,1
    - Dst: apr_atomic_set32
      Src: /src/mod_auth_openidc/src/metrics.c:821,1
    - Dst: apr_thread_create
      Src: /src/mod_auth_openidc/src/metrics.c:826,1
    - Dst: getpid
      Src: /src/mod_auth_openidc/src/metrics.c:828,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 834
    functionName: oidc_metrics_child_init
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 1
    functionsReached:
    - getpid
    - oidc_cache_mutex_child_init
    - apr_thread_create
    - apr_atomic_set32
    - apr_thread_join
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_metrics_child_init(apr_pool_t *p, server_rec *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: apr_atomic_read32
      Src: /src/mod_auth_openidc/src/metrics.c:843,1
    - Dst: apr_atomic_set32
      Src: /src/mod_auth_openidc/src/metrics.c:848,1
    - Dst: apr_thread_join
      Src: /src/mod_auth_openidc/src/metrics.c:849,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/metrics.c:851,1
    - Dst: apr_atomic_set32
      Src: /src/mod_auth_openidc/src/metrics.c:852,1
    - Dst: apr_shm_destroy
      Src: /src/mod_auth_openidc/src/metrics.c:858,1
    - Dst: oidc_cache_mutex_destroy
      Src: /src/mod_auth_openidc/src/metrics.c:862,1
    - Dst: oidc_cache_mutex_destroy
      Src: /src/mod_auth_openidc/src/metrics.c:867,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 872
    functionName: oidc_metrics_cleanup
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 1
    functionsReached:
    - oidc_serror
    - apr_atomic_read32
    - oidc_cache_mutex_destroy
    - apr_atomic_set32
    - apr_shm_destroy
    - apr_thread_join
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_metrics_cleanup(server_rec *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/metrics.c:890,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/metrics.c:893,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/metrics.c:894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - r
    - table
    argTypes:
    - request_rec*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 898
    functionName: _oidc_metrics_server_hash
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_hash_make
    - apr_hash_set
    - apr_hash_get
    linkageType: ''
    returnType: apr_hash_t
    signature: apr_hash_t *_oidc_metrics_server_hash(request_rec *r, apr_hash_t *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_metrics_type_name2key
      Src: /src/mod_auth_openidc/src/metrics.c:907,1
    - Dst: _oidc_metrics_server_hash
      Src: /src/mod_auth_openidc/src/metrics.c:908,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/metrics.c:910,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/metrics.c:913,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/metrics.c:914,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metrics.c:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - r
    - type
    argTypes:
    - request_rec*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 917
    functionName: _oidc_metrics_timing_get
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - apr_hash_set
    - _oidc_metrics_type_name2key
    - apr_pcalloc
    - _oidc_metrics_server_hash
    - apr_hash_get
    linkageType: ''
    returnType: oidc_metrics_timing_t
    signature: oidc_metrics_timing_t *_oidc_metrics_timing_get(request_rec *r, unsigned
      int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/metrics.c:925,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/metrics.c:927,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/metrics.c:928,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metrics.c:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - r
    - table
    - value
    argTypes:
    - request_rec*
    - apr_hash_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 931
    functionName: _oidc_metrics_counter_value_get
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - apr_hash_set
    - apr_pcalloc
    - apr_hash_get
    linkageType: ''
    returnType: oidc_metrics_counter_t
    signature: "oidc_metrics_counter_t *_oidc_metrics_counter_value_get(request_rec
      *r, apr_hash_t *table,\n\t\t\t\t\t\t\t\t      const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_metrics_type_name2key
      Src: /src/mod_auth_openidc/src/metrics.c:939,1
    - Dst: _oidc_metrics_server_hash
      Src: /src/mod_auth_openidc/src/metrics.c:940,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/metrics.c:943,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/metrics.c:946,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/metrics.c:947,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metrics.c:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - r
    - type
    - name
    argTypes:
    - request_rec*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 951
    functionName: _oidc_metrics_counter_get
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - apr_hash_set
    - _oidc_metrics_type_name2key
    - apr_hash_make
    - _oidc_metrics_server_hash
    - apr_hash_get
    linkageType: ''
    returnType: apr_hash_t
    signature: apr_hash_t *_oidc_metrics_counter_get(request_rec *r, unsigned int
      type, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/metrics.c:960,1
    - Dst: _oidc_metrics_counter_value_get
      Src: /src/mod_auth_openidc/src/metrics.c:964,1
    - Dst: _oidc_metrics_counter_get
      Src: /src/mod_auth_openidc/src/metrics.c:964,1
    - Dst: _metrics_value2key
      Src: /src/mod_auth_openidc/src/metrics.c:964,1
    - Dst: _is_overflow
      Src: /src/mod_auth_openidc/src/metrics.c:972,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/metrics.c:978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - r
    - type
    - name
    - value
    argTypes:
    - request_rec*
    - oidc_metrics_counter_type_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 979
    functionName: oidc_metrics_counter_inc
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_cache_mutex_unlock
    - _oidc_metrics_counter_get
    - _is_overflow
    - _oidc_metrics_counter_value_get
    - _metrics_value2key
    - oidc_cache_mutex_lock
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_counter_inc(request_rec *r, oidc_metrics_counter_type_t
      type, const char *name, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - timing
    argTypes:
    - oidc_metrics_timing_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 989
    functionName: _oidc_metrics_timing_clear
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _oidc_metrics_timing_clear(oidc_metrics_timing_t *timing)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - timing
    - elapsed
    argTypes:
    - oidc_metrics_timing_t*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1003
    functionName: _oidc_metrics_timing_buckets_inc
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _oidc_metrics_timing_buckets_inc(oidc_metrics_timing_t *timing,
      apr_time_t elapsed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metrics.c:1012,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/metrics.c:1019,1
    - Dst: _oidc_metrics_timing_get
      Src: /src/mod_auth_openidc/src/metrics.c:1022,1
    - Dst: _is_overflow
      Src: /src/mod_auth_openidc/src/metrics.c:1025,1
    - Dst: _oidc_metrics_timing_clear
      Src: /src/mod_auth_openidc/src/metrics.c:1026,1
    - Dst: _oidc_metrics_timing_buckets_inc
      Src: /src/mod_auth_openidc/src/metrics.c:1028,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/metrics.c:1033,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - r
    - type
    - elapsed
    argTypes:
    - request_rec*
    - oidc_metrics_timing_type_t
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1034
    functionName: oidc_metrics_timing_add
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 2
    functionsReached:
    - oidc_warn
    - _oidc_metrics_timing_buckets_inc
    - oidc_cache_mutex_unlock
    - _oidc_metrics_timing_clear
    - _is_overflow
    - oidc_cache_mutex_lock
    - _oidc_metrics_timing_get
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_timing_add(request_rec *r, oidc_metrics_timing_type_t
      type, apr_time_t elapsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - type
    argTypes:
    - apr_pool_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1046
    functionName: _oidc_metrics_counter_type2s
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *_oidc_metrics_counter_type2s(apr_pool_t *pool, unsigned int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - type
    argTypes:
    - apr_pool_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1054
    functionName: _oidc_metrics_timing_type2s
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *_oidc_metrics_timing_type2s(apr_pool_t *pool, unsigned int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metrics_json_load
      Src: /src/mod_auth_openidc/src/metrics.c:1061,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metrics.c:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - s_json
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1065
    functionName: oidc_metrics_json_parse_r
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_metrics_json_load
    - oidc_error
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_metrics_json_parse_r(request_rec *r, const char *s_json)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metrics_json_parse_r
      Src: /src/mod_auth_openidc/src/metrics.c:1090,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:1094,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:1096,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/metrics.c:1098,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:1099,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:1101,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1102,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:1104,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:1105,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1106,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:1108,1
    - Dst: _oidc_metrics_key2type
      Src: /src/mod_auth_openidc/src/metrics.c:1110,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/metrics.c:1110,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:1111,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:1112,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/src/metrics.c:1113,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/metrics.c:1114,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1116,1
    - Dst: oidc_json_deep_copy
      Src: /src/mod_auth_openidc/src/metrics.c:1116,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1117,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metrics.c:1118,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1119,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metrics.c:1120,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1121,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metrics.c:1122,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1123,1
    - Dst: _oidc_metrics_counter_type2s
      Src: /src/mod_auth_openidc/src/metrics.c:1123,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:1124,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:1127,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:1128,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1129,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:1131,1
    - Dst: _oidc_metrics_key2type
      Src: /src/mod_auth_openidc/src/metrics.c:1133,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/metrics.c:1133,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:1134,1
    - Dst: oidc_json_deep_copy
      Src: /src/mod_auth_openidc/src/metrics.c:1136,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1137,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metrics.c:1138,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1139,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metrics.c:1140,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1141,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metrics.c:1142,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metrics.c:1144,1
    - Dst: _oidc_metrics_timing_type2s
      Src: /src/mod_auth_openidc/src/metrics.c:1144,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:1146,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:1148,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/metrics.c:1151,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metrics.c:1153,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metrics.c:1154,1
    - Dst: oidc_util_http_send
      Src: /src/mod_auth_openidc/src/metrics.c:1159,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/metrics.c:1159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 2
    argNames:
    - r
    - s_json
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1070
    functionDepth: 3
    functionLinenumber: 1070
    functionLinenumberEnd: 1160
    functionName: oidc_metrics_handle_json
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_iter_next
    - oidc_json_object_set_new
    - oidc_json_object_iter_key
    - oidc_json_deep_copy
    - oidc_json_object_iter
    - oidc_json_encode
    - _oidc_metrics_timing_type2s
    - _oidc_strlen
    - oidc_json_decref
    - oidc_json_is_integer
    - oidc_json_object
    - oidc_json_string
    - _oidc_metrics_key2type
    - oidc_metrics_json_parse_r
    - oidc_json_object_get
    - oidc_json_object_iter_value
    - _oidc_metrics_counter_type2s
    - oidc_util_http_send
    - oidc_json_object_set
    linkageType: ''
    returnType: int
    signature: int oidc_metrics_handle_json(request_rec *r, const char *s_json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_http_send
      Src: /src/mod_auth_openidc/src/metrics.c:1168,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/metrics.c:1168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - s_json
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1169
    functionName: oidc_metrics_handle_internal
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_util_http_send
    linkageType: ''
    returnType: int
    signature: int oidc_metrics_handle_internal(request_rec *r, const char *s_json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:1181,1
    - Dst: _oidc_metrics_key2type
      Src: /src/mod_auth_openidc/src/metrics.c:1183,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/metrics.c:1183,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/metrics.c:1184,1
    - Dst: _oidc_metrics_counter_type2s
      Src: /src/mod_auth_openidc/src/metrics.c:1184,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:1185,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:1186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - r
    - j_counters
    - s_metric_param
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1189
    functionName: oidc_metrics_status_find_counter
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_iter_next
    - _oidc_metrics_key2type
    - oidc_json_object_iter_key
    - oidc_json_object_iter_value
    - _oidc_metrics_counter_type2s
    - oidc_json_object_iter
    - _oidc_strcmp
    linkageType: ''
    returnType: oidc_json_t
    signature: "oidc_json_t *oidc_metrics_status_find_counter(request_rec *r, oidc_json_t
      *j_counters,\n\t\t\t\t\t\t     const char *s_metric_param)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/src/metrics.c:1200,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:1205,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:1206,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:1209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - j_counter
    - s_name_param
    - s_value_param
    argTypes:
    - oidc_json_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1210
    functionName: oidc_metrics_status_select_value
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get
    - oidc_json_is_integer
    linkageType: ''
    returnType: oidc_json_t
    signature: "oidc_json_t *oidc_metrics_status_select_value(oidc_json_t *j_counter,
      const char *s_name_param,\n\t\t\t\t\t\t     const char *s_value_param)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/metrics.c:1227,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/metrics.c:1228,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/metrics.c:1229,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/metrics.c:1230,1
    - Dst: oidc_metrics_json_parse_r
      Src: /src/mod_auth_openidc/src/metrics.c:1238,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:1242,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:1246,1
    - Dst: oidc_metrics_status_find_counter
      Src: /src/mod_auth_openidc/src/metrics.c:1250,1
    - Dst: oidc_metrics_status_select_value
      Src: /src/mod_auth_openidc/src/metrics.c:1254,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1256,1
    - Dst: _json_int2str
      Src: /src/mod_auth_openidc/src/metrics.c:1256,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/metrics.c:1256,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metrics.c:1261,1
    - Dst: oidc_util_http_send
      Src: /src/mod_auth_openidc/src/metrics.c:1263,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/metrics.c:1263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - r
    - s_json
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1215
    functionDepth: 3
    functionLinenumber: 1215
    functionLinenumberEnd: 1264
    functionName: oidc_metrics_handle_status
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - _json_int2str
    - _oidc_strlen
    - oidc_json_decref
    - oidc_metrics_status_find_counter
    - oidc_util_url_parameter_get
    - oidc_json_object_get
    - oidc_util_http_send
    - apr_psprintf
    - oidc_metrics_status_select_value
    - oidc_json_integer_value
    - oidc_metrics_json_parse_r
    linkageType: ''
    returnType: int
    signature: int oidc_metrics_handle_status(request_rec *r, const char *s_json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/metrics.c:1272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - json_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1278
    functionName: oidc_metrics_prometheus_bucket_label
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: char *oidc_metrics_prometheus_bucket_label(const char *json_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1286,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/metrics.c:1287,1
    - Dst: apr_isalnum
      Src: /src/mod_auth_openidc/src/metrics.c:1288,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - name
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1291
    functionName: oidc_metric_prometheus_normalize_name
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_psprintf
    - apr_isalnum
    linkageType: ''
    returnType: char
    signature: char *oidc_metric_prometheus_normalize_name(apr_pool_t *pool, const
      char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:1311,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/metrics.c:1313,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1314,1
    - Dst: _json_int2str
      Src: /src/mod_auth_openidc/src/metrics.c:1316,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/metrics.c:1316,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:1316,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:1317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - pool
    - s_text
    - s_start
    - s_key
    - j_value
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1320
    functionName: oidc_metrics_prometheus_counter_named
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_iter_next
    - _json_int2str
    - oidc_json_object_iter_key
    - oidc_json_object_iter_value
    - apr_psprintf
    - oidc_json_integer_value
    - oidc_json_object_iter
    linkageType: ''
    returnType: char
    signature: "char *oidc_metrics_prometheus_counter_named(apr_pool_t *pool, char
      *s_text, const char *s_start,\n\t\t\t\t\t\t   const char *s_key, oidc_json_t
      *j_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:1328,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/metrics.c:1330,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:1331,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/src/metrics.c:1332,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1334,1
    - Dst: _json_int2str
      Src: /src/mod_auth_openidc/src/metrics.c:1335,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/metrics.c:1335,1
    - Dst: oidc_metrics_prometheus_counter_named
      Src: /src/mod_auth_openidc/src/metrics.c:1337,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:1338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pool
    - s_text
    - s_start
    - j_counter
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1326
    functionDepth: 2
    functionLinenumber: 1326
    functionLinenumberEnd: 1341
    functionName: oidc_metrics_prometheus_counter_keyed
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_iter_next
    - _json_int2str
    - oidc_metrics_prometheus_counter_named
    - oidc_json_is_integer
    - oidc_json_object_iter_key
    - oidc_json_object_iter_value
    - apr_psprintf
    - oidc_json_integer_value
    - oidc_json_object_iter
    linkageType: ''
    returnType: char
    signature: "char *oidc_metrics_prometheus_counter_keyed(apr_pool_t *pool, char
      *s_text, const char *s_start,\n\t\t\t\t\t\t   oidc_json_t *j_counter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_metrics_key2type
      Src: /src/mod_auth_openidc/src/metrics.c:1349,1
    - Dst: oidc_metric_prometheus_normalize_name
      Src: /src/mod_auth_openidc/src/metrics.c:1351,1
    - Dst: _oidc_metrics_counter_type2s
      Src: /src/mod_auth_openidc/src/metrics.c:1351,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1353,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1354,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:1356,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/metrics.c:1358,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:1359,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1361,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/src/metrics.c:1362,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1363,1
    - Dst: _json_int2str
      Src: /src/mod_auth_openidc/src/metrics.c:1364,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/metrics.c:1364,1
    - Dst: oidc_metrics_prometheus_counter_keyed
      Src: /src/mod_auth_openidc/src/metrics.c:1366,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:1367,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/metrics.c:1369,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metrics.c:1370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - key
    - value
    argTypes:
    - oidc_metric_prometheus_callback_ctx_t*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1346
    functionDepth: 3
    functionLinenumber: 1346
    functionLinenumberEnd: 1372
    functionName: oidc_metrics_prometheus_counters
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_iter_next
    - _json_int2str
    - oidc_json_decref
    - _oidc_metrics_key2type
    - oidc_json_is_integer
    - oidc_json_object_iter_key
    - oidc_json_object_iter_value
    - oidc_metrics_prometheus_counter_keyed
    - apr_pstrcat
    - _oidc_metrics_counter_type2s
    - apr_psprintf
    - oidc_metric_prometheus_normalize_name
    - oidc_json_integer_value
    - oidc_json_object_iter
    linkageType: ''
    returnType: int
    signature: "int oidc_metrics_prometheus_counters(oidc_metric_prometheus_callback_ctx_t
      *ctx, const char *key,\n\t\t\t\t\t    oidc_json_t *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_metrics_key2type
      Src: /src/mod_auth_openidc/src/metrics.c:1386,1
    - Dst: oidc_metric_prometheus_normalize_name
      Src: /src/mod_auth_openidc/src/metrics.c:1388,1
    - Dst: _oidc_metrics_timing_type2s
      Src: /src/mod_auth_openidc/src/metrics.c:1388,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1390,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1391,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:1393,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/metrics.c:1395,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:1396,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:1397,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/metrics.c:1399,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:1400,1
    - Dst: oidc_metrics_prometheus_bucket_label
      Src: /src/mod_auth_openidc/src/metrics.c:1401,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1403,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1406,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.c:1408,1
    - Dst: _json_int2str
      Src: /src/mod_auth_openidc/src/metrics.c:1409,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/metrics.c:1409,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:1410,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:1412,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/metrics.c:1414,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metrics.c:1415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - key
    - value
    argTypes:
    - oidc_metric_prometheus_callback_ctx_t*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1417
    functionName: oidc_metrics_prometheus_timings
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_iter_next
    - _json_int2str
    - oidc_json_decref
    - _oidc_metrics_key2type
    - oidc_json_object_iter_key
    - oidc_json_object_iter_value
    - apr_pstrcat
    - apr_psprintf
    - oidc_metric_prometheus_normalize_name
    - _oidc_metrics_timing_type2s
    - oidc_json_integer_value
    - oidc_json_object_iter
    - oidc_metrics_prometheus_bucket_label
    linkageType: ''
    returnType: int
    signature: "int oidc_metrics_prometheus_timings(oidc_metric_prometheus_callback_ctx_t
      *ctx, const char *key,\n\t\t\t\t\t   oidc_json_t *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:1426,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/metrics.c:1428,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:1429,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/metrics.c:1430,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/metrics.c:1432,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metrics.c:1434,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/metrics.c:1435,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/metrics.c:1436,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:1438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - hash
    - server
    - list
    argTypes:
    - apr_hash_t*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1440
    functionName: oidc_metrics_prometheus_convert
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_iter_next
    - apr_hash_set
    - oidc_json_object_iter_key
    - oidc_json_object_iter_value
    - oidc_json_object
    - oidc_json_object_set
    - oidc_json_object_iter
    - apr_hash_get
    linkageType: ''
    returnType: void
    signature: void oidc_metrics_prometheus_convert(apr_hash_t *hash, const char *server,
      oidc_json_t *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/metrics.c:1449,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/metrics.c:1450,1
    - Dst: oidc_metrics_json_parse_r
      Src: /src/mod_auth_openidc/src/metrics.c:1459,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/metrics.c:1463,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/metrics.c:1465,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/metrics.c:1466,1
    - Dst: oidc_metrics_prometheus_convert
      Src: /src/mod_auth_openidc/src/metrics.c:1467,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:1468,1
    - Dst: oidc_metrics_prometheus_convert
      Src: /src/mod_auth_openidc/src/metrics.c:1469,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metrics.c:1470,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/metrics.c:1471,1
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/metrics.c:1474,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/metrics.c:1474,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/metrics.c:1475,1
    - Dst: oidc_metrics_prometheus_counters
      Src: /src/mod_auth_openidc/src/metrics.c:1476,1
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/metrics.c:1479,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/metrics.c:1479,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/metrics.c:1480,1
    - Dst: oidc_metrics_prometheus_timings
      Src: /src/mod_auth_openidc/src/metrics.c:1481,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metrics.c:1484,1
    - Dst: oidc_util_http_send
      Src: /src/mod_auth_openidc/src/metrics.c:1486,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/metrics.c:1486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - r
    - s_json
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1445
    functionDepth: 4
    functionLinenumber: 1445
    functionLinenumberEnd: 1488
    functionName: oidc_metrics_handle_prometheus
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_iter_next
    - _oidc_strlen
    - oidc_json_decref
    - apr_hash_make
    - oidc_json_object_get
    - apr_hash_this
    - oidc_json_object_iter_key
    - oidc_json_object_iter_value
    - oidc_metrics_prometheus_timings
    - oidc_metrics_json_parse_r
    - apr_hash_next
    - oidc_util_http_send
    - oidc_metrics_prometheus_counters
    - oidc_metrics_prometheus_convert
    - oidc_json_object_iter
    - apr_hash_first
    linkageType: ''
    returnType: int
    signature: int oidc_metrics_handle_prometheus(request_rec *r, const char *s_json)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/metrics.c:1523,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/metrics.c:1528,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/metrics.c:1530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - r
    - dvalue
    argTypes:
    - request_rec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1534
    functionName: oidc_metric_reset
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_util_url_parameter_get
    - _oidc_strnatcasecmp
    linkageType: ''
    returnType: int
    signature: int oidc_metric_reset(request_rec *r, int dvalue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/metrics.c:1546,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/metrics.c:1552,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metrics.c:1559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1562
    functionName: oidc_metrics_find_handler
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 0
    functionsReached:
    - oidc_util_url_parameter_get
    - oidc_warn
    - _oidc_strcmp
    linkageType: ''
    returnType: oidc_metrics_content_handler_t
    signature: oidc_metrics_content_handler_t *oidc_metrics_find_handler(request_rec
      *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metrics_find_handler
      Src: /src/mod_auth_openidc/src/metrics.c:1572,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/metrics.c:1577,1
    - Dst: _oidc_metrics_storage_get
      Src: /src/mod_auth_openidc/src/metrics.c:1581,1
    - Dst: oidc_metric_reset
      Src: /src/mod_auth_openidc/src/metrics.c:1584,1
    - Dst: oidc_metrics_storage_reset
      Src: /src/mod_auth_openidc/src/metrics.c:1585,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/metrics.c:1588,1
    - Dst: oidc_metrics_content_handler_t*::callback
      Src: /src/mod_auth_openidc/src/metrics.c:1591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1567
    functionDepth: 5
    functionLinenumber: 1567
    functionLinenumberEnd: 1592
    functionName: oidc_metrics_handle_request
    functionSourceFile: /src/mod_auth_openidc/src/metrics.c
    functionUses: 20
    functionsReached:
    - oidc_cache_mutex_unlock
    - oidc_metrics_content_handler_t*::callback
    - oidc_metrics_storage_reset
    - oidc_metrics_find_handler
    - _oidc_metrics_storage_get
    - oidc_metric_reset
    - oidc_cache_mutex_lock
    linkageType: ''
    returnType: int
    signature: int oidc_metrics_handle_request(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: OIDC_HTTP_COOKIE_SAMESITE_NONE
    functionSourceFile: /src/mod_auth_openidc/src/http.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_HTTP_COOKIE_SAMESITE_NONE(c, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/state.c:54,1
    - Dst: oidc_cfg_dir_state_cookie_prefix_get
      Src: /src/mod_auth_openidc/src/state.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - state
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: oidc_state_cookie_name
    functionSourceFile: /src/mod_auth_openidc/src/state.c
    functionUses: 10
    functionsReached:
    - oidc_cfg_dir_state_cookie_prefix_get
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_state_cookie_name(request_rec *r, const char *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/state.c:71,1
    - Dst: oidc_cfg_state_input_headers_get
      Src: /src/mod_auth_openidc/src/state.c:73,1
    - Dst: oidc_http_hdr_in_x_forwarded_for_get
      Src: /src/mod_auth_openidc/src/state.c:75,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/state.c:78,1
    - Dst: oidc_cfg_state_input_headers_get
      Src: /src/mod_auth_openidc/src/state.c:81,1
    - Dst: oidc_http_hdr_in_user_agent_get
      Src: /src/mod_auth_openidc/src/state.c:83,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/state.c:86,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/state.c:92,1
    - Dst: oidc_jose_hash_bytes
      Src: /src/mod_auth_openidc/src/state.c:95,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/state.c:96,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/state.c:97,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/state.c:97,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/src/state.c:102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - r
    - c
    - nonce
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 105
    functionName: oidc_state_browser_fingerprint
    functionSourceFile: /src/mod_auth_openidc/src/state.c
    functionUses: 11
    functionsReached:
    - _oidc_strlen
    - oidc_http_hdr_in_user_agent_get
    - oidc_error
    - oidc_debug
    - oidc_http_hdr_in_x_forwarded_for_get
    - oidc_cfg_state_input_headers_get
    - apr_pstrcat
    - oidc_jose_hash_bytes
    - oidc_util_base64url_encode
    - oidc_jose_e2s
    linkageType: ''
    returnType: char
    signature: char *oidc_state_browser_fingerprint(request_rec *r, const oidc_cfg_t
      *c, const char *nonce)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/state.c:139,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/state.c:140,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/state.c:140,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/state.c:141,1
    - Dst: OIDC_HTTP_COOKIE_SAMESITE_NONE
      Src: /src/mod_auth_openidc/src/state.c:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - r
    - c
    - number_of_valid_state_cookies
    - max_number_of_state_cookies
    - first
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - int
    - int
    - oidc_state_cookies_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 150
    functionName: oidc_state_cookies_delete_oldest
    functionSourceFile: /src/mod_auth_openidc/src/state.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - apr_time_sec
    - apr_time_now
    - OIDC_HTTP_COOKIE_SAMESITE_NONE
    - oidc_http_set_cookie
    linkageType: ''
    returnType: int
    signature: "int oidc_state_cookies_delete_oldest(request_rec *r, const oidc_cfg_t
      *c, int number_of_valid_state_cookies,\n\t\t\t\t\t    int max_number_of_state_cookies,
      oidc_state_cookies_t *first)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/state.c:158,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/state.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - r
    - first
    - last
    - name
    - ts
    argTypes:
    - request_rec*
    - oidc_state_cookies_t**
    - oidc_state_cookies_t**
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: oidc_state_cookies_list_append
    functionSourceFile: /src/mod_auth_openidc/src/state.c
    functionUses: 0
    functionsReached:
    - apr_pcalloc
    linkageType: ''
    returnType: void
    signature: "void oidc_state_cookies_list_append(request_rec *r, oidc_state_cookies_t
      **first, oidc_state_cookies_t **last,\n\t\t\t\t\t   char *name, apr_time_t ts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/state.c:177,1
    - Dst: oidc_proto_state_from_cookie
      Src: /src/mod_auth_openidc/src/state.c:180,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/state.c:182,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/state.c:183,1
    - Dst: OIDC_HTTP_COOKIE_SAMESITE_NONE
      Src: /src/mod_auth_openidc/src/state.c:183,1
    - Dst: oidc_proto_state_get_timestamp
      Src: /src/mod_auth_openidc/src/state.c:188,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/state.c:189,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/state.c:189,1
    - Dst: oidc_cfg_state_timeout_get
      Src: /src/mod_auth_openidc/src/state.c:189,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/state.c:190,1
    - Dst: oidc_proto_state_get_original_url
      Src: /src/mod_auth_openidc/src/state.c:191,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/state.c:192,1
    - Dst: OIDC_HTTP_COOKIE_SAMESITE_NONE
      Src: /src/mod_auth_openidc/src/state.c:192,1
    - Dst: oidc_state_cookies_list_append
      Src: /src/mod_auth_openidc/src/state.c:194,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/src/state.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - r
    - c
    - cookieName
    - value
    - currentCookieName
    - first
    - last
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char*
    - oidc_state_cookies_t**
    - oidc_state_cookies_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 200
    functionName: oidc_state_cookies_process_one
    functionSourceFile: /src/mod_auth_openidc/src/state.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_proto_state_get_timestamp
    - oidc_proto_state_from_cookie
    - oidc_proto_state_destroy
    - apr_time_now
    - OIDC_HTTP_COOKIE_SAMESITE_NONE
    - oidc_http_set_cookie
    - oidc_cfg_state_timeout_get
    - oidc_state_cookies_list_append
    - oidc_proto_state_get_original_url
    - apr_time_from_sec
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: "int oidc_state_cookies_process_one(request_rec *r, const oidc_cfg_t
      *c, char *cookieName, const char *value,\n\t\t\t\t\t  const char *currentCookieName,
      oidc_state_cookies_t **first,\n\t\t\t\t\t  oidc_state_cookies_t **last)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/state.c:212,1
    - Dst: oidc_cfg_dir_state_cookie_prefix_get
      Src: /src/mod_auth_openidc/src/state.c:212,1
    - Dst: oidc_state_cookies_process_one
      Src: /src/mod_auth_openidc/src/state.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 6
    argNames:
    - r
    - c
    - cookie
    - currentCookieName
    - first
    - last
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - oidc_state_cookies_t**
    - oidc_state_cookies_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 5
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: oidc_state_cookies_parse_token
    functionSourceFile: /src/mod_auth_openidc/src/state.c
    functionUses: 0
    functionsReached:
    - _oidc_strstr
    - oidc_cfg_dir_state_cookie_prefix_get
    - oidc_state_cookies_process_one
    linkageType: ''
    returnType: int
    signature: "int oidc_state_cookies_parse_token(request_rec *r, const oidc_cfg_t
      *c, char *cookie,\n\t\t\t\t\t  const char *currentCookieName, oidc_state_cookies_t
      **first,\n\t\t\t\t\t  oidc_state_cookies_t **last)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/state.c:241,1
    - Dst: oidc_http_hdr_in_cookie_get
      Src: /src/mod_auth_openidc/src/state.c:241,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/state.c:246,1
    - Dst: oidc_state_cookies_parse_token
      Src: /src/mod_auth_openidc/src/state.c:249,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/state.c:250,1
    - Dst: oidc_state_cookies_delete_oldest
      Src: /src/mod_auth_openidc/src/state.c:256,1
    - Dst: oidc_cfg_max_number_of_state_cookies_get
      Src: /src/mod_auth_openidc/src/state.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - r
    - c
    - currentCookieName
    - delete_oldest
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 235
    functionDepth: 6
    functionLinenumber: 235
    functionLinenumberEnd: 260
    functionName: oidc_state_cookies_clean_expired
    functionSourceFile: /src/mod_auth_openidc/src/state.c
    functionUses: 8
    functionsReached:
    - apr_pstrdup
    - oidc_http_hdr_in_cookie_get
    - oidc_state_cookies_parse_token
    - oidc_cfg_max_number_of_state_cookies_get
    - apr_strtok
    - oidc_state_cookies_delete_oldest
    linkageType: ''
    returnType: int
    signature: "int oidc_state_cookies_clean_expired(request_rec *r, const oidc_cfg_t
      *c, const char *currentCookieName,\n\t\t\t\t     int delete_oldest)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/session.c:81,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/src/session.c:83,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/session.c:84,1
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/src/session.c:88,1
    - Dst: oidc_cfg_crypto_passphrase_get
      Src: /src/mod_auth_openidc/src/session.c:88,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/session.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - r
    - c
    - z
    - s_value
    - encrypt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - char**
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 93
    functionName: oidc_session_encode
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_json_encode
    - oidc_cfg_crypto_passphrase_get
    - oidc_util_jwt_create
    - oidc_cfg_crypto_passphrase_secret1_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_session_encode(request_rec *r, const oidc_cfg_t *c,
      const oidc_session_t *z, char **s_value,\n\t\t\t\t      apr_byte_t encrypt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_int
      Src: /src/mod_auth_openidc/src/session.c:99,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/session.c:101,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/session.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 113
    functionName: oidc_session_version_supported
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_json_decref
    - oidc_json_object_get_int
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_version_supported(request_rec *r, oidc_session_t
      *z)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/session.c:123,1
    - Dst: oidc_session_version_supported
      Src: /src/mod_auth_openidc/src/session.c:125,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/src/session.c:126,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/session.c:127,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/src/session.c:131,1
    - Dst: oidc_cfg_crypto_passphrase_get
      Src: /src/mod_auth_openidc/src/session.c:131,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/session.c:132,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/session.c:136,1
    - Dst: oidc_session_version_supported
      Src: /src/mod_auth_openidc/src/session.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - r
    - c
    - z
    - s_json
    - encrypt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - char*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 140
    functionName: oidc_session_decode
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_json_decode_object
    - oidc_session_version_supported
    - oidc_cfg_crypto_passphrase_get
    - oidc_cfg_crypto_passphrase_secret1_get
    - oidc_util_jwt_verify
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_session_decode(request_rec *r, const oidc_cfg_t *c,
      oidc_session_t *z, const char *s_json,\n\t\t\t\t      apr_byte_t encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_rand_hex_str
      Src: /src/mod_auth_openidc/src/session.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: oidc_session_id_new
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 1
    functionsReached:
    - oidc_util_rand_hex_str
    linkageType: ''
    returnType: void
    signature: void oidc_session_id_new(request_rec *r, oidc_session_t *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/session.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: oidc_session_clear
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_json_decref
    linkageType: ''
    returnType: void
    signature: void oidc_session_clear(request_rec *r, oidc_session_t *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/src/session.c:170,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/src/session.c:171,1
    - Dst: oidc_session_clear
      Src: /src/mod_auth_openidc/src/session.c:172,1
    - Dst: oidc_session_id_new
      Src: /src/mod_auth_openidc/src/session.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - r
    - c
    - z
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: oidc_session_reset
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_session_type_get
    - oidc_session_id_new
    - oidc_cache_set_session
    - oidc_session_clear
    linkageType: ''
    returnType: void
    signature: void oidc_session_reset(request_rec *r, const oidc_cfg_t *c, oidc_session_t
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/session.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r
    - z
    - key
    - value
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: oidc_session_get
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get_string
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_get(request_rec *r, const oidc_session_t *z,
      const char *key, char **value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/session.c:198,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/session.c:199,1
    - Dst: oidc_json_object_del
      Src: /src/mod_auth_openidc/src/session.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - r
    - z
    - key
    - value
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 205
    functionName: oidc_session_json_set
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_del
    - oidc_json_object_set_new
    - oidc_json_object
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_json_set(request_rec *r, oidc_session_t *z,
      const char *key, oidc_json_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/session.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - key
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: oidc_session_json_get
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_session_json_get(request_rec *r, const oidc_session_t
      *z, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_json_set
      Src: /src/mod_auth_openidc/src/session.c:218,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/session.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - z
    - key
    - value
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: oidc_session_set
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_session_json_set
    - oidc_json_string
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_set(request_rec *r, oidc_session_t *z, const
      char *key, const char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_get_session
      Src: /src/mod_auth_openidc/src/session.c:229,1
    - Dst: oidc_session_decode
      Src: /src/mod_auth_openidc/src/session.c:232,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/session.c:234,1
    - Dst: oidc_session_get
      Src: /src/mod_auth_openidc/src/session.c:237,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/session.c:238,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/session.c:239,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/src/session.c:245,1
    - Dst: oidc_session_clear
      Src: /src/mod_auth_openidc/src/session.c:247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - r
    - c
    - uuid
    - z
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 255
    functionName: oidc_session_load_cache_by_uuid
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_error
    - oidc_session_clear
    - oidc_cache_get_session
    - oidc_session_get
    - oidc_cache_set_session
    - oidc_session_decode
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_load_cache_by_uuid(request_rec *r, const oidc_cfg_t
      *c, const char *uuid, oidc_session_t *z)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/session.c:261,1
    - Dst: oidc_http_get_cookie
      Src: /src/mod_auth_openidc/src/session.c:266,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/src/session.c:266,1
    - Dst: oidc_session_load_cache_by_uuid
      Src: /src/mod_auth_openidc/src/session.c:272,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/session.c:276,1
    - Dst: oidc_cfg_session_cache_fallback_to_cookie_get
      Src: /src/mod_auth_openidc/src/session.c:287,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/session.c:291,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/src/session.c:291,1
    - Dst: OIDC_HTTP_COOKIE_SAMESITE_NONE
      Src: /src/mod_auth_openidc/src/session.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 297
    functionName: oidc_session_load_cache
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - oidc_error
    - oidc_cfg_session_cache_fallback_to_cookie_get
    - OIDC_HTTP_COOKIE_SAMESITE_NONE
    - oidc_http_set_cookie
    - oidc_http_get_cookie
    - oidc_session_load_cache_by_uuid
    - oidc_cfg_dir_cookie_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_load_cache(request_rec *r, oidc_session_t *z)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_cookie_same_site_session_get
      Src: /src/mod_auth_openidc/src/session.c:301,1
    - Dst: OIDC_HTTP_COOKIE_SAMESITE_NONE
      Src: /src/mod_auth_openidc/src/session.c:309,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - r
    - c
    - first_time
    argTypes:
    - request_rec*
    - struct oidc_cfg_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 317
    functionName: oidc_session_cookie_samesite
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_cookie_same_site_session_get
    - OIDC_HTTP_COOKIE_SAMESITE_NONE
    linkageType: ''
    returnType: char
    signature: char *oidc_session_cookie_samesite(const request_rec *r, const struct
      oidc_cfg_t *c, int first_time)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/session.c:323,1
    - Dst: oidc_cache_set_sid
      Src: /src/mod_auth_openidc/src/session.c:330,1
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:331,1
    - Dst: oidc_cache_set_sid
      Src: /src/mod_auth_openidc/src/session.c:336,1
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:337,1
    - Dst: oidc_session_encode
      Src: /src/mod_auth_openidc/src/session.c:342,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/src/session.c:345,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/session.c:348,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/src/session.c:348,1
    - Dst: oidc_cfg_persistent_session_cookie_get
      Src: /src/mod_auth_openidc/src/session.c:349,1
    - Dst: oidc_session_cookie_samesite
      Src: /src/mod_auth_openidc/src/session.c:350,1
    - Dst: oidc_cache_set_sid
      Src: /src/mod_auth_openidc/src/session.c:355,1
    - Dst: oidc_cache_get_sid
      Src: /src/mod_auth_openidc/src/session.c:359,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/session.c:360,1
    - Dst: oidc_cache_set_sid
      Src: /src/mod_auth_openidc/src/session.c:361,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/session.c:365,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/src/session.c:365,1
    - Dst: OIDC_HTTP_COOKIE_SAMESITE_NONE
      Src: /src/mod_auth_openidc/src/session.c:365,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/src/session.c:368,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - r
    - z
    - first_time
    argTypes:
    - request_rec*
    - oidc_session_t*
    - oidc_session_save_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 372
    functionName: oidc_session_save_cache
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_cache_set_sid
    - oidc_session_encode
    - ap_get_module_config
    - oidc_cache_get_sid
    - oidc_session_set
    - OIDC_HTTP_COOKIE_SAMESITE_NONE
    - oidc_session_cookie_samesite
    - oidc_http_set_cookie
    - oidc_cfg_persistent_session_cookie_get
    - oidc_cache_set_session
    - _oidc_strcmp
    - oidc_cfg_dir_cookie_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_save_cache(request_rec *r, oidc_session_t *z,
      oidc_session_save_t first_time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_get_chunked_cookie
      Src: /src/mod_auth_openidc/src/session.c:379,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/src/session.c:379,1
    - Dst: oidc_cfg_session_cookie_chunk_size_get
      Src: /src/mod_auth_openidc/src/session.c:379,1
    - Dst: oidc_session_decode
      Src: /src/mod_auth_openidc/src/session.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - r
    - c
    - z
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 377
    functionDepth: 6
    functionLinenumber: 377
    functionLinenumberEnd: 388
    functionName: oidc_session_load_cookie
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_session_decode
    - oidc_http_get_chunked_cookie
    - oidc_cfg_session_cookie_chunk_size_get
    - oidc_cfg_dir_cookie_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_load_cookie(request_rec *r, const oidc_cfg_t
      *c, oidc_session_t *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/session.c:394,1
    - Dst: oidc_session_encode
      Src: /src/mod_auth_openidc/src/session.c:396,1
    - Dst: oidc_http_set_chunked_cookie
      Src: /src/mod_auth_openidc/src/session.c:400,1
    - Dst: oidc_cfg_dir_cookie_get
      Src: /src/mod_auth_openidc/src/session.c:401,1
    - Dst: oidc_cfg_persistent_session_cookie_get
      Src: /src/mod_auth_openidc/src/session.c:401,1
    - Dst: oidc_cfg_session_cookie_chunk_size_get
      Src: /src/mod_auth_openidc/src/session.c:402,1
    - Dst: OIDC_HTTP_COOKIE_SAMESITE_NONE
      Src: /src/mod_auth_openidc/src/session.c:403,1
    - Dst: oidc_session_cookie_samesite
      Src: /src/mod_auth_openidc/src/session.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - r
    - z
    - first_time
    argTypes:
    - request_rec*
    - oidc_session_t*
    - oidc_session_save_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 393
    functionDepth: 7
    functionLinenumber: 393
    functionLinenumberEnd: 404
    functionName: oidc_session_save_cookie
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_session_encode
    - ap_get_module_config
    - oidc_cfg_session_cookie_chunk_size_get
    - OIDC_HTTP_COOKIE_SAMESITE_NONE
    - oidc_http_set_chunked_cookie
    - oidc_session_cookie_samesite
    - oidc_cfg_persistent_session_cookie_get
    - oidc_cfg_dir_cookie_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_save_cookie(request_rec *r, const oidc_session_t
      *z, oidc_session_save_t first_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_int
      Src: /src/mod_auth_openidc/src/session.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r
    - z
    - key
    - def_val
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: oidc_session_get_int
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get_int
    linkageType: ''
    returnType: int
    signature: int oidc_session_get_int(request_rec *r, const oidc_session_t *z, const
      char *key, int def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_int64
      Src: /src/mod_auth_openidc/src/session.c:420,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/src/session.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - z
    - key
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 423
    functionName: oidc_session_get_key2timestamp
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get_int64
    - oidc_util_apr_time_from_sec
    linkageType: ''
    returnType: apr_time_t
    signature: apr_time_t oidc_session_get_key2timestamp(request_rec *r, const oidc_session_t
      *z, const char *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_json_get
      Src: /src/mod_auth_openidc/src/session.c:436,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/session.c:437,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/session.c:439,1
    - Dst: oidc_session_kill
      Src: /src/mod_auth_openidc/src/session.c:440,1
    - Dst: oidc_session_get_key2timestamp
      Src: /src/mod_auth_openidc/src/session.c:446,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/session.c:447,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/session.c:449,1
    - Dst: oidc_session_kill
      Src: /src/mod_auth_openidc/src/session.c:450,1
    - Dst: oidc_session_get
      Src: /src/mod_auth_openidc/src/session.c:455,1
    - Dst: oidc_session_get
      Src: /src/mod_auth_openidc/src/session.c:456,1
    - Dst: oidc_session_get
      Src: /src/mod_auth_openidc/src/session.c:457,1
    - Dst: oidc_session_get
      Src: /src/mod_auth_openidc/src/session.c:458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 465
    functionName: oidc_session_extract
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_error
    - oidc_json_is_object
    - oidc_session_get_key2timestamp
    - oidc_session_get
    - oidc_session_kill
    - apr_time_now
    - oidc_session_json_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_extract(request_rec *r, oidc_session_t *z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/session.c:471,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/session.c:476,1
    - Dst: oidc_session_clear
      Src: /src/mod_auth_openidc/src/session.c:477,1
    - Dst: oidc_session_id_new
      Src: /src/mod_auth_openidc/src/session.c:478,1
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/src/session.c:482,1
    - Dst: oidc_session_load_cache
      Src: /src/mod_auth_openidc/src/session.c:484,1
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/src/session.c:487,1
    - Dst: oidc_cfg_session_cache_fallback_to_cookie_get
      Src: /src/mod_auth_openidc/src/session.c:488,1
    - Dst: oidc_session_load_cookie
      Src: /src/mod_auth_openidc/src/session.c:490,1
    - Dst: oidc_session_extract
      Src: /src/mod_auth_openidc/src/session.c:493,1
    - Dst: oidc_util_set_trace_parent
      Src: /src/mod_auth_openidc/src/session.c:495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - r
    - zz
    argTypes:
    - request_rec*
    - oidc_session_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 470
    functionDepth: 7
    functionLinenumber: 470
    functionLinenumberEnd: 498
    functionName: oidc_session_load
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 168
    functionsReached:
    - oidc_cfg_session_type_get
    - ap_get_module_config
    - oidc_session_clear
    - oidc_cfg_session_cache_fallback_to_cookie_get
    - oidc_session_load_cookie
    - oidc_session_id_new
    - oidc_session_load_cache
    - apr_pcalloc
    - oidc_session_extract
    - oidc_util_set_trace_parent
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_load(request_rec *r, oidc_session_t **zz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/session.c:505,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/session.c:506,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/session.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - r
    - z
    - key
    - v
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: oidc_session_set_int
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_json_integer
    - oidc_json_object_set_new
    - oidc_json_object
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_int(request_rec *r, oidc_session_t *z, const
      char *key, int v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/session.c:516,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/session.c:519,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/session.c:519,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/session.c:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - z
    - key
    - timestamp
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 520
    functionName: oidc_session_set_timestamp
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_json_integer
    - oidc_json_object_set_new
    - apr_time_sec
    - oidc_json_object
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_timestamp(request_rec *r, oidc_session_t *z,
      const char *key, const apr_time_t timestamp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/session.c:526,1
    - Dst: oidc_session_set_int
      Src: /src/mod_auth_openidc/src/session.c:531,1
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:532,1
    - Dst: oidc_session_set_timestamp
      Src: /src/mod_auth_openidc/src/session.c:533,1
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:534,1
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/src/session.c:537,1
    - Dst: oidc_session_save_cache
      Src: /src/mod_auth_openidc/src/session.c:539,1
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/src/session.c:542,1
    - Dst: oidc_cfg_session_cache_fallback_to_cookie_get
      Src: /src/mod_auth_openidc/src/session.c:543,1
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/src/session.c:544,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/session.c:545,1
    - Dst: oidc_session_save_cookie
      Src: /src/mod_auth_openidc/src/session.c:547,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - r
    - z
    - first_time
    argTypes:
    - request_rec*
    - oidc_session_t*
    - oidc_session_save_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 525
    functionDepth: 8
    functionLinenumber: 525
    functionLinenumberEnd: 551
    functionName: oidc_session_save
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 14
    functionsReached:
    - oidc_cfg_session_type_get
    - ap_get_module_config
    - oidc_cfg_session_cache_fallback_to_cookie_get
    - oidc_session_save_cookie
    - oidc_session_set
    - OIDC_METRICS_COUNTER_INC
    - oidc_session_save_cache
    - oidc_session_set_timestamp
    - oidc_session_set_int
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_save(request_rec *r, oidc_session_t *z, oidc_session_save_t
      first_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_clear
      Src: /src/mod_auth_openidc/src/session.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 559
    functionName: oidc_session_free
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 167
    functionsReached:
    - oidc_session_clear
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_free(request_rec *r, oidc_session_t *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/session.c:567,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/src/session.c:570,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/src/session.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 564
    functionDepth: 9
    functionLinenumber: 564
    functionLinenumberEnd: 572
    functionName: oidc_session_kill
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 1
    functionsReached:
    - oidc_session_free
    - oidc_json_decref
    - oidc_session_save
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_session_kill(request_rec *r, oidc_session_t *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get
      Src: /src/mod_auth_openidc/src/session.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - z
    - key
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 623
    functionName: oidc_session_get_key2string
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_session_get
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_key2string(request_rec *r, const oidc_session_t
      *z, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/session.c:637,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/src/session.c:641,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/session.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 645
    functionName: oidc_session_warn_claim_size_get
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - _oidc_str_to_int
    - oidc_debug
    - apr_table_get
    linkageType: ''
    returnType: int
    signature: int oidc_session_warn_claim_size_get(request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_black_listed_claims_get
      Src: /src/mod_auth_openidc/src/session.c:652,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/session.c:653,1
    - Dst: oidc_cfg_black_listed_claims_get
      Src: /src/mod_auth_openidc/src/session.c:653,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/session.c:654,1
    - Dst: oidc_cfg_white_listed_claims_get
      Src: /src/mod_auth_openidc/src/session.c:658,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/session.c:659,1
    - Dst: oidc_cfg_white_listed_claims_get
      Src: /src/mod_auth_openidc/src/session.c:659,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/session.c:660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - r
    - c
    - session_key
    - name
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 665
    functionName: oidc_session_claim_is_allowed
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_white_listed_claims_get
    - oidc_cfg_black_listed_claims_get
    - oidc_debug
    - apr_hash_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_session_claim_is_allowed(request_rec *r, const oidc_cfg_t
      *c, const char *session_key,\n\t\t\t\t\t\tconst char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/session.c:673,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/session.c:677,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/session.c:678,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/session.c:684,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/session.c:686,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/session.c:686,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/session.c:687,1
    - Dst: OIDC_METRICS_COUNTER_INC_NAME_VALUE
      Src: /src/mod_auth_openidc/src/session.c:688,1
    - Dst: OIDC_METRICS_COUNTER_INC_NAME_VALUE
      Src: /src/mod_auth_openidc/src/session.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - r
    - c
    - session_key
    - name
    - value
    - dst
    - warn_claim_size
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - oidc_json_t*
    - oidc_json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 692
    functionName: oidc_session_filtered_claim_record
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_json_string_value
    - _oidc_strlen
    - oidc_json_encode
    - OIDC_METRICS_COUNTER_INC_NAME_VALUE
    - oidc_json_is_string
    - oidc_json_object_set
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: "void oidc_session_filtered_claim_record(request_rec *r, const oidc_cfg_t
      *c, const char *session_key,\n\t\t\t\t\t       const char *name, oidc_json_t
      *value, oidc_json_t *dst,\n\t\t\t\t\t       int warn_claim_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_filter_claims_expr_get
      Src: /src/mod_auth_openidc/src/session.c:700,1
    - Dst: oidc_util_apr_expr_exec
      Src: /src/mod_auth_openidc/src/session.c:701,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/src/session.c:706,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/session.c:707,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/session.c:709,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/session.c:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - r
    - c
    - session_key
    - dst
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 712
    functionName: oidc_session_jq_filter_apply
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_json_decref
    - oidc_util_apr_expr_exec
    - oidc_json_decode_object
    - oidc_util_jq_filter
    - oidc_cfg_filter_claims_expr_get
    linkageType: ''
    returnType: void
    signature: "void oidc_session_jq_filter_apply(request_rec *r, const oidc_cfg_t
      *c, const char *session_key,\n\t\t\t\t\t oidc_json_t **dst)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/session.c:721,1
    - Dst: oidc_session_warn_claim_size_get
      Src: /src/mod_auth_openidc/src/session.c:724,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/session.c:731,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/session.c:732,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/session.c:737,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/session.c:738,1
    - Dst: oidc_session_claim_is_allowed
      Src: /src/mod_auth_openidc/src/session.c:740,1
    - Dst: oidc_session_filtered_claim_record
      Src: /src/mod_auth_openidc/src/session.c:741,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/session.c:743,1
    - Dst: oidc_session_jq_filter_apply
      Src: /src/mod_auth_openidc/src/session.c:747,1
    - Dst: oidc_session_json_set
      Src: /src/mod_auth_openidc/src/session.c:750,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - r
    - z
    - session_key
    - claims
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 751
    functionName: oidc_session_set_filtered_claims
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_iter_next
    - ap_get_module_config
    - oidc_session_json_set
    - oidc_json_object_iter_key
    - oidc_json_object_iter_value
    - oidc_session_filtered_claim_record
    - oidc_json_object
    - oidc_session_warn_claim_size_get
    - oidc_session_jq_filter_apply
    - oidc_json_object_iter
    - oidc_session_claim_is_allowed
    linkageType: ''
    returnType: void
    signature: "void oidc_session_set_filtered_claims(request_rec *r, oidc_session_t
      *z, const char *session_key,\n\t\t\t\t\t     oidc_json_t *claims)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set_filtered_claims
      Src: /src/mod_auth_openidc/src/session.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - claims_json
    argTypes:
    - request_rec*
    - oidc_session_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 758
    functionName: oidc_session_set_userinfo_claims
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 14
    functionsReached:
    - oidc_session_set_filtered_claims
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_userinfo_claims(request_rec *r, oidc_session_t
      *z, oidc_json_t *claims_json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_json_get
      Src: /src/mod_auth_openidc/src/session.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: oidc_session_get_userinfo_claims
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 6
    functionsReached:
    - oidc_session_json_get
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_session_get_userinfo_claims(request_rec *r, const
      oidc_session_t *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - s_userinfo_jwt
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 764
    functionDepth: 3
    functionLinenumber: 764
    functionLinenumberEnd: 766
    functionName: oidc_session_set_userinfo_jwt
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_userinfo_jwt(request_rec *r, oidc_session_t *z,
      const char *s_userinfo_jwt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 770
    functionName: oidc_session_get_userinfo_jwt
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_userinfo_jwt(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/session.c:776,1
    - Dst: oidc_session_set_filtered_claims
      Src: /src/mod_auth_openidc/src/session.c:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - r
    - z
    - idtoken_claims
    argTypes:
    - request_rec*
    - oidc_session_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 778
    functionName: oidc_session_set_idtoken_claims
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 4
    functionsReached:
    - oidc_session_set_filtered_claims
    - apr_table_get
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_idtoken_claims(request_rec *r, oidc_session_t
      *z, oidc_json_t *idtoken_claims)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_json_get
      Src: /src/mod_auth_openidc/src/session.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 782
    functionName: oidc_session_get_idtoken_claims
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 4
    functionsReached:
    - oidc_session_json_get
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_session_get_idtoken_claims(request_rec *r, const
      oidc_session_t *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/session.c:788,1
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - z
    - s_id_token
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 790
    functionName: oidc_session_set_idtoken
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 6
    functionsReached:
    - oidc_session_set
    - oidc_debug
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_idtoken(request_rec *r, oidc_session_t *z, const
      char *s_id_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 794
    functionName: oidc_session_get_idtoken
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 3
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_idtoken(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - access_token
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 801
    functionName: oidc_session_set_access_token
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 13
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_access_token(request_rec *r, oidc_session_t *z,
      const char *access_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 803
    functionDepth: 3
    functionLinenumber: 803
    functionLinenumberEnd: 805
    functionName: oidc_session_get_access_token
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 10
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_access_token(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - token_type
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 812
    functionName: oidc_session_set_access_token_type
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 6
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_access_token_type(request_rec *r, oidc_session_t
      *z, const char *token_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 816
    functionName: oidc_session_get_access_token_type
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_access_token_type(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/session.c:823,1
    - Dst: oidc_session_set_timestamp
      Src: /src/mod_auth_openidc/src/session.c:824,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/session.c:825,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/session.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - r
    - z
    - expires_in
    argTypes:
    - request_rec*
    - oidc_session_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 827
    functionName: oidc_session_set_access_token_expires
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 7
    functionsReached:
    - apr_time_now
    - oidc_debug
    - oidc_session_set_timestamp
    - apr_time_from_sec
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_access_token_expires(request_rec *r, oidc_session_t
      *z, const int expires_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2timestamp
      Src: /src/mod_auth_openidc/src/session.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 831
    functionName: oidc_session_get_access_token_expires
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_session_get_key2timestamp
    linkageType: ''
    returnType: apr_time_t
    signature: apr_time_t oidc_session_get_access_token_expires(request_rec *r, const
      oidc_session_t *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_access_token_expires
      Src: /src/mod_auth_openidc/src/session.c:834,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/session.c:835,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/session.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 833
    functionDepth: 3
    functionLinenumber: 833
    functionLinenumberEnd: 836
    functionName: oidc_session_get_access_token_expires2str
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_session_get_access_token_expires
    - apr_time_sec
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_access_token_expires2str(request_rec *r, const
      oidc_session_t *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - refresh_token
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 841
    functionDepth: 3
    functionLinenumber: 841
    functionLinenumberEnd: 843
    functionName: oidc_session_set_refresh_token
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 26
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_refresh_token(request_rec *r, oidc_session_t
      *z, const char *refresh_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 845
    functionDepth: 3
    functionLinenumber: 845
    functionLinenumberEnd: 847
    functionName: oidc_session_get_refresh_token
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 7
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_refresh_token(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set_timestamp
      Src: /src/mod_auth_openidc/src/session.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - expires
    argTypes:
    - request_rec*
    - oidc_session_t*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 852
    functionDepth: 2
    functionLinenumber: 852
    functionLinenumberEnd: 854
    functionName: oidc_session_set_session_expires
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 7
    functionsReached:
    - oidc_session_set_timestamp
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_session_expires(request_rec *r, oidc_session_t
      *z, const apr_time_t expires)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2timestamp
      Src: /src/mod_auth_openidc/src/session.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 858
    functionName: oidc_session_get_session_expires
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_session_get_key2timestamp
    linkageType: ''
    returnType: apr_time_t
    signature: apr_time_t oidc_session_get_session_expires(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - cookie_domain
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 863
    functionDepth: 3
    functionLinenumber: 863
    functionLinenumberEnd: 865
    functionName: oidc_session_set_cookie_domain
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 7
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_cookie_domain(request_rec *r, oidc_session_t
      *z, const char *cookie_domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 867
    functionDepth: 3
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: oidc_session_get_cookie_domain
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 1
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_cookie_domain(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set_int
      Src: /src/mod_auth_openidc/src/session.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - interval
    argTypes:
    - request_rec*
    - oidc_session_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 877
    functionName: oidc_session_set_userinfo_refresh_interval
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 4
    functionsReached:
    - oidc_session_set_int
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_userinfo_refresh_interval(request_rec *r, oidc_session_t
      *z, const int interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_int
      Src: /src/mod_auth_openidc/src/session.c:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 881
    functionName: oidc_session_get_userinfo_refresh_interval
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_session_get_int
    linkageType: ''
    returnType: int
    signature: int oidc_session_get_userinfo_refresh_interval(request_rec *r, const
      oidc_session_t *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set_timestamp
      Src: /src/mod_auth_openidc/src/session.c:884,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/session.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 885
    functionName: oidc_session_reset_userinfo_last_refresh
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - apr_time_now
    - oidc_session_set_timestamp
    linkageType: ''
    returnType: void
    signature: void oidc_session_reset_userinfo_last_refresh(request_rec *r, oidc_session_t
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2timestamp
      Src: /src/mod_auth_openidc/src/session.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 889
    functionName: oidc_session_get_userinfo_last_refresh
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 1
    functionsReached:
    - oidc_session_get_key2timestamp
    linkageType: ''
    returnType: apr_time_t
    signature: apr_time_t oidc_session_get_userinfo_last_refresh(request_rec *r, const
      oidc_session_t *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set_timestamp
      Src: /src/mod_auth_openidc/src/session.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - ts
    argTypes:
    - request_rec*
    - oidc_session_t*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 896
    functionName: oidc_session_set_access_token_last_refresh
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_session_set_timestamp
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_access_token_last_refresh(request_rec *r, oidc_session_t
      *z, apr_time_t ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2timestamp
      Src: /src/mod_auth_openidc/src/session.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 900
    functionName: oidc_session_get_access_token_last_refresh
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 1
    functionsReached:
    - oidc_session_get_key2timestamp
    linkageType: ''
    returnType: apr_time_t
    signature: apr_time_t oidc_session_get_access_token_last_refresh(request_rec *r,
      const oidc_session_t *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - request_state
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 905
    functionDepth: 3
    functionLinenumber: 905
    functionLinenumberEnd: 907
    functionName: oidc_session_set_request_state
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 1
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_request_state(request_rec *r, oidc_session_t
      *z, const char *request_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 909
    functionDepth: 3
    functionLinenumber: 909
    functionLinenumberEnd: 911
    functionName: oidc_session_get_request_state
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 0
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_request_state(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - original_url
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 918
    functionName: oidc_session_set_original_url
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 3
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_original_url(request_rec *r, oidc_session_t *z,
      const char *original_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 920
    functionDepth: 3
    functionLinenumber: 920
    functionLinenumberEnd: 922
    functionName: oidc_session_get_original_url
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_original_url(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - session_state
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 929
    functionName: oidc_session_set_session_state
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_session_state(request_rec *r, oidc_session_t
      *z, const char *session_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 933
    functionName: oidc_session_get_session_state
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_session_state(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - issuer
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 938
    functionDepth: 3
    functionLinenumber: 938
    functionLinenumberEnd: 940
    functionName: oidc_session_set_issuer
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 30
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_issuer(request_rec *r, oidc_session_t *z, const
      char *issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 942
    functionDepth: 3
    functionLinenumber: 942
    functionLinenumberEnd: 944
    functionName: oidc_session_get_issuer
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 6
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_issuer(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/session.c:951,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/session.c:953,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/session.c:953,1
    - Dst: oidc_json_object_del
      Src: /src/mod_auth_openidc/src/session.c:955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - r
    - z
    - is_new
    argTypes:
    - request_rec*
    - oidc_session_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 956
    functionName: oidc_session_set_session_new
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_json_integer
    - oidc_json_object_del
    - oidc_json_object_set_new
    - oidc_json_object
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_session_new(request_rec *r, oidc_session_t *z,
      const int is_new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_int
      Src: /src/mod_auth_openidc/src/session.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 960
    functionName: oidc_session_get_session_new
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_session_get_int
    linkageType: ''
    returnType: int
    signature: int oidc_session_get_session_new(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - scope
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 965
    functionDepth: 3
    functionLinenumber: 965
    functionLinenumberEnd: 967
    functionName: oidc_session_set_scope
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 3
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_scope(request_rec *r, oidc_session_t *z, const
      char *scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 969
    functionDepth: 3
    functionLinenumber: 969
    functionLinenumberEnd: 971
    functionName: oidc_session_get_scope
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 3
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_scope(request_rec *r, const oidc_session_t *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - auth_request_params
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 973
    functionDepth: 3
    functionLinenumber: 973
    functionLinenumberEnd: 975
    functionName: oidc_session_set_path_auth_request_params
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_path_auth_request_params(request_rec *r, oidc_session_t
      *z, const char *auth_request_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 977
    functionDepth: 3
    functionLinenumber: 977
    functionLinenumberEnd: 979
    functionName: oidc_session_get_path_auth_request_params
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 1
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_path_auth_request_params(request_rec *r, const
      oidc_session_t *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_set
      Src: /src/mod_auth_openidc/src/session.c:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - z
    - path_scope
    argTypes:
    - request_rec*
    - oidc_session_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 983
    functionName: oidc_session_set_path_scope
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 2
    functionsReached:
    - oidc_session_set
    linkageType: ''
    returnType: void
    signature: void oidc_session_set_path_scope(request_rec *r, oidc_session_t *z,
      const char *path_scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_key2string
      Src: /src/mod_auth_openidc/src/session.c:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - z
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 985
    functionDepth: 3
    functionLinenumber: 985
    functionLinenumberEnd: 987
    functionName: oidc_session_get_path_scope
    functionSourceFile: /src/mod_auth_openidc/src/session.c
    functionUses: 1
    functionsReached:
    - oidc_session_get_key2string
    linkageType: ''
    returnType: char
    signature: char *oidc_session_get_path_scope(request_rec *r, const oidc_session_t
      *z)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JSON_INDENT
      Src: /src/mod_auth_openidc/src/json.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: oidc_json_flags2backend
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 0
    functionsReached:
    - JSON_INDENT
    linkageType: ''
    returnType: size_t
    signature: size_t oidc_json_flags2backend(int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/mod_auth_openidc/src/json.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: oidc_json_object
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 19
    functionsReached:
    - json_object
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_json_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/mod_auth_openidc/src/json.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: oidc_json_array
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 3
    functionsReached:
    - json_array
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_json_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_string
      Src: /src/mod_auth_openidc/src/json.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: oidc_json_string
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 37
    functionsReached:
    - json_string
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_json_string(const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_integer
      Src: /src/mod_auth_openidc/src/json.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - oidc_json_int_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: oidc_json_integer
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 28
    functionsReached:
    - json_integer
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_json_integer(oidc_json_int_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_boolean
      Src: /src/mod_auth_openidc/src/json.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: oidc_json_boolean
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 2
    functionsReached:
    - json_boolean
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_json_boolean(int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_decref
      Src: /src/mod_auth_openidc/src/json.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: oidc_json_decref
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 147
    functionsReached:
    - json_decref
    linkageType: ''
    returnType: void
    signature: void oidc_json_decref(oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_copy
      Src: /src/mod_auth_openidc/src/json.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: oidc_json_copy
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 0
    functionsReached:
    - json_copy
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_json_copy(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_deep_copy
      Src: /src/mod_auth_openidc/src/json.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: oidc_json_deep_copy
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 2
    functionsReached:
    - json_deep_copy
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_json_deep_copy(const oidc_json_t *json)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: json_typeof
      Src: /src/mod_auth_openidc/src/json.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: oidc_json_typeof
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - json_typeof
    linkageType: ''
    returnType: oidc_json_type_t
    signature: oidc_json_type_t oidc_json_typeof(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/mod_auth_openidc/src/json.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: oidc_json_is_object
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 3
    functionsReached:
    - json_is_object
    linkageType: ''
    returnType: int
    signature: int oidc_json_is_object(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_is_array
      Src: /src/mod_auth_openidc/src/json.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: oidc_json_is_array
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 0
    functionsReached:
    - json_is_array
    linkageType: ''
    returnType: int
    signature: int oidc_json_is_array(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_is_string
      Src: /src/mod_auth_openidc/src/json.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: oidc_json_is_string
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 4
    functionsReached:
    - json_is_string
    linkageType: ''
    returnType: int
    signature: int oidc_json_is_string(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_is_integer
      Src: /src/mod_auth_openidc/src/json.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: oidc_json_is_integer
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 9
    functionsReached:
    - json_is_integer
    linkageType: ''
    returnType: int
    signature: int oidc_json_is_integer(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_is_real
      Src: /src/mod_auth_openidc/src/json.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: oidc_json_is_real
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - json_is_real
    linkageType: ''
    returnType: int
    signature: int oidc_json_is_real(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_is_number
      Src: /src/mod_auth_openidc/src/json.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: oidc_json_is_number
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - json_is_number
    linkageType: ''
    returnType: int
    signature: int oidc_json_is_number(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_is_boolean
      Src: /src/mod_auth_openidc/src/json.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: oidc_json_is_boolean
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - json_is_boolean
    linkageType: ''
    returnType: int
    signature: int oidc_json_is_boolean(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_is_true
      Src: /src/mod_auth_openidc/src/json.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: oidc_json_is_true
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - json_is_true
    linkageType: ''
    returnType: int
    signature: int oidc_json_is_true(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_is_null
      Src: /src/mod_auth_openidc/src/json.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: oidc_json_is_null
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 0
    functionsReached:
    - json_is_null
    linkageType: ''
    returnType: int
    signature: int oidc_json_is_null(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_string_value
      Src: /src/mod_auth_openidc/src/json.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: oidc_json_string_value
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 32
    functionsReached:
    - json_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_json_string_value(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_integer_value
      Src: /src/mod_auth_openidc/src/json.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: oidc_json_integer_value
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 12
    functionsReached:
    - json_integer_value
    linkageType: ''
    returnType: oidc_json_int_t
    signature: oidc_json_int_t oidc_json_integer_value(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_real_value
      Src: /src/mod_auth_openidc/src/json.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: oidc_json_real_value
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 0
    functionsReached:
    - json_real_value
    linkageType: ''
    returnType: double
    signature: double oidc_json_real_value(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_number_value
      Src: /src/mod_auth_openidc/src/json.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: oidc_json_number_value
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - json_number_value
    linkageType: ''
    returnType: double
    signature: double oidc_json_number_value(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_integer_set
      Src: /src/mod_auth_openidc/src/json.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - json
    - value
    argTypes:
    - oidc_json_t*
    - oidc_json_int_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: oidc_json_integer_set
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 3
    functionsReached:
    - json_integer_set
    linkageType: ''
    returnType: void
    signature: void oidc_json_integer_set(oidc_json_t *json, oidc_json_int_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/json.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - json
    - key
    argTypes:
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: oidc_json_object_get
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 59
    functionsReached:
    - json_object_get
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_json_object_get(const oidc_json_t *json, const char
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set
      Src: /src/mod_auth_openidc/src/json.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - json
    - key
    - value
    argTypes:
    - oidc_json_t*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: oidc_json_object_set
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 4
    functionsReached:
    - json_object_set
    linkageType: ''
    returnType: int
    signature: int oidc_json_object_set(oidc_json_t *json, const char *key, oidc_json_t
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set_new
      Src: /src/mod_auth_openidc/src/json.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - json
    - key
    - value
    argTypes:
    - oidc_json_t*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: oidc_json_object_set_new
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 52
    functionsReached:
    - json_object_set_new
    linkageType: ''
    returnType: int
    signature: int oidc_json_object_set_new(oidc_json_t *json, const char *key, oidc_json_t
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_del
      Src: /src/mod_auth_openidc/src/json.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - json
    - key
    argTypes:
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: oidc_json_object_del
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 2
    functionsReached:
    - json_object_del
    linkageType: ''
    returnType: int
    signature: int oidc_json_object_del(oidc_json_t *json, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_iter
      Src: /src/mod_auth_openidc/src/json.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: oidc_json_object_iter
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 12
    functionsReached:
    - json_object_iter
    linkageType: ''
    returnType: void
    signature: void *oidc_json_object_iter(oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_iter_next
      Src: /src/mod_auth_openidc/src/json.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - json
    - iter
    argTypes:
    - oidc_json_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: oidc_json_object_iter_next
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 12
    functionsReached:
    - json_object_iter_next
    linkageType: ''
    returnType: void
    signature: void *oidc_json_object_iter_next(oidc_json_t *json, void *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_iter_key
      Src: /src/mod_auth_openidc/src/json.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: oidc_json_object_iter_key
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 9
    functionsReached:
    - json_object_iter_key
    linkageType: ''
    returnType: char
    signature: char *oidc_json_object_iter_key(void *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_iter_value
      Src: /src/mod_auth_openidc/src/json.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: oidc_json_object_iter_value
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 12
    functionsReached:
    - json_object_iter_value
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_json_object_iter_value(void *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_array_size
      Src: /src/mod_auth_openidc/src/json.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - json
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: oidc_json_array_size
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - json_array_size
    linkageType: ''
    returnType: size_t
    signature: size_t oidc_json_array_size(const oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_array_get
      Src: /src/mod_auth_openidc/src/json.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - json
    - index
    argTypes:
    - oidc_json_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: oidc_json_array_get
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - json_array_get
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_json_array_get(const oidc_json_t *json, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_array_append_new
      Src: /src/mod_auth_openidc/src/json.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - json
    - value
    argTypes:
    - oidc_json_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: oidc_json_array_append_new
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 3
    functionsReached:
    - json_array_append_new
    linkageType: ''
    returnType: int
    signature: int oidc_json_array_append_new(oidc_json_t *json, oidc_json_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_dumps
      Src: /src/mod_auth_openidc/src/json.c:262,1
    - Dst: oidc_json_flags2backend
      Src: /src/mod_auth_openidc/src/json.c:262,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/json.c:263,1
    - Dst: free
      Src: /src/mod_auth_openidc/src/json.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pool
    - json
    - flags
    argTypes:
    - apr_pool_t*
    - oidc_json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: oidc_json_encode
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 9
    functionsReached:
    - oidc_json_flags2backend
    - json_dumps
    - apr_pstrdup
    - free
    linkageType: ''
    returnType: char
    signature: char *oidc_json_encode(apr_pool_t *pool, const oidc_json_t *json, int
      flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/json.c:282,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/src/json.c:286,1
    - Dst: oidc_json_flags2backend
      Src: /src/mod_auth_openidc/src/json.c:286,1
    - Dst: json_error_code
      Src: /src/mod_auth_openidc/src/json.c:290,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/json.c:291,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/json.c:294,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/src/json.c:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - pool
    - str
    - flags
    - json
    - s_err
    argTypes:
    - apr_pool_t*
    - char*
    - int
    - oidc_json_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 301
    functionName: oidc_json_parse
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 3
    functionsReached:
    - apr_pstrdup
    - apr_pstrndup
    - json_loads
    - apr_psprintf
    - oidc_json_flags2backend
    - json_error_code
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_json_parse(apr_pool_t *pool, const char *str, int flags,
      oidc_json_t **json, char **s_err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_parse
      Src: /src/mod_auth_openidc/src/json.c:313,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/json.c:316,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/json.c:320,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/json.c:324,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/json.c:325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - r
    - str
    - json
    - log_err
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t**
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 331
    functionName: oidc_json_decode_object_err
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - oidc_json_is_object
    - oidc_error
    - oidc_json_decref
    - oidc_json_parse
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_json_decode_object_err(request_rec *r, const char *str,
      oidc_json_t **json, apr_byte_t log_err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decode_object_err
      Src: /src/mod_auth_openidc/src/json.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - str
    - json
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: oidc_json_decode_object
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 43
    functionsReached:
    - oidc_json_decode_object_err
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_json_decode_object(request_rec *r, const char *str,
      oidc_json_t **json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/json.c:341,1
    - Dst: oidc_json_is_null
      Src: /src/mod_auth_openidc/src/json.c:342,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/json.c:343,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/json.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - result
    - key
    - log
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: oidc_json_string_print
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get
    - oidc_json_is_null
    - oidc_error
    - oidc_json_encode
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_json_string_print(request_rec *r, const oidc_json_t
      *result, const char *key, const char *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_string_print
      Src: /src/mod_auth_openidc/src/json.c:355,1
    - Dst: oidc_json_string_print
      Src: /src/mod_auth_openidc/src/json.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - json
    argTypes:
    - request_rec*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 4
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: oidc_json_check_error
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_print
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_json_check_error(request_rec *r, const oidc_json_t
      *json)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/json.c:367,1
    - Dst: oidc_json_check_error
      Src: /src/mod_auth_openidc/src/json.c:371,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/json.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - r
    - str
    - json
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 378
    functionName: oidc_json_decode_and_check_error
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - oidc_json_decode_object
    - oidc_json_check_error
    - oidc_json_decref
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_json_decode_and_check_error(request_rec *r, const char
      *str, oidc_json_t **json)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/json.c:385,1
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/json.c:389,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/json.c:390,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/json.c:391,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/json.c:392,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/json.c:392,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/json.c:395,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/json.c:395,1
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/json.c:400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - r
    - haystack
    - needle
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 401
    functionName: oidc_json_array_has_value
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - oidc_error
    - oidc_json_typeof
    - oidc_json_array_get
    - oidc_json_is_string
    - oidc_json_is_array
    - oidc_json_string_value
    - oidc_json_array_size
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_json_array_has_value(request_rec *r, const oidc_json_t
      *haystack, const char *needle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/json.c:408,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/json.c:410,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/json.c:411,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/json.c:412,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/json.c:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - pool
    - json
    - name
    - value
    - default_value
    argTypes:
    - apr_pool_t*
    - oidc_json_t*
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 416
    functionName: oidc_json_object_get_string
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 3
    functionsReached:
    - oidc_json_object_get
    - oidc_json_is_string
    - apr_pstrdup
    - oidc_json_string_value
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_json_object_get_string(apr_pool_t *pool, const oidc_json_t
      *json, const char *name, char **value,\n\t\t\t\t       const char *default_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/json.c:422,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/json.c:423,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/json.c:426,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/json.c:427,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/json.c:427,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/json.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - pool
    - arr
    - value
    argTypes:
    - apr_pool_t*
    - oidc_json_t*
    - apr_array_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 429
    functionName: oidc_json_string_array_append
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - apr_pstrdup
    - oidc_json_array_get
    - oidc_json_is_string
    - APR_ARRAY_PUSH
    - oidc_json_array_size
    linkageType: ''
    returnType: void
    signature: void oidc_json_string_array_append(apr_pool_t *pool, const oidc_json_t
      *arr, apr_array_header_t *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_copy
      Src: /src/mod_auth_openidc/src/json.c:434,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/json.c:436,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/json.c:437,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/json.c:438,1
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/json.c:438,1
    - Dst: oidc_json_string_array_append
      Src: /src/mod_auth_openidc/src/json.c:439,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - pool
    - json
    - name
    - value
    - default_value
    argTypes:
    - apr_pool_t*
    - oidc_json_t*
    - char*
    - apr_array_header_t**
    - apr_array_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 443
    functionName: oidc_json_object_get_string_array
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - oidc_json_is_array
    - oidc_json_string_array_append
    - oidc_json_object_get
    - apr_array_copy
    - apr_array_make
    - oidc_json_array_size
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_json_object_get_string_array(apr_pool_t *pool, const
      oidc_json_t *json, const char *name,\n\t\t\t\t\t     apr_array_header_t **value,
      const apr_array_header_t *default_value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/json.c:452,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/src/json.c:453,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/json.c:455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - json
    - name
    - value
    - default_value
    argTypes:
    - oidc_json_t*
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 466
    functionName: oidc_json_object_get_int
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 3
    functionsReached:
    - oidc_json_object_get
    - oidc_json_integer_value
    - oidc_json_is_integer
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_json_object_get_int(const oidc_json_t *json, const
      char *name, int *value, const int default_value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/json.c:477,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/src/json.c:478,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/json.c:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - json
    - name
    - value
    - default_value
    argTypes:
    - oidc_json_t*
    - char*
    - oidc_json_int_t*
    - oidc_json_int_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 484
    functionName: oidc_json_object_get_int64
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - oidc_json_object_get
    - oidc_json_integer_value
    - oidc_json_is_integer
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_json_object_get_int64(const oidc_json_t *json, const
      char *name, oidc_json_int_t *value,\n\t\t\t\t      const oidc_json_int_t default_value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/json.c:493,1
    - Dst: oidc_json_is_boolean
      Src: /src/mod_auth_openidc/src/json.c:494,1
    - Dst: oidc_json_is_true
      Src: /src/mod_auth_openidc/src/json.c:495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - json
    - name
    - value
    - default_value
    argTypes:
    - oidc_json_t*
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 500
    functionName: oidc_json_object_get_bool
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - oidc_json_object_get
    - oidc_json_is_boolean
    - oidc_json_is_true
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_json_object_get_bool(const oidc_json_t *json, const
      char *name, int *value, const int default_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/json.c:514,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/json.c:514,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/json.c:515,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/json.c:517,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/json.c:519,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/json.c:520,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/json.c:521,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/json.c:522,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/json.c:525,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/json.c:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - r
    - src
    - dst
    argTypes:
    - request_rec*
    - oidc_json_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 528
    functionName: oidc_json_merge
    functionSourceFile: /src/mod_auth_openidc/src/json.c
    functionUses: 1
    functionsReached:
    - oidc_json_object_iter_next
    - oidc_json_object_iter_key
    - oidc_json_object_iter_value
    - oidc_debug
    - oidc_json_encode
    - oidc_json_object_set
    - oidc_json_object_iter
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_json_merge(request_rec *r, oidc_json_t *src, oidc_json_t
      *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ary
    - ','
    - i
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: APR_ARRAY_IDX
    functionSourceFile: /src/mod_auth_openidc/src/jose.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APR_ARRAY_IDX(ary, i, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ary
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: APR_ARRAY_PUSH
    functionSourceFile: /src/mod_auth_openidc/src/jose.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APR_ARRAY_PUSH(ary, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - err
    - ','
    - msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: oidc_jose_error
    functionSourceFile: /src/mod_auth_openidc/src/jose.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_jose_error(err, msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - err
    - ','
    - msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: oidc_jose_error_openssl
    functionSourceFile: /src/mod_auth_openidc/src/jose.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_jose_error_openssl(err, msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: oidc_jose_e2s
    functionSourceFile: /src/mod_auth_openidc/src/jose.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_jose_e2s(pool, err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:79,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:82,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:85,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:93,1
    - Dst: oidc_util_strnenvcmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:94,1
    - Dst: oidc_util_strnenvcmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:104,1
    - Dst: apr_table_addn
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:108,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - r
    - claim_prefix
    - scrub
    argTypes:
    - request_rec*
    - char*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 116
    functionName: oidc_scrub_request_headers
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - _oidc_strlen
    - apr_table_make
    - apr_table_addn
    - oidc_util_strnenvcmp
    - apr_table_elts
    - apr_hash_get
    linkageType: ''
    returnType: void
    signature: void oidc_scrub_request_headers(request_rec *r, const char *claim_prefix,
      apr_hash_t *scrub)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:122,1
    - Dst: oidc_cfg_claim_prefix_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:124,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:125,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:127,1
    - Dst: oidc_cfg_white_listed_claims_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:128,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:129,1
    - Dst: oidc_cfg_white_listed_claims_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:129,1
    - Dst: apr_hash_overlay
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:130,1
    - Dst: oidc_cfg_white_listed_claims_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:130,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:132,1
    - Dst: oidc_cfg_dir_authn_header_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:136,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:138,1
    - Dst: oidc_scrub_request_headers
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:143,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:149,1
    - Dst: oidc_scrub_request_headers
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 152
    functionName: oidc_scrub_headers
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 4
    functionsReached:
    - oidc_cfg_white_listed_claims_get
    - oidc_warn
    - oidc_scrub_request_headers
    - ap_get_module_config
    - apr_hash_set
    - apr_hash_make
    - oidc_cfg_dir_authn_header_get
    - apr_hash_count
    - apr_hash_overlay
    - oidc_cfg_claim_prefix_get
    - _oidc_strstr
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: void oidc_scrub_headers(request_rec *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:159,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:160,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - cookie
    - strip
    argTypes:
    - char*
    - apr_array_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: oidc_strip_cookies_match
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - APR_ARRAY_IDX
    - _oidc_strlen
    - _oidc_strncmp
    linkageType: ''
    returnType: char
    signature: char *oidc_strip_cookies_match(const char *cookie, const apr_array_header_t
      *strip)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_strip_cookies_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:172,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:173,1
    - Dst: oidc_http_hdr_in_cookie_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:173,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:178,1
    - Dst: apr_array_pstrcat
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:179,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:183,1
    - Dst: oidc_strip_cookies_match
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:192,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:194,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:196,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:201,1
    - Dst: oidc_http_hdr_in_cookie_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 205
    functionName: oidc_strip_cookies
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 1
    functionsReached:
    - apr_pstrdup
    - oidc_strip_cookies_match
    - oidc_http_hdr_in_cookie_get
    - oidc_debug
    - apr_array_pstrcat
    - apr_psprintf
    - oidc_http_hdr_in_cookie_set
    - apr_strtok
    - oidc_cfg_dir_strip_cookies_get
    linkageType: ''
    returnType: void
    signature: void oidc_strip_cookies(request_rec *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:213,1
    - Dst: oidc_metadata_provider_is_valid
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:220,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:221,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:222,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:222,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - r
    - c
    - s_json
    - j_provider
    - decode_only
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_json_t**
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 210
    functionDepth: 5
    functionLinenumber: 210
    functionLinenumberEnd: 229
    functionName: oidc_provider_validate_metadata_str
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_json_decref
    - oidc_json_decode_object
    - oidc_cfg_provider_get
    - oidc_cfg_provider_metadata_url_get
    - oidc_metadata_provider_is_valid
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_provider_validate_metadata_str(request_rec *r, oidc_cfg_t
      *c, const char *s_json,\n\t\t\t\t\t\t      oidc_json_t **j_provider, apr_byte_t
      decode_only)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:240,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:241,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:241,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:242,1
    - Dst: oidc_cache_get_provider
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:246,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:246,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:246,1
    - Dst: oidc_provider_validate_metadata_str
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:249,1
    - Dst: oidc_metadata_provider_retrieve
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:253,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:254,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:254,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:256,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:257,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:257,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:260,1
    - Dst: oidc_provider_validate_metadata_str
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:262,1
    - Dst: oidc_cache_set_provider
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:265,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:266,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:266,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:267,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:267,1
    - Dst: oidc_cfg_provider_metadata_refresh_interval_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:267,1
    - Dst: oidc_cfg_provider_metadata_refresh_interval_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:269,1
    - Dst: oidc_cfg_provider_copy
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:272,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:272,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:274,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:275,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:276,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:276,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:277,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:281,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - r
    - c
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 234
    functionDepth: 6
    functionLinenumber: 234
    functionLinenumberEnd: 284
    functionName: oidc_provider_static_config
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 5
    functionsReached:
    - oidc_error
    - oidc_json_decref
    - oidc_metadata_provider_parse
    - oidc_cfg_provider_metadata_url_get
    - oidc_cfg_provider_get
    - apr_time_now
    - oidc_cfg_provider_metadata_refresh_interval_get
    - oidc_metadata_provider_retrieve
    - oidc_cfg_metadata_dir_get
    - oidc_cache_get_provider
    - oidc_cache_set_provider
    - oidc_cfg_provider_copy
    - oidc_provider_validate_metadata_str
    - apr_time_from_sec
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_provider_static_config(request_rec *r, oidc_cfg_t *c,
      oidc_provider_t **provider)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_provider_static_config
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:294,1
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:298,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:299,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - r
    - c
    - issuer
    - allow_discovery
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 289
    functionDepth: 7
    functionLinenumber: 289
    functionLinenumberEnd: 306
    functionName: oidc_get_provider_for_issuer
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_provider_static_config
    - oidc_cfg_metadata_dir_get
    - oidc_error
    - oidc_metadata_get
    linkageType: ''
    returnType: oidc_provider_t
    signature: "oidc_provider_t *oidc_get_provider_for_issuer(request_rec *r, oidc_cfg_t
      *c, const char *issuer,\n\t\t\t\t\t      apr_byte_t allow_discovery)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_matches_redirect_uri
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:315,1
    - Dst: oidc_is_discovery_response
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:316,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:317,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:319,1
    - Dst: oidc_cfg_dir_preserve_post_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:327,1
    - Dst: oidc_http_hdr_in_content_type_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:330,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:332,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:336,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - r
    - cfg
    - handle_discovery_response
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 339
    functionName: oidc_original_request_method
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 2
    functionsReached:
    - apr_pstrdup
    - oidc_cfg_dir_preserve_post_get
    - oidc_http_hdr_in_content_type_get
    - oidc_util_url_parameter_get
    - oidc_debug
    - oidc_is_discovery_response
    - oidc_util_url_matches_redirect_uri
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: char *oidc_original_request_method(request_rec *r, oidc_cfg_t *cfg,
      apr_byte_t handle_discovery_response)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_pass_info_in_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:347,1
    - Dst: oidc_util_appinfo_set_all
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:355,1
    - Dst: oidc_cfg_claim_prefix_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:355,1
    - Dst: oidc_cfg_claim_delimiter_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:355,1
    - Dst: oidc_cfg_dir_pass_info_encoding_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - r
    - cfg
    - claims
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 359
    functionName: oidc_set_app_claims
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_claim_delimiter_get
    - oidc_cfg_claim_prefix_get
    - oidc_cfg_dir_pass_info_encoding_get
    - oidc_cfg_dir_pass_info_in_get
    - oidc_util_appinfo_set_all
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_set_app_claims(request_rec *r, const oidc_cfg_t *cfg,
      oidc_json_t *claims)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_rfc822_date
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:366,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:367,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:368,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - msg
    - session_expires
    argTypes:
    - request_rec*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 369
    functionName: oidc_log_session_expires
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 1
    functionsReached:
    - apr_time_now
    - oidc_debug
    - apr_time_sec
    - apr_rfc822_date
    linkageType: ''
    returnType: void
    signature: void oidc_log_session_expires(request_rec *r, const char *msg, apr_time_t
      session_expires)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_x_requested_with_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:376,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:377,1
    - Dst: oidc_http_hdr_in_x_requested_with_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:377,1
    - Dst: oidc_http_hdr_in_sec_fetch_mode_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:380,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:381,1
    - Dst: oidc_http_hdr_in_sec_fetch_mode_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:381,1
    - Dst: oidc_http_hdr_in_sec_fetch_dest_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:384,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:385,1
    - Dst: oidc_http_hdr_in_sec_fetch_dest_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:385,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:388,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:389,1
    - Dst: oidc_http_hdr_in_accept_contains
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:390,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 394
    functionName: oidc_is_auth_capable_request
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 1
    functionsReached:
    - _oidc_strnatcasecmp
    - oidc_http_hdr_in_sec_fetch_mode_get
    - oidc_http_hdr_in_accept_contains
    - oidc_http_hdr_in_x_requested_with_get
    - oidc_http_hdr_in_sec_fetch_dest_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_is_auth_capable_request(const request_rec *r)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_unauth_action_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:402,1
    - Dst: oidc_scrub_headers
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:416,1
    - Dst: oidc_cfg_dir_unauth_expr_is_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:427,1
    - Dst: oidc_is_auth_capable_request
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:427,1
    - Dst: oidc_request_authenticate_user
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:435,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:435,1
    - Dst: oidc_cfg_x_forwarded_headers_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:435,1
    - Dst: oidc_cfg_dir_path_auth_request_params_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:436,1
    - Dst: oidc_cfg_dir_path_scope_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 399
    functionDepth: 5
    functionLinenumber: 399
    functionLinenumberEnd: 438
    functionName: oidc_handle_unauthenticated_user
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_scrub_headers
    - oidc_request_authenticate_user
    - oidc_is_auth_capable_request
    - oidc_cfg_dir_unauth_expr_is_set
    - oidc_cfg_dir_path_scope_get
    - oidc_cfg_dir_unauth_action_get
    - oidc_util_url_cur
    - oidc_cfg_dir_path_auth_request_params_get
    - oidc_cfg_x_forwarded_headers_get
    linkageType: ''
    returnType: int
    signature: int oidc_handle_unauthenticated_user(request_rec *r, oidc_cfg_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_session_expires
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:446,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:449,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:450,1
    - Dst: oidc_session_kill
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:451,1
    - Dst: oidc_handle_unauthenticated_user
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:452,1
    - Dst: oidc_log_session_expires
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - r
    - cfg
    - session
    - rc
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 443
    functionDepth: 10
    functionLinenumber: 443
    functionLinenumberEnd: 462
    functionName: oidc_check_max_session_duration
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_session_kill
    - apr_time_now
    - oidc_handle_unauthenticated_user
    - oidc_session_get_session_expires
    - oidc_log_session_expires
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_check_max_session_duration(request_rec *r, oidc_cfg_t
      *cfg, oidc_session_t *session, int *rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:466,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:467,1
    - Dst: oidc_util_url_cur_host
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:468,1
    - Dst: oidc_cfg_x_forwarded_headers_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:468,1
    - Dst: oidc_session_get_cookie_domain
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:469,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:470,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - r
    - cfg
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 479
    functionName: oidc_check_cookie_domain
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 3
    functionsReached:
    - oidc_warn
    - oidc_cfg_cookie_domain_get
    - oidc_util_url_cur_host
    - oidc_session_get_cookie_domain
    - _oidc_strnatcasecmp
    - oidc_cfg_x_forwarded_headers_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_check_cookie_domain(request_rec *r, const oidc_cfg_t
      *cfg, const oidc_session_t *session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:487,1
    - Dst: oidc_session_get_issuer
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:490,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:492,1
    - Dst: oidc_get_provider_for_issuer
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:497,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - r
    - c
    - session
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_provider_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 484
    functionDepth: 8
    functionLinenumber: 484
    functionLinenumberEnd: 506
    functionName: oidc_get_provider_from_session
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 3
    functionsReached:
    - oidc_warn
    - oidc_session_get_issuer
    - oidc_get_provider_for_issuer
    - oidc_error
    - oidc_debug
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_get_provider_from_session(request_rec *r, oidc_cfg_t
      *c, const oidc_session_t *session,\n\t\t\t\t\t  oidc_provider_t **provider)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_idtoken_claims
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:513,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:514,1
    - Dst: oidc_session_get_scope
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:515,1
    - Dst: oidc_request_state_json_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:518,1
    - Dst: oidc_request_state_json_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:521,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - r
    - session
    argTypes:
    - request_rec*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 525
    functionName: oidc_copy_tokens_to_request_state
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_session_get_idtoken_claims
    - oidc_request_state_json_set
    - oidc_session_get_userinfo_claims
    - oidc_session_get_scope
    - oidc_request_state_set
    linkageType: ''
    returnType: void
    signature: void oidc_copy_tokens_to_request_state(request_rec *r, const oidc_session_t
      *session)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_pass_info_in_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:533,1
    - Dst: oidc_cfg_dir_pass_info_encoding_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:534,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:537,1
    - Dst: oidc_cfg_dir_pass_refresh_token_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:538,1
    - Dst: oidc_util_appinfo_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:540,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:545,1
    - Dst: oidc_cfg_dir_pass_access_token_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:546,1
    - Dst: oidc_util_appinfo_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:548,1
    - Dst: oidc_session_get_access_token_type
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:553,1
    - Dst: oidc_cfg_dir_pass_access_token_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:554,1
    - Dst: oidc_util_appinfo_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:556,1
    - Dst: oidc_session_get_access_token_expires2str
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:561,1
    - Dst: oidc_cfg_dir_pass_access_token_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:562,1
    - Dst: oidc_util_appinfo_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:564,1
    - Dst: oidc_session_get_scope
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:569,1
    - Dst: oidc_cfg_dir_pass_access_token_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:570,1
    - Dst: oidc_util_appinfo_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:572,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:580,1
    - Dst: oidc_cfg_session_inactivity_timeout_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:580,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:581,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:583,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:584,1
    - Dst: oidc_session_get_session_new
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:592,1
    - Dst: oidc_session_set_session_new
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:594,1
    - Dst: oidc_log_session_expires
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:598,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 5
    argNames:
    - r
    - cfg
    - session
    - extend_session
    - needs_save
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - apr_byte_t
    - apr_byte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 530
    functionDepth: 4
    functionLinenumber: 530
    functionLinenumberEnd: 599
    functionName: oidc_session_pass_tokens
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 1
    functionsReached:
    - oidc_session_set_session_new
    - oidc_cfg_dir_pass_refresh_token_get
    - oidc_cfg_dir_pass_access_token_get
    - oidc_session_get_access_token_expires2str
    - oidc_cfg_session_inactivity_timeout_get
    - apr_time_now
    - oidc_session_get_access_token_type
    - oidc_session_get_access_token
    - oidc_util_appinfo_set
    - oidc_session_get_refresh_token
    - oidc_cfg_dir_pass_info_encoding_get
    - oidc_cfg_dir_pass_info_in_get
    - oidc_log_session_expires
    - oidc_session_get_session_new
    - oidc_session_get_scope
    - apr_time_from_sec
    linkageType: ''
    returnType: void
    signature: "void oidc_session_pass_tokens(request_rec *r, const oidc_cfg_t *cfg,
      oidc_session_t *session, apr_byte_t extend_session,\n\t\t\t      apr_byte_t
      *needs_save)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_pass_idtoken_as_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:604,1
    - Dst: oidc_cfg_dir_pass_idtoken_as_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:607,1
    - Dst: oidc_set_app_claims
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:609,1
    - Dst: oidc_session_get_idtoken_claims
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:609,1
    - Dst: oidc_cfg_dir_pass_idtoken_as_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:612,1
    - Dst: oidc_util_appinfo_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:614,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:615,1
    - Dst: oidc_session_get_idtoken_claims
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:615,1
    - Dst: oidc_cfg_dir_pass_idtoken_as_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:620,1
    - Dst: oidc_util_appinfo_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:622,1
    - Dst: oidc_session_get_idtoken
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - r
    - cfg
    - session
    - pass_in
    - encoding
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_appinfo_pass_in_t
    - oidc_appinfo_encoding_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 625
    functionName: oidc_idtoken_pass_as
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_set_app_claims
    - oidc_cfg_dir_pass_idtoken_as_get
    - oidc_json_encode
    - oidc_session_get_idtoken_claims
    - oidc_util_appinfo_set
    - oidc_session_get_idtoken
    linkageType: ''
    returnType: void
    signature: "void oidc_idtoken_pass_as(request_rec *r, const oidc_cfg_t *cfg, const
      oidc_session_t *session,\n\t\t\t\t oidc_appinfo_pass_in_t pass_in, oidc_appinfo_encoding_t
      encoding)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:637,1
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:638,1
    - Dst: oidc_cfg_default_slo_url_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:638,1
    - Dst: oidc_session_kill
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:640,1
    - Dst: oidc_handle_unauthenticated_user
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - r
    - cfg
    - session
    - action
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_on_error_action_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 634
    functionDepth: 10
    functionLinenumber: 634
    functionLinenumberEnd: 644
    functionName: oidc_handle_session_refresh_error
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_default_slo_url_get
    - oidc_session_kill
    - oidc_logout_request
    - oidc_handle_unauthenticated_user
    - oidc_util_url_abs
    linkageType: ''
    returnType: int
    signature: "int oidc_handle_session_refresh_error(request_rec *r, oidc_cfg_t *cfg,
      oidc_session_t *session,\n\t\t\t\t\t     oidc_on_error_action_t action)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:652,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:655,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:656,1
    - Dst: oidc_cfg_dir_authn_header_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:659,1
    - Dst: oidc_cfg_dir_pass_info_in_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:661,1
    - Dst: oidc_cfg_dir_pass_info_encoding_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:662,1
    - Dst: oidc_check_cookie_domain
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:665,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:667,1
    - Dst: oidc_scrub_headers
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:676,1
    - Dst: oidc_check_max_session_duration
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:679,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:681,1
    - Dst: oidc_refresh_access_token_before_expiry
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:689,1
    - Dst: oidc_cfg_dir_refresh_access_token_before_expiry_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:690,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:693,1
    - Dst: oidc_cfg_dir_action_on_error_refresh_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:693,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:694,1
    - Dst: oidc_handle_session_refresh_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:695,1
    - Dst: oidc_cfg_dir_action_on_error_refresh_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:696,1
    - Dst: oidc_userinfo_refresh_claims
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:700,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:703,1
    - Dst: oidc_cfg_action_on_userinfo_error_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:703,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:704,1
    - Dst: oidc_handle_session_refresh_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:705,1
    - Dst: oidc_cfg_action_on_userinfo_error_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:706,1
    - Dst: oidc_http_hdr_in_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:712,1
    - Dst: oidc_copy_tokens_to_request_state
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:715,1
    - Dst: oidc_session_pass_tokens
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:718,1
    - Dst: oidc_idtoken_pass_as
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:721,1
    - Dst: oidc_userinfo_pass_as
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:723,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - r
    - cfg
    - session
    - extend_session
    - needs_save
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - apr_byte_t
    - apr_byte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 646
    functionDepth: 11
    functionLinenumber: 646
    functionLinenumberEnd: 727
    functionName: oidc_handle_existing_session
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_scrub_headers
    - oidc_idtoken_pass_as
    - oidc_refresh_access_token_before_expiry
    - oidc_debug
    - oidc_cfg_dir_pass_info_in_get
    - oidc_handle_session_refresh_error
    - oidc_copy_tokens_to_request_state
    - oidc_userinfo_pass_as
    - oidc_cfg_dir_pass_info_encoding_get
    - oidc_cfg_dir_refresh_access_token_before_expiry_get
    - oidc_userinfo_refresh_claims
    - oidc_cfg_dir_action_on_error_refresh_get
    - oidc_check_max_session_duration
    - oidc_http_hdr_in_set
    - oidc_check_cookie_domain
    - apr_pstrdup
    - oidc_cfg_action_on_userinfo_error_get
    - OIDC_METRICS_COUNTER_INC
    - oidc_cfg_dir_authn_header_get
    - oidc_session_pass_tokens
    linkageType: ''
    returnType: int
    signature: "int oidc_handle_existing_session(request_rec *r, oidc_cfg_t *cfg,
      oidc_session_t *session,\n\t\t\t\t\tapr_byte_t extend_session, apr_byte_t *needs_save)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:736,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:737,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:738,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:742,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:742,1
    - Dst: oidc_util_regexp_first_match
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:750,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:752,1
    - Dst: oidc_util_regexp_substitute
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:757,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:760,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - r
    - claim_name
    - reg_exp
    - replace
    - json
    - request_user
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - oidc_json_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 767
    functionName: oidc_get_remote_user
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 3
    functionsReached:
    - oidc_warn
    - oidc_util_regexp_first_match
    - apr_pstrdup
    - oidc_error
    - oidc_json_object_get
    - oidc_util_regexp_substitute
    - oidc_json_is_string
    - oidc_json_string_value
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_get_remote_user(request_rec *r, const char *claim_name,
      const char *reg_exp, const char *replace,\n\t\t\t\tconst oidc_json_t *json,
      char **request_user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:776,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:777,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - r
    - err_str
    - err_desc
    - str
    - desc
    argTypes:
    - request_rec*
    - char**
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 780
    functionName: oidc_validate_redirect_url_fail
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_validate_redirect_url_fail(request_rec *r, char **err_str,
      char **err_desc, const char *str,\n\t\t\t\t\t\t  const char *desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:788,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:788,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:789,1
    - Dst: oidc_util_regexp_first_match
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:790,1
    - Dst: oidc_validate_redirect_url_fail
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:793,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - r
    - allowed
    - url
    - err_str
    - err_desc
    argTypes:
    - request_rec*
    - apr_hash_t*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 796
    functionName: oidc_validate_redirect_url_allowed
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_util_regexp_first_match
    - apr_hash_this
    - oidc_validate_redirect_url_fail
    - apr_hash_next
    - apr_psprintf
    - apr_hash_first
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_validate_redirect_url_allowed(request_rec *r, apr_hash_t
      *allowed, const char *url,\n\t\t\t\t\t\t     char **err_str, char **err_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_cur_host
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:803,1
    - Dst: oidc_cfg_x_forwarded_headers_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:803,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:806,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:806,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:807,1
    - Dst: oidc_validate_redirect_url_fail
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:809,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:811,1
    - Dst: apr_uri_unparse
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - r
    - c
    - uri
    - err_str
    - err_desc
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - apr_uri_t*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 813
    functionName: oidc_validate_redirect_url_host
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_util_url_cur_host
    - oidc_validate_redirect_url_fail
    - apr_pstrcat
    - _oidc_strnatcasecmp
    - apr_psprintf
    - strchr
    - apr_uri_unparse
    - oidc_cfg_x_forwarded_headers_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_validate_redirect_url_host(request_rec *r, const oidc_cfg_t
      *c, apr_uri_t *uri, char **err_str,\n\t\t\t\t\t\t  char **err_desc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:820,1
    - Dst: oidc_validate_redirect_url_fail
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:821,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:823,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:826,1
    - Dst: oidc_validate_redirect_url_fail
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:827,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:829,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:830,1
    - Dst: oidc_validate_redirect_url_fail
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:831,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - r
    - url
    - err_str
    - err_desc
    argTypes:
    - request_rec*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 835
    functionName: oidc_validate_redirect_url_relative
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - _oidc_strstr
    - oidc_validate_redirect_url_fail
    - apr_psprintf
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_validate_redirect_url_relative(request_rec *r, const
      char *url, char **err_str,\n\t\t\t\t\t\t      char **err_desc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:857,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:857,1
    - Dst: oidc_validate_redirect_url_fail
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:858,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:860,1
    - Dst: oidc_util_strcasestr
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:865,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:866,1
    - Dst: oidc_validate_redirect_url_fail
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:868,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:870,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - r
    - url
    - err_str
    - err_desc
    argTypes:
    - request_rec*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 874
    functionName: oidc_validate_redirect_url_chars
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - _oidc_strstr
    - oidc_validate_redirect_url_fail
    - apr_psprintf
    - oidc_util_strcasestr
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_validate_redirect_url_chars(request_rec *r, const char
      *url, char **err_str, char **err_desc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: oidc_validate_redirect_url_fail
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:883,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:884,1
    - Dst: oidc_validate_redirect_url_fail
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:885,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:887,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:888,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:891,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:895,1
    - Dst: oidc_validate_redirect_url_fail
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:896,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:897,1
    - Dst: oidc_cfg_redirect_urls_allowed_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:899,1
    - Dst: oidc_validate_redirect_url_allowed
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:900,1
    - Dst: oidc_cfg_redirect_urls_allowed_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:900,1
    - Dst: oidc_validate_redirect_url_host
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:904,1
    - Dst: oidc_validate_redirect_url_relative
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:908,1
    - Dst: oidc_validate_redirect_url_chars
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:912,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 6
    argNames:
    - r
    - c
    - redirect_to_url
    - scope
    - err_str
    - err_desc
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_redirect_url_scope_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 879
    functionDepth: 3
    functionLinenumber: 879
    functionLinenumberEnd: 913
    functionName: oidc_validate_redirect_url
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 6
    functionsReached:
    - apr_pstrdup
    - _oidc_strlen
    - oidc_validate_redirect_url_allowed
    - oidc_validate_redirect_url_host
    - oidc_cfg_redirect_urls_allowed_get
    - oidc_validate_redirect_url_fail
    - oidc_validate_redirect_url_chars
    - apr_psprintf
    - oidc_validate_redirect_url_relative
    - apr_uri_parse
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_validate_redirect_url(request_rec *r, const oidc_cfg_t
      *c, const char *redirect_to_url,\n\t\t\t\t      oidc_redirect_url_scope_t scope,
      char **err_str, char **err_desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:921,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 952
    functionName: oidc_javascript_implicit
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_debug
    - oidc_util_html_content_prep
    linkageType: ''
    returnType: int
    signature: int oidc_javascript_implicit(request_rec *r, oidc_cfg_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 959
    functionName: oidc_redirect_uri_handle_response_redirect
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_response_authorization_redirect
    linkageType: ''
    returnType: int
    signature: int oidc_redirect_uri_handle_response_redirect(request_rec *r, oidc_cfg_t
      *c, oidc_session_t *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_response_is_post
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 966
    functionName: oidc_redirect_uri_match_response_post
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_proto_response_is_post
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_redirect_uri_match_response_post(request_rec *r, oidc_cfg_t
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_discovery_response
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 973
    functionName: oidc_redirect_uri_handle_discovery_response
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_discovery_response
    linkageType: ''
    returnType: int
    signature: int oidc_redirect_uri_handle_discovery_response(request_rec *r, oidc_cfg_t
      *c, oidc_session_t *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_scrub_headers
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 980
    functionDepth: 3
    functionLinenumber: 980
    functionLinenumberEnd: 986
    functionName: oidc_redirect_uri_handle_in_content_handler
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_scrub_headers
    linkageType: ''
    returnType: int
    signature: int oidc_redirect_uri_handle_in_content_handler(request_rec *r, oidc_cfg_t
      *c, oidc_session_t *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_uri
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 993
    functionName: oidc_redirect_uri_handle_request_uri
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_request_uri
    linkageType: ''
    returnType: int
    signature: int oidc_redirect_uri_handle_request_uri(request_rec *r, oidc_cfg_t
      *c, oidc_session_t *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_revoke_at_cache_remove
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    functionName: oidc_redirect_uri_handle_remove_at_cache
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_revoke_at_cache_remove
    linkageType: ''
    returnType: int
    signature: int oidc_redirect_uri_handle_remove_at_cache(request_rec *r, oidc_cfg_t
      *c, oidc_session_t *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_revoke_session
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1007
    functionName: oidc_redirect_uri_handle_revoke_session
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_revoke_session
    linkageType: ''
    returnType: int
    signature: int oidc_redirect_uri_handle_revoke_session(request_rec *r, oidc_cfg_t
      *c, oidc_session_t *session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1017,1
    - Dst: oidc_handle_existing_session
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1020,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1021,1
    - Dst: apr_pool_userdata_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1025,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1012
    functionDepth: 12
    functionLinenumber: 1012
    functionLinenumberEnd: 1032
    functionName: oidc_redirect_uri_handle_info
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_util_url_parameter_get
    - oidc_handle_existing_session
    - _oidc_strcmp
    - oidc_request_state_set
    - apr_pool_userdata_set
    linkageType: ''
    returnType: int
    signature: int oidc_redirect_uri_handle_info(request_rec *r, oidc_cfg_t *c, oidc_session_t
      *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1039
    functionName: oidc_redirect_uri_match_bare
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_redirect_uri_match_bare(request_rec *r, oidc_cfg_t
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_javascript_implicit
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1041
    functionDepth: 2
    functionLinenumber: 1041
    functionLinenumberEnd: 1043
    functionName: oidc_redirect_uri_handle_implicit
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_javascript_implicit
    linkageType: ''
    returnType: int
    signature: int oidc_redirect_uri_handle_implicit(request_rec *r, oidc_cfg_t *c,
      oidc_session_t *session)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1091,1
    - Dst: oidc_redirect_uri_dispatch_t*::match
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1097,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1098,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1104,1
    - Dst: oidc_redirect_uri_dispatch_t*::handle
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1106,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1109,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1118,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1120,1
    - Dst: oidc_response_authorization_redirect
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1122,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1127,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1129,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1134,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1137
    functionName: oidc_handle_redirect_uri_request
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 16
    functionsReached:
    - oidc_error
    - OIDC_METRICS_COUNTER_INC
    - oidc_util_url_has_parameter
    - OIDC_METRICS_TIMING_START
    - OIDC_METRICS_TIMING_ADD
    - oidc_response_authorization_redirect
    - oidc_redirect_uri_dispatch_t*::match
    - oidc_util_html_send_error
    - apr_psprintf
    - oidc_redirect_uri_dispatch_t*::handle
    linkageType: ''
    returnType: int
    signature: int oidc_handle_redirect_uri_request(request_rec *r, oidc_cfg_t *c,
      oidc_session_t *session)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1159
    functionName: oidc_subrequest_recycle_user
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_debug
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_subrequest_recycle_user(request_rec *r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state_json_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1170,1
    - Dst: oidc_request_state_json_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1176,1
    - Dst: oidc_request_state_json_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1178,1
    - Dst: oidc_request_state_json_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1180,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1182,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1184,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1184,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1189
    functionName: oidc_copy_tokens_from_prev_request_state
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_request_state_json_get
    - oidc_debug
    - oidc_request_state_json_set
    - oidc_request_state_get
    - oidc_request_state_set
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_copy_tokens_from_prev_request_state(request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_subrequest_recycle_user
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1193,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1198,1
    - Dst: oidc_copy_tokens_from_prev_request_state
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1199,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1201,1
    - Dst: oidc_copy_tokens_to_request_state
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1202,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1203,1
    - Dst: oidc_strip_cookies
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1191
    functionDepth: 8
    functionLinenumber: 1191
    functionLinenumberEnd: 1208
    functionName: oidc_check_userid_openidc_subreq
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_session_load
    - oidc_subrequest_recycle_user
    - oidc_copy_tokens_to_request_state
    - oidc_strip_cookies
    - oidc_request_state_get
    - oidc_copy_tokens_from_prev_request_state
    - oidc_session_free
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_check_userid_openidc_subreq(request_rec *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1214,1
    - Dst: apr_pool_userdata_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1218,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1213
    functionDepth: 3
    functionLinenumber: 1213
    functionLinenumberEnd: 1223
    functionName: oidc_check_userid_openidc_redirect_uri
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_handle_redirect_uri_request
    - apr_pool_userdata_get
    - oidc_session_free
    linkageType: ''
    returnType: int
    signature: int oidc_check_userid_openidc_redirect_uri(request_rec *r, oidc_cfg_t
      *c, oidc_session_t *session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_handle_existing_session
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1230,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1231,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1232,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1236,1
    - Dst: oidc_strip_cookies
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1228
    functionDepth: 12
    functionLinenumber: 1228
    functionLinenumberEnd: 1240
    functionName: oidc_check_userid_openidc_existing_session
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_session_save
    - oidc_strip_cookies
    - oidc_session_free
    - oidc_handle_existing_session
    linkageType: ''
    returnType: int
    signature: int oidc_check_userid_openidc_existing_session(request_rec *r, oidc_cfg_t
      *c, oidc_session_t *session)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1247,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1249,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1250,1
    - Dst: ap_is_initial_req
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1256,1
    - Dst: oidc_check_userid_openidc_subreq
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1256,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1261,1
    - Dst: oidc_util_url_matches_redirect_uri
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1264,1
    - Dst: oidc_check_userid_openidc_redirect_uri
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1265,1
    - Dst: oidc_check_userid_openidc_existing_session
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1269,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1271,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1273,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1278,1
    - Dst: oidc_handle_unauthenticated_user
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1245
    functionDepth: 13
    functionLinenumber: 1245
    functionLinenumberEnd: 1282
    functionName: oidc_check_userid_openidc
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - ap_is_initial_req
    - oidc_error
    - oidc_session_load
    - OIDC_METRICS_COUNTER_INC
    - oidc_check_userid_openidc_existing_session
    - oidc_check_userid_openidc_subreq
    - OIDC_METRICS_TIMING_START
    - oidc_check_userid_openidc_redirect_uri
    - OIDC_METRICS_TIMING_ADD
    - oidc_util_url_redirect_uri
    - oidc_handle_unauthenticated_user
    - oidc_util_url_matches_redirect_uri
    - oidc_session_free
    linkageType: ''
    returnType: int
    signature: int oidc_check_userid_openidc(request_rec *r, oidc_cfg_t *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1291,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1293,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1294,1
    - Dst: oidc_scrub_headers
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1300,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1306,1
    - Dst: oidc_check_userid_openidc
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1287
    functionDepth: 14
    functionLinenumber: 1287
    functionLinenumberEnd: 1308
    functionName: oidc_check_mixed_userid_oauth
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_scrub_headers
    - apr_pstrdup
    - oidc_oauth_check_userid
    - oidc_check_userid_openidc
    - oidc_oauth_get_bearer_token
    linkageType: ''
    returnType: int
    signature: int oidc_check_mixed_userid_oauth(request_rec *r, oidc_cfg_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1311,1
    - Dst: oidc_enabled
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1312,1
    - Dst: OIDC_METRICS_TIMING_REQUEST_ADD
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1317
    functionName: oidc_fixups
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 1
    functionsReached:
    - oidc_enabled
    - ap_get_module_config
    - OIDC_METRICS_TIMING_REQUEST_ADD
    linkageType: ''
    returnType: int
    signature: int oidc_fixups(request_rec *r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1324,1
    - Dst: OIDC_METRICS_TIMING_REQUEST_START
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1327,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1330,1
    - Dst: ap_is_initial_req
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1331,1
    - Dst: oidc_enabled
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1333,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1334,1
    - Dst: oidc_util_set_trace_parent
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1338,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1340,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1343,1
    - Dst: ap_auth_type
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1343,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1345,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1346,1
    - Dst: ap_auth_type
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1346,1
    - Dst: oidc_check_userid_openidc
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1347,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1350,1
    - Dst: ap_auth_type
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1350,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1352,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1353,1
    - Dst: ap_auth_type
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1353,1
    - Dst: oidc_oauth_check_userid
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1354,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1357,1
    - Dst: ap_auth_type
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1357,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1359,1
    - Dst: oidc_check_mixed_userid_oauth
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1322
    functionDepth: 15
    functionLinenumber: 1322
    functionLinenumberEnd: 1364
    functionName: oidc_check_user_id
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 15
    functionsReached:
    - ap_auth_type
    - apr_pstrdup
    - ap_is_initial_req
    - ap_get_module_config
    - OIDC_METRICS_COUNTER_INC
    - oidc_check_mixed_userid_oauth
    - oidc_debug
    - OIDC_METRICS_TIMING_REQUEST_START
    - oidc_enabled
    - oidc_check_userid_openidc
    - _oidc_strnatcasecmp
    - oidc_oauth_check_userid
    - oidc_util_set_trace_parent
    linkageType: ''
    returnType: int
    signature: int oidc_check_user_id(request_rec *r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ap_auth_type
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1371,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1374,1
    - Dst: ap_auth_type
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1374,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1377,1
    - Dst: ap_auth_type
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1377,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1380,1
    - Dst: ap_auth_type
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1384
    functionName: oidc_enabled
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 2
    functionsReached:
    - ap_auth_type
    - _oidc_strnatcasecmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_enabled(request_rec *r, oidc_cfg_t *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_thread_mutex_lock
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1397,1
    - Dst: apr_thread_mutex_unlock
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - mode
    - type
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1401
    functionName: oidc_ssl_locking_callback
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - apr_thread_mutex_unlock
    - apr_thread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void oidc_ssl_locking_callback(int mode, int type, const char *file,
      int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_os_thread_current
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1406
    functionName: oidc_ssl_id_callback
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - apr_os_thread_current
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long oidc_ssl_id_callback(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREADID_set_numeric
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1409,1
    - Dst: apr_os_thread_current
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - CRYPTO_THREADID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1410
    functionName: oidc_ssl_id_callback
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - apr_os_thread_current
    - CRYPTO_THREADID_set_numeric
    linkageType: ''
    returnType: void
    signature: void oidc_ssl_id_callback(CRYPTO_THREADID *id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1422,1
    - Dst: oidc_cfg_process_cleanup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1423,1
    - Dst: CRYPTO_get_locking_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1428,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1429,1
    - Dst: CRYPTO_get_id_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1431,1
    - Dst: CRYPTO_set_id_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1432,1
    - Dst: CRYPTO_THREADID_get_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1434,1
    - Dst: CRYPTO_THREADID_set_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1435,1
    - Dst: EVP_cleanup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1440,1
    - Dst: oidc_http_cleanup
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1441,1
    - Dst: ap_log_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1443,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1446
    functionName: oidc_process_cleanup
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREADID_set_callback
    - ap_get_module_config
    - CRYPTO_get_locking_callback
    - EVP_cleanup
    - CRYPTO_set_id_callback
    - CRYPTO_get_id_callback
    - oidc_cfg_process_cleanup
    - CRYPTO_THREADID_get_callback
    - oidc_http_cleanup
    - ap_log_error
    - CRYPTO_set_locking_callback
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_process_cleanup(void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: apr_pool_userdata_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1460,1
    - Dst: apr_pool_userdata_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1462,1
    - Dst: ap_log_error
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1484,1
    - Dst: oidc_jose_version
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1486,1
    - Dst: oidc_util_openssl_version
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1486,1
    - Dst: oidc_http_init
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1490,1
    - Dst: CRYPTO_num_locks
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1493,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1494,1
    - Dst: apr_thread_mutex_create
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1498,1
    - Dst: CRYPTO_get_locking_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1501,1
    - Dst: CRYPTO_get_id_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1501,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1502,1
    - Dst: CRYPTO_set_id_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1503,1
    - Dst: CRYPTO_get_locking_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1506,1
    - Dst: CRYPTO_THREADID_get_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1506,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1507,1
    - Dst: CRYPTO_THREADID_set_callback
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1508,1
    - Dst: apr_pool_cleanup_register
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1514,1
    - Dst: oidc_http_curl_pool_init
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1519,1
    - Dst: oidc_cfg_dir_post_config
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1521,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1526,1
    - Dst: oidc_cfg_post_config
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1527,1
    - Dst: oidc_cfg_check_vhosts
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1532,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - pool
    - p1
    - p2
    - s
    argTypes:
    - apr_pool_t*
    - apr_pool_t*
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1533
    functionName: oidc_post_config
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - apr_pool_cleanup_register
    - ap_log_error
    - CRYPTO_num_locks
    - oidc_jose_version
    - CRYPTO_set_id_callback
    - CRYPTO_get_id_callback
    - apr_pool_userdata_get
    - apr_pool_userdata_set
    - CRYPTO_THREADID_set_callback
    - oidc_cfg_post_config
    - CRYPTO_get_locking_callback
    - CRYPTO_THREADID_get_callback
    - oidc_http_curl_pool_init
    - CRYPTO_set_locking_callback
    - oidc_cfg_dir_post_config
    - oidc_util_openssl_version
    - oidc_http_init
    - apr_thread_mutex_create
    - oidc_cfg_check_vhosts
    - apr_pcalloc
    linkageType: ''
    returnType: int
    signature: int oidc_post_config(apr_pool_t *pool, apr_pool_t *p1, apr_pool_t *p2,
      server_rec *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_expr_parse_cmd
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1542,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cmd
    - require_line
    - parsed_require_line
    argTypes:
    - cmd_parms*
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1550
    functionName: oidc_parse_config
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - apr_pstrcat
    - ap_expr_parse_cmd
    linkageType: ''
    returnType: char
    signature: char *oidc_parse_config(cmd_parms *cmd, const char *require_line, const
      void **parsed_require_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_curl_pool_child_init
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1570,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1572,1
    - Dst: oidc_cfg_child_init
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1566
    functionDepth: 1
    functionLinenumber: 1566
    functionLinenumberEnd: 1576
    functionName: oidc_child_init
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - oidc_http_curl_pool_child_init
    - ap_get_module_config
    - oidc_cfg_child_init
    linkageType: ''
    returnType: void
    signature: void oidc_child_init(apr_pool_t *p, server_rec *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1585,1
    - Dst: oidc_enabled
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1587,1
    - Dst: ap_is_initial_req
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1590,1
    - Dst: apr_pool_userdata_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1594,1
    - Dst: ap_add_input_filter
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1583
    functionDepth: 2
    functionLinenumber: 1583
    functionLinenumberEnd: 1599
    functionName: oidc_filter_in_insert_filter
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - ap_is_initial_req
    - ap_get_module_config
    - apr_pool_userdata_get
    - oidc_enabled
    - ap_add_input_filter
    linkageType: ''
    returnType: void
    signature: void oidc_filter_in_insert_filter(request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pool_userdata_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1614,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1618,1
    - Dst: oidc_http_form_encoded_data
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1619,1
    - Dst: apr_bucket_heap_create
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1620,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1620,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1622,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1624,1
    - Dst: oidc_http_hdr_in_content_length_get
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1626,1
    - Dst: oidc_http_hdr_in_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1627,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1628,1
    - Dst: apr_pool_userdata_set
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - f
    - brigade
    - ctx
    argTypes:
    - ap_filter_t*
    - apr_bucket_brigade*
    - oidc_filter_in_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1610
    functionDepth: 3
    functionLinenumber: 1610
    functionLinenumberEnd: 1631
    functionName: oidc_filter_in_filter_append_post_params
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - apr_bucket_heap_create
    - _oidc_strlen
    - apr_pool_userdata_set
    - apr_pool_userdata_get
    - APR_BRIGADE_INSERT_TAIL
    - oidc_http_hdr_in_set
    - apr_psprintf
    - oidc_http_hdr_in_content_length_get
    - oidc_http_form_encoded_data
    linkageType: ''
    returnType: void
    signature: "void oidc_filter_in_filter_append_post_params(ap_filter_t *f, apr_bucket_brigade
      *brigade,\n\t\t\t\t\t\t     oidc_filter_in_context *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1643,1
    - Dst: apr_brigade_create
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1645,1
    - Dst: APR_BRIGADE_EMPTY
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1649,1
    - Dst: ap_get_brigade
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1650,1
    - Dst: APR_BRIGADE_EMPTY
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1656,1
    - Dst: APR_BRIGADE_FIRST
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1658,1
    - Dst: APR_BUCKET_REMOVE
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1659,1
    - Dst: APR_BUCKET_IS_EOS
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1661,1
    - Dst: oidc_filter_in_filter_append_post_params
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1662,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1663,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1667,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - f
    - brigade
    - mode
    - block
    - nbytes
    argTypes:
    - ap_filter_t*
    - apr_bucket_brigade*
    - ap_input_mode_t
    - apr_read_type_e
    - apr_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1636
    functionDepth: 4
    functionLinenumber: 1636
    functionLinenumberEnd: 1672
    functionName: oidc_filter_in_filter
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - apr_brigade_create
    - oidc_filter_in_filter_append_post_params
    - APR_BRIGADE_FIRST
    - APR_BRIGADE_EMPTY
    - ap_get_brigade
    - APR_BUCKET_REMOVE
    - APR_BUCKET_IS_EOS
    - APR_BRIGADE_INSERT_TAIL
    - apr_palloc
    linkageType: ''
    returnType: apr_status_t
    signature: "apr_status_t oidc_filter_in_filter(ap_filter_t *f, apr_bucket_brigade
      *brigade, ap_input_mode_t mode,\n\t\t\t\t\t  apr_read_type_e block, apr_off_t
      nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_pre_config_init
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1678,1
    - Dst: ap_hook_post_config
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1679,1
    - Dst: ap_hook_child_init
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1680,1
    - Dst: ap_hook_fixups
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1681,1
    - Dst: ap_hook_handler
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1683,1
    - Dst: ap_hook_insert_filter
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1684,1
    - Dst: ap_register_input_filter
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1685,1
    - Dst: ap_hook_check_authn
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1686,1
    - Dst: ap_register_auth_provider
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1687,1
    - Dst: ap_register_auth_provider
      Src: /src/mod_auth_openidc/src/mod_auth_openidc.c:1690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1677
    functionDepth: 1
    functionLinenumber: 1677
    functionLinenumberEnd: 1693
    functionName: oidc_register_hooks
    functionSourceFile: /src/mod_auth_openidc/src/mod_auth_openidc.c
    functionUses: 0
    functionsReached:
    - ap_hook_child_init
    - oidc_pre_config_init
    - ap_hook_insert_filter
    - ap_hook_fixups
    - ap_hook_handler
    - ap_hook_post_config
    - ap_register_input_filter
    - ap_register_auth_provider
    - ap_hook_check_authn
    linkageType: ''
    returnType: void
    signature: void oidc_register_hooks(apr_pool_t *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/src/oauth.c:65,1
    - Dst: oidc_cfg_oauth_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/oauth.c:65,1
    - Dst: oidc_cfg_http_timeout_short_get
      Src: /src/mod_auth_openidc/src/oauth.c:66,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/oauth.c:66,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/oauth.c:67,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/src/oauth.c:71,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - r
    - cfg
    - issuer
    - url
    - j_metadata
    - response
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - oidc_json_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: oidc_oauth_metadata_provider_retrieve
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 2
    functionsReached:
    - oidc_http_get
    - oidc_error
    - oidc_cfg_http_timeout_short_get
    - oidc_cfg_dir_pass_cookies_get
    - oidc_cfg_oauth_ssl_validate_server_get
    - oidc_json_decode_and_check_error
    - oidc_cfg_outgoing_proxy_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_oauth_metadata_provider_retrieve(request_rec *r, oidc_cfg_t
      *cfg, const char *issuer, const char *url,\n\t\t\t\t\t\t oidc_json_t **j_metadata,
      char **response)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_oauth_metadata_url_get
      Src: /src/mod_auth_openidc/src/oauth.c:93,1
    - Dst: oidc_cache_get_oauth_provider
      Src: /src/mod_auth_openidc/src/oauth.c:96,1
    - Dst: oidc_cfg_oauth_metadata_url_get
      Src: /src/mod_auth_openidc/src/oauth.c:96,1
    - Dst: oidc_oauth_metadata_provider_retrieve
      Src: /src/mod_auth_openidc/src/oauth.c:100,1
    - Dst: oidc_cfg_oauth_metadata_url_get
      Src: /src/mod_auth_openidc/src/oauth.c:100,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:102,1
    - Dst: oidc_cfg_oauth_metadata_url_get
      Src: /src/mod_auth_openidc/src/oauth.c:102,1
    - Dst: oidc_cache_set_oauth_provider
      Src: /src/mod_auth_openidc/src/oauth.c:106,1
    - Dst: oidc_cfg_oauth_metadata_url_get
      Src: /src/mod_auth_openidc/src/oauth.c:107,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/oauth.c:108,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/oauth.c:108,1
    - Dst: oidc_cfg_provider_metadata_refresh_interval_get
      Src: /src/mod_auth_openidc/src/oauth.c:108,1
    - Dst: oidc_cfg_provider_metadata_refresh_interval_get
      Src: /src/mod_auth_openidc/src/oauth.c:110,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/oauth.c:114,1
    - Dst: oidc_cfg_request_view
      Src: /src/mod_auth_openidc/src/oauth.c:120,1
    - Dst: oidc_oauth_metadata_provider_parse
      Src: /src/mod_auth_openidc/src/oauth.c:121,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:122,1
    - Dst: oidc_cfg_oauth_metadata_url_get
      Src: /src/mod_auth_openidc/src/oauth.c:122,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/oauth.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 86
    functionDepth: 7
    functionLinenumber: 86
    functionLinenumberEnd: 130
    functionName: oidc_oauth_provider_config
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_json_decref
    - oidc_oauth_metadata_provider_retrieve
    - oidc_json_decode_object
    - apr_time_now
    - oidc_cfg_provider_metadata_refresh_interval_get
    - oidc_oauth_metadata_provider_parse
    - oidc_cfg_oauth_metadata_url_get
    - oidc_cache_get_oauth_provider
    - oidc_cache_set_oauth_provider
    - oidc_cfg_request_view
    - apr_time_from_sec
    linkageType: ''
    returnType: oidc_cfg_t
    signature: oidc_cfg_t *oidc_oauth_provider_config(request_rec *r, oidc_cfg_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:137,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/oauth.c:143,1
    - Dst: oidc_util_table_add_query_encoded_params
      Src: /src/mod_auth_openidc/src/oauth.c:146,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_params_get
      Src: /src/mod_auth_openidc/src/oauth.c:146,1
    - Dst: apr_table_addn
      Src: /src/mod_auth_openidc/src/oauth.c:149,1
    - Dst: oidc_cfg_oauth_introspection_token_param_name_get
      Src: /src/mod_auth_openidc/src/oauth.c:149,1
    - Dst: oidc_cfg_oauth_introspection_client_auth_bearer_token_get
      Src: /src/mod_auth_openidc/src/oauth.c:152,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/oauth.c:153,1
    - Dst: oidc_cfg_oauth_introspection_client_auth_bearer_token_get
      Src: /src/mod_auth_openidc/src/oauth.c:153,1
    - Dst: oidc_cfg_oauth_introspection_client_auth_bearer_token_get
      Src: /src/mod_auth_openidc/src/oauth.c:155,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/src/oauth.c:158,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_auth_get
      Src: /src/mod_auth_openidc/src/oauth.c:158,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_auth_alg_get
      Src: /src/mod_auth_openidc/src/oauth.c:159,1
    - Dst: oidc_cfg_oauth_client_id_get
      Src: /src/mod_auth_openidc/src/oauth.c:160,1
    - Dst: oidc_cfg_oauth_client_secret_get
      Src: /src/mod_auth_openidc/src/oauth.c:160,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/src/oauth.c:161,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_method_get
      Src: /src/mod_auth_openidc/src/oauth.c:166,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/src/oauth.c:167,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/src/oauth.c:167,1
    - Dst: oidc_cfg_oauth_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/oauth.c:168,1
    - Dst: oidc_cfg_http_timeout_long_get
      Src: /src/mod_auth_openidc/src/oauth.c:169,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/oauth.c:169,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/oauth.c:170,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/oauth.c:171,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/src/oauth.c:172,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/src/oauth.c:173,1
    - Dst: oidc_http_post_form
      Src: /src/mod_auth_openidc/src/oauth.c:174,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/src/oauth.c:174,1
    - Dst: oidc_cfg_oauth_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/oauth.c:175,1
    - Dst: oidc_cfg_http_timeout_long_get
      Src: /src/mod_auth_openidc/src/oauth.c:176,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/oauth.c:176,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/oauth.c:177,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/oauth.c:178,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/src/oauth.c:179,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/src/oauth.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - r
    - c
    - token
    - response
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 181
    functionName: oidc_oauth_validate_access_token
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_oauth_introspection_endpoint_tls_client_key_pwd_get
    - oidc_debug
    - apr_table_make
    - oidc_cfg_oauth_client_secret_get
    - oidc_cfg_oauth_introspection_endpoint_tls_client_cert_get
    - oidc_cfg_http_timeout_long_get
    - oidc_proto_token_endpoint_auth
    - oidc_cfg_oauth_introspection_endpoint_auth_get
    - oidc_http_get
    - oidc_http_post_form
    - oidc_cfg_oauth_introspection_endpoint_method_get
    - oidc_cfg_oauth_ssl_validate_server_get
    - oidc_cfg_outgoing_proxy_get
    - oidc_cfg_dir_pass_cookies_get
    - oidc_cfg_oauth_client_id_get
    - oidc_cfg_oauth_introspection_endpoint_params_get
    - oidc_cfg_oauth_introspection_endpoint_tls_client_key_get
    - oidc_cfg_oauth_introspection_endpoint_auth_alg_get
    - oidc_cfg_oauth_introspection_client_auth_bearer_token_get
    - oidc_util_table_add_query_encoded_params
    - apr_table_addn
    - oidc_cfg_oauth_introspection_endpoint_url_get
    - oidc_cfg_oauth_introspection_token_param_name_get
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_oauth_validate_access_token(request_rec *r, oidc_cfg_t
      *c, const char *token, char **response)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_base64_decode
      Src: /src/mod_auth_openidc/src/oauth.c:190,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/oauth.c:193,1
    - Dst: ap_getword_nulls
      Src: /src/mod_auth_openidc/src/oauth.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - auth_line
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: oidc_oauth_token_from_basic
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_util_base64_decode
    - ap_getword_nulls
    - strchr
    linkageType: ''
    returnType: char
    signature: char *oidc_oauth_token_from_basic(request_rec *r, const char *auth_line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_authorization_get
      Src: /src/mod_auth_openidc/src/oauth.c:205,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:212,1
    - Dst: ap_getword
      Src: /src/mod_auth_openidc/src/oauth.c:213,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/oauth.c:215,1
    - Dst: apr_isspace
      Src: /src/mod_auth_openidc/src/oauth.c:217,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/oauth.c:219,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/oauth.c:222,1
    - Dst: oidc_oauth_token_from_basic
      Src: /src/mod_auth_openidc/src/oauth.c:224,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/oauth.c:229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - r
    - accept_token_in
    argTypes:
    - request_rec*
    - oidc_oauth_accept_token_in_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 231
    functionName: oidc_oauth_token_from_auth_header
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - ap_getword
    - apr_pstrdup
    - oidc_debug
    - oidc_oauth_token_from_basic
    - oidc_http_hdr_in_authorization_get
    - _oidc_strnatcasecmp
    - apr_isspace
    linkageType: ''
    returnType: char
    signature: char *oidc_oauth_token_from_auth_header(request_rec *r, oidc_oauth_accept_token_in_t
      accept_token_in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/oauth.c:240,1
    - Dst: oidc_util_read_post_params_reject_dup
      Src: /src/mod_auth_openidc/src/oauth.c:241,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/oauth.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: oidc_oauth_token_from_post
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_util_read_post_params_reject_dup
    - apr_table_make
    - apr_table_get
    linkageType: ''
    returnType: char
    signature: char *oidc_oauth_token_from_post(request_rec *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/oauth.c:251,1
    - Dst: oidc_util_read_form_encoded_params_reject_dup
      Src: /src/mod_auth_openidc/src/oauth.c:252,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/oauth.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: oidc_oauth_token_from_query
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - apr_table_make
    - apr_table_get
    - oidc_util_read_form_encoded_params_reject_dup
    linkageType: ''
    returnType: char
    signature: char *oidc_oauth_token_from_query(request_rec *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_get_cookie
      Src: /src/mod_auth_openidc/src/oauth.c:261,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/oauth.c:263,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/oauth.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - cookie_name
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: oidc_oauth_token_from_cookie
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - apr_pstrdup
    - oidc_http_get_cookie
    linkageType: ''
    returnType: char
    signature: char *oidc_oauth_token_from_cookie(request_rec *r, const char *cookie_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_oauth_accept_token_in_get
      Src: /src/mod_auth_openidc/src/oauth.c:275,1
    - Dst: oidc_cfg_dir_accept_token_in_option_get
      Src: /src/mod_auth_openidc/src/oauth.c:277,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:279,1
    - Dst: oidc_oauth_token_from_auth_header
      Src: /src/mod_auth_openidc/src/oauth.c:284,1
    - Dst: oidc_oauth_token_from_post
      Src: /src/mod_auth_openidc/src/oauth.c:288,1
    - Dst: oidc_oauth_token_from_query
      Src: /src/mod_auth_openidc/src/oauth.c:291,1
    - Dst: oidc_oauth_token_from_cookie
      Src: /src/mod_auth_openidc/src/oauth.c:294,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:297,1
    - Dst: oidc_cfg_dir_accept_oauth_token_in2str
      Src: /src/mod_auth_openidc/src/oauth.c:298,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:303,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/oauth.c:303,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - r
    - access_token
    argTypes:
    - request_rec*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 272
    functionDepth: 5
    functionLinenumber: 272
    functionLinenumberEnd: 305
    functionName: oidc_oauth_get_bearer_token
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 14
    functionsReached:
    - oidc_cfg_dir_oauth_accept_token_in_get
    - oidc_cfg_dir_accept_oauth_token_in2str
    - oidc_util_mask_value
    - oidc_cfg_dir_accept_token_in_option_get
    - oidc_oauth_token_from_cookie
    - oidc_debug
    - oidc_oauth_token_from_query
    - oidc_oauth_token_from_auth_header
    - oidc_oauth_token_from_post
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_oauth_get_bearer_token(request_rec *r, const char **access_token)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:319,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/oauth.c:322,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:326,1
    - Dst: oidc_json_is_number
      Src: /src/mod_auth_openidc/src/oauth.c:337,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:339,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/oauth.c:345,1
    - Dst: oidc_json_number_value
      Src: /src/mod_auth_openidc/src/oauth.c:353,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/oauth.c:355,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/src/oauth.c:362,1
    - Dst: oidc_util_apr_time_add
      Src: /src/mod_auth_openidc/src/oauth.c:364,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/oauth.c:364,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 7
    argNames:
    - r
    - c
    - introspection_response
    - expiry_claim_name
    - expiry_format_absolute
    - expiry_claim_is_mandatory
    - cache_until
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - char*
    - int
    - int
    - apr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 367
    functionName: oidc_oauth_parse_and_cache_token_expiry
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_util_apr_time_add
    - oidc_error
    - oidc_json_object_get
    - apr_time_now
    - oidc_debug
    - oidc_json_is_number
    - oidc_util_apr_time_from_sec
    - oidc_json_number_value
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_oauth_parse_and_cache_token_expiry(request_rec *r,
      oidc_cfg_t *c,\n\t\t\t\t\t\t\t  const oidc_json_t *introspection_response,\n\t\t\t\t\t\t\t
      \ const char *expiry_claim_name, int expiry_format_absolute,\n\t\t\t\t\t\t\t
      \ int expiry_claim_is_mandatory, apr_time_t *cache_until)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_token_introspection_interval_get
      Src: /src/mod_auth_openidc/src/oauth.c:379,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:381,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:385,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/oauth.c:387,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/oauth.c:388,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/oauth.c:389,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/oauth.c:390,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/oauth.c:390,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/oauth.c:390,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/oauth.c:391,1
    - Dst: oidc_cache_set_access_token
      Src: /src/mod_auth_openidc/src/oauth.c:395,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/oauth.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - r
    - c
    - cache_until
    - access_token
    - json
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - apr_time_t
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 400
    functionName: oidc_oauth_cache_access_token
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - apr_time_sec
    - oidc_json_decref
    - apr_time_now
    - oidc_debug
    - oidc_json_encode
    - oidc_json_object
    - oidc_cache_set_access_token
    - oidc_json_integer
    - oidc_json_object_set
    - oidc_cfg_dir_token_introspection_interval_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_oauth_cache_access_token(request_rec *r, oidc_cfg_t
      *c, apr_time_t cache_until,\n\t\t\t\t\t\tconst char *access_token, oidc_json_t
      *json)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_token_introspection_interval_get
      Src: /src/mod_auth_openidc/src/oauth.c:411,1
    - Dst: oidc_cache_get_access_token
      Src: /src/mod_auth_openidc/src/oauth.c:417,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/oauth.c:423,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/oauth.c:429,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/oauth.c:430,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/oauth.c:430,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/oauth.c:431,1
    - Dst: apr_rfc822_date
      Src: /src/mod_auth_openidc/src/oauth.c:435,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/oauth.c:435,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/oauth.c:435,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:436,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/oauth.c:442,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:446,1
    - Dst: oidc_json_copy
      Src: /src/mod_auth_openidc/src/oauth.c:449,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/oauth.c:449,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/oauth.c:451,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - r
    - c
    - access_token
    - json
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 405
    functionDepth: 5
    functionLinenumber: 405
    functionLinenumberEnd: 453
    functionName: oidc_oauth_get_cached_access_token
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_cache_get_access_token
    - apr_time_sec
    - oidc_json_decref
    - oidc_json_copy
    - oidc_json_decode_object
    - oidc_json_object_get
    - apr_time_now
    - oidc_debug
    - apr_rfc822_date
    - oidc_json_integer_value
    - oidc_cfg_dir_token_introspection_interval_get
    - apr_time_from_sec
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_oauth_get_cached_access_token(request_rec *r, oidc_cfg_t
      *c, const char *access_token,\n\t\t\t\t\t\t     oidc_json_t **json)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_is_boolean
      Src: /src/mod_auth_openidc/src/oauth.c:459,1
    - Dst: oidc_json_is_true
      Src: /src/mod_auth_openidc/src/oauth.c:460,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:462,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/oauth.c:466,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/oauth.c:467,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/oauth.c:467,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:469,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/oauth.c:472,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - r
    - active
    argTypes:
    - request_rec*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 477
    functionName: oidc_oauth_introspection_active_is_valid
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_debug
    - oidc_json_is_string
    - oidc_json_is_boolean
    - _oidc_strnatcasecmp
    - oidc_json_string_value
    - oidc_json_is_true
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_oauth_introspection_active_is_valid(request_rec *r,
      const oidc_json_t *active)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/oauth.c:484,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/oauth.c:485,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/oauth.c:485,1
    - Dst: oidc_oauth_introspection_active_is_valid
      Src: /src/mod_auth_openidc/src/oauth.c:488,1
    - Dst: oidc_oauth_parse_and_cache_token_expiry
      Src: /src/mod_auth_openidc/src/oauth.c:490,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/oauth.c:496,1
    - Dst: oidc_cfg_oauth_introspection_token_expiry_claim_name_get
      Src: /src/mod_auth_openidc/src/oauth.c:499,1
    - Dst: oidc_oauth_parse_and_cache_token_expiry
      Src: /src/mod_auth_openidc/src/oauth.c:500,1
    - Dst: oidc_cfg_oauth_introspection_token_expiry_claim_name_get
      Src: /src/mod_auth_openidc/src/oauth.c:501,1
    - Dst: oidc_cfg_oauth_introspection_token_expiry_claim_format_get
      Src: /src/mod_auth_openidc/src/oauth.c:502,1
    - Dst: oidc_cfg_oauth_introspection_token_expiry_claim_required_get
      Src: /src/mod_auth_openidc/src/oauth.c:504,1
    - Dst: oidc_oauth_cache_access_token
      Src: /src/mod_auth_openidc/src/oauth.c:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - r
    - c
    - access_token
    - result
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 514
    functionName: oidc_oauth_introspection_validate_and_cache
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_oauth_parse_and_cache_token_expiry
    - oidc_json_object_get
    - oidc_cfg_oauth_introspection_token_expiry_claim_required_get
    - apr_time_now
    - oidc_oauth_cache_access_token
    - oidc_cfg_oauth_introspection_token_expiry_claim_name_get
    - oidc_cfg_oauth_introspection_token_expiry_claim_format_get
    - apr_time_from_sec
    - oidc_oauth_introspection_active_is_valid
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_oauth_introspection_validate_and_cache(request_rec
      *r, oidc_cfg_t *c, const char *access_token,\n\t\t\t\t\t\t\t      oidc_json_t
      *result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_oauth_validate_access_token
      Src: /src/mod_auth_openidc/src/oauth.c:524,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:525,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/src/oauth.c:530,1
    - Dst: oidc_oauth_introspection_validate_and_cache
      Src: /src/mod_auth_openidc/src/oauth.c:533,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/oauth.c:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - r
    - c
    - access_token
    - result
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 519
    functionDepth: 7
    functionLinenumber: 519
    functionLinenumberEnd: 540
    functionName: oidc_oauth_introspect
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_json_decref
    - oidc_json_decode_and_check_error
    - oidc_oauth_validate_access_token
    - oidc_oauth_introspection_validate_and_cache
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_oauth_introspect(request_rec *r, oidc_cfg_t *c, const
      char *access_token, oidc_json_t **result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/oauth.c:547,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/oauth.c:548,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/oauth.c:553,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/oauth.c:553,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/oauth.c:554,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/oauth.c:554,1
    - Dst: oidc_json_copy
      Src: /src/mod_auth_openidc/src/oauth.c:556,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/oauth.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - result
    - token
    argTypes:
    - oidc_json_t*
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 562
    functionName: oidc_oauth_shape_introspection_token
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_json_is_object
    - oidc_json_decref
    - oidc_json_copy
    - oidc_json_object_get
    - oidc_json_object_set
    linkageType: ''
    returnType: void
    signature: void oidc_oauth_shape_introspection_token(oidc_json_t *result, oidc_json_t
      **token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_oauth_get_cached_access_token
      Src: /src/mod_auth_openidc/src/oauth.c:572,1
    - Dst: oidc_oauth_introspect
      Src: /src/mod_auth_openidc/src/oauth.c:574,1
    - Dst: oidc_oauth_shape_introspection_token
      Src: /src/mod_auth_openidc/src/oauth.c:578,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/oauth.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - r
    - c
    - access_token
    - token
    - response
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_json_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 567
    functionDepth: 8
    functionLinenumber: 567
    functionLinenumberEnd: 584
    functionName: oidc_oauth_resolve_access_token
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_oauth_introspect
    - oidc_json_encode
    - oidc_oauth_shape_introspection_token
    - oidc_oauth_get_cached_access_token
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_oauth_resolve_access_token(request_rec *r, oidc_cfg_t
      *c, const char *access_token,\n\t\t\t\t\t\t  oidc_json_t **token, char **response)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_oauth_verify_aud_values_get
      Src: /src/mod_auth_openidc/src/oauth.c:592,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/oauth.c:599,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:601,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/oauth.c:608,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/oauth.c:610,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/oauth.c:610,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/oauth.c:610,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/oauth.c:612,1
    - Dst: oidc_json_array_has_value
      Src: /src/mod_auth_openidc/src/oauth.c:615,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/oauth.c:615,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:618,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:622,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - r
    - c
    - claims
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 627
    functionName: oidc_oauth_validate_jwt_aud
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_cfg_oauth_verify_aud_values_get
    - oidc_json_object_get
    - APR_ARRAY_IDX
    - oidc_json_array_has_value
    - oidc_json_is_string
    - oidc_json_is_array
    - oidc_json_string_value
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_oauth_validate_jwt_aud(request_rec *r, const oidc_cfg_t
      *c, const oidc_json_t *claims)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_oauth_verify_issuer_get
      Src: /src/mod_auth_openidc/src/oauth.c:633,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/oauth.c:640,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:644,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/src/oauth.c:651,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - r
    - c
    - claims
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 632
    functionDepth: 3
    functionLinenumber: 632
    functionLinenumberEnd: 660
    functionName: oidc_oauth_validate_jwt_iss
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_oauth_verify_issuer_get
    - oidc_json_object_get_string
    - oidc_error
    - oidc_util_issuer_match
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_oauth_validate_jwt_iss(request_rec *r, const oidc_cfg_t
      *c, const oidc_json_t *claims)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_oauth_validate_jwt_iss
      Src: /src/mod_auth_openidc/src/oauth.c:667,1
    - Dst: oidc_oauth_validate_jwt_aud
      Src: /src/mod_auth_openidc/src/oauth.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - r
    - c
    - claims
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 4
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: oidc_oauth_validate_jwt_claims
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_oauth_validate_jwt_iss
    - oidc_oauth_validate_jwt_aud
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_oauth_validate_jwt_claims(request_rec *r, const oidc_cfg_t
      *c, const oidc_json_t *claims)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:687,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/src/oauth.c:688,1
    - Dst: oidc_oauth_get_cached_access_token
      Src: /src/mod_auth_openidc/src/oauth.c:696,1
    - Dst: oidc_oauth_validate_jwt_claims
      Src: /src/mod_auth_openidc/src/oauth.c:698,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/oauth.c:699,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/oauth.c:703,1
    - Dst: oidc_cfg_oauth_decrypt_shared_keys_get
      Src: /src/mod_auth_openidc/src/oauth.c:707,1
    - Dst: oidc_util_key_sets_merge
      Src: /src/mod_auth_openidc/src/oauth.c:709,1
    - Dst: oidc_cfg_oauth_decrypt_shared_keys_get
      Src: /src/mod_auth_openidc/src/oauth.c:709,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/oauth.c:710,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/src/oauth.c:714,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/oauth.c:714,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/oauth.c:714,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/src/oauth.c:717,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/oauth.c:717,1
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/src/oauth.c:721,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:722,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/oauth.c:722,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/oauth.c:723,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/oauth.c:727,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:728,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/src/oauth.c:734,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/oauth.c:735,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:739,1
    - Dst: oidc_cfg_oauth_verify_public_keys_get
      Src: /src/mod_auth_openidc/src/oauth.c:741,1
    - Dst: oidc_cfg_oauth_verify_public_keys_get
      Src: /src/mod_auth_openidc/src/oauth.c:741,1
    - Dst: oidc_cfg_oauth_verify_shared_keys_get
      Src: /src/mod_auth_openidc/src/oauth.c:742,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/oauth.c:742,1
    - Dst: oidc_cfg_oauth_verify_shared_keys_get
      Src: /src/mod_auth_openidc/src/oauth.c:742,1
    - Dst: oidc_cfg_oauth_verify_jwks_uri_get
      Src: /src/mod_auth_openidc/src/oauth.c:743,1
    - Dst: oidc_cfg_oauth_verify_jwks_uri_get
      Src: /src/mod_auth_openidc/src/oauth.c:747,1
    - Dst: oidc_cfg_provider_jwks_uri_refresh_interval_get
      Src: /src/mod_auth_openidc/src/oauth.c:748,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/oauth.c:748,1
    - Dst: oidc_proto_jwt_verify
      Src: /src/mod_auth_openidc/src/oauth.c:750,1
    - Dst: oidc_cfg_oauth_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/oauth.c:750,1
    - Dst: oidc_util_key_sets_merge
      Src: /src/mod_auth_openidc/src/oauth.c:751,1
    - Dst: oidc_cfg_oauth_verify_shared_keys_get
      Src: /src/mod_auth_openidc/src/oauth.c:751,1
    - Dst: oidc_cfg_oauth_verify_public_keys_get
      Src: /src/mod_auth_openidc/src/oauth.c:752,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:754,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/oauth.c:755,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:759,1
    - Dst: oidc_oauth_validate_jwt_claims
      Src: /src/mod_auth_openidc/src/oauth.c:762,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/oauth.c:763,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/oauth.c:770,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/oauth.c:770,1
    - Dst: oidc_oauth_parse_and_cache_token_expiry
      Src: /src/mod_auth_openidc/src/oauth.c:771,1
    - Dst: oidc_oauth_cache_access_token
      Src: /src/mod_auth_openidc/src/oauth.c:773,1
    - Dst: oidc_json_copy
      Src: /src/mod_auth_openidc/src/oauth.c:775,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/oauth.c:778,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 5
    argNames:
    - r
    - c
    - access_token
    - token
    - response
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_json_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 684
    functionDepth: 6
    functionLinenumber: 684
    functionLinenumberEnd: 781
    functionName: oidc_oauth_validate_jwt_access_token
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_proto_jwt_validate
    - apr_time_now
    - oidc_debug
    - oidc_proto_jwt_verify
    - oidc_util_key_symmetric_merge
    - oidc_cfg_oauth_verify_jwks_uri_get
    - oidc_oauth_cache_access_token
    - oidc_oauth_validate_jwt_claims
    - oidc_error
    - oidc_oauth_get_cached_access_token
    - oidc_proto_jwt_header_peek
    - oidc_json_encode
    - oidc_jwk_destroy
    - oidc_cfg_oauth_ssl_validate_server_get
    - oidc_json_decref
    - oidc_cfg_oauth_decrypt_shared_keys_get
    - oidc_cfg_provider_get
    - oidc_util_key_sets_merge
    - oidc_jwt_parse
    - oidc_jose_e2s
    - oidc_util_key_symmetric_create
    - oidc_oauth_parse_and_cache_token_expiry
    - oidc_cfg_provider_client_secret_get
    - oidc_json_copy
    - oidc_cfg_oauth_verify_public_keys_get
    - oidc_cfg_private_keys_get
    - apr_hash_count
    - oidc_jwt_destroy
    - oidc_cfg_oauth_verify_shared_keys_get
    - oidc_cfg_provider_jwks_uri_refresh_interval_get
    - apr_time_from_sec
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_oauth_validate_jwt_access_token(request_rec *r, oidc_cfg_t
      *c, const char *access_token,\n\t\t\t\t\t\t       oidc_json_t **token, char
      **response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/src/oauth.c:789,1
    - Dst: oidc_cfg_oauth_remote_user_claim_name_get
      Src: /src/mod_auth_openidc/src/oauth.c:789,1
    - Dst: oidc_cfg_oauth_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/oauth.c:790,1
    - Dst: oidc_cfg_oauth_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/oauth.c:791,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:792,1
    - Dst: oidc_cfg_oauth_remote_user_claim_name_get
      Src: /src/mod_auth_openidc/src/oauth.c:796,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/oauth.c:800,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/oauth.c:801,1
    - Dst: oidc_cfg_oauth_remote_user_claim_name_get
      Src: /src/mod_auth_openidc/src/oauth.c:802,1
    - Dst: oidc_cfg_oauth_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/oauth.c:803,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/oauth.c:804,1
    - Dst: oidc_cfg_oauth_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/oauth.c:805,1
    - Dst: oidc_cfg_oauth_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/oauth.c:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - r
    - c
    - token
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 809
    functionName: oidc_oauth_set_request_user
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_error
    - oidc_cfg_oauth_remote_user_claim_name_get
    - oidc_cfg_oauth_remote_user_claim_get
    - oidc_debug
    - apr_psprintf
    - oidc_get_remote_user
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_oauth_set_request_user(request_rec *r, const oidc_cfg_t
      *c, const oidc_json_t *token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_subrequest_recycle_user
      Src: /src/mod_auth_openidc/src/oauth.c:816,1
    - Dst: oidc_strip_cookies
      Src: /src/mod_auth_openidc/src/oauth.c:819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 815
    functionDepth: 5
    functionLinenumber: 815
    functionLinenumberEnd: 821
    functionName: oidc_oauth_check_userid_subrequest
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_subrequest_recycle_user
    - oidc_strip_cookies
    linkageType: ''
    returnType: int
    signature: int oidc_oauth_check_userid_subrequest(request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/oauth.c:828,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/oauth.c:829,1
    - Dst: oidc_scrub_headers
      Src: /src/mod_auth_openidc/src/oauth.c:836,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/oauth.c:840,1
    - Dst: oidc_revoke_at_cache_remove
      Src: /src/mod_auth_openidc/src/oauth.c:841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 827
    functionDepth: 3
    functionLinenumber: 827
    functionLinenumberEnd: 843
    functionName: oidc_oauth_check_userid_redirect_uri
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_scrub_headers
    - OIDC_METRICS_COUNTER_INC
    - oidc_util_url_has_parameter
    - oidc_revoke_at_cache_remove
    linkageType: ''
    returnType: int
    signature: int oidc_oauth_check_userid_redirect_uri(request_rec *r, oidc_cfg_t
      *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/src/oauth.c:850,1
    - Dst: oidc_oauth_resolve_access_token
      Src: /src/mod_auth_openidc/src/oauth.c:851,1
    - Dst: oidc_oauth_validate_jwt_access_token
      Src: /src/mod_auth_openidc/src/oauth.c:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - r
    - c
    - access_token
    - claims
    - s_token
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_json_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 848
    functionDepth: 9
    functionLinenumber: 848
    functionLinenumberEnd: 853
    functionName: oidc_oauth_validate_token
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_oauth_validate_jwt_access_token
    - oidc_cfg_oauth_introspection_endpoint_url_get
    - oidc_oauth_resolve_access_token
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_oauth_validate_token(request_rec *r, oidc_cfg_t *c,
      const char *access_token,\n\t\t\t\t\t    oidc_json_t **claims, char **s_token)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_authn_header_get
      Src: /src/mod_auth_openidc/src/oauth.c:860,1
    - Dst: oidc_cfg_dir_pass_info_in_get
      Src: /src/mod_auth_openidc/src/oauth.c:861,1
    - Dst: oidc_cfg_dir_pass_info_encoding_get
      Src: /src/mod_auth_openidc/src/oauth.c:862,1
    - Dst: oidc_http_hdr_in_set
      Src: /src/mod_auth_openidc/src/oauth.c:865,1
    - Dst: oidc_util_appinfo_set_all
      Src: /src/mod_auth_openidc/src/oauth.c:867,1
    - Dst: oidc_cfg_claim_prefix_get
      Src: /src/mod_auth_openidc/src/oauth.c:867,1
    - Dst: oidc_cfg_claim_delimiter_get
      Src: /src/mod_auth_openidc/src/oauth.c:867,1
    - Dst: oidc_util_appinfo_set
      Src: /src/mod_auth_openidc/src/oauth.c:871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - r
    - c
    - claims
    - access_token
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 873
    functionName: oidc_oauth_pass_info_to_app
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_dir_authn_header_get
    - oidc_http_hdr_in_set
    - oidc_cfg_claim_prefix_get
    - oidc_cfg_claim_delimiter_get
    - oidc_util_appinfo_set
    - oidc_cfg_dir_pass_info_encoding_get
    - oidc_cfg_dir_pass_info_in_get
    - oidc_util_appinfo_set_all
    linkageType: ''
    returnType: void
    signature: "void oidc_oauth_pass_info_to_app(request_rec *r, const oidc_cfg_t
      *c, oidc_json_t *claims,\n\t\t\t\t\tconst char *access_token)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ap_is_initial_req
      Src: /src/mod_auth_openidc/src/oauth.c:884,1
    - Dst: oidc_oauth_check_userid_subrequest
      Src: /src/mod_auth_openidc/src/oauth.c:885,1
    - Dst: oidc_util_url_matches_redirect_uri
      Src: /src/mod_auth_openidc/src/oauth.c:886,1
    - Dst: oidc_oauth_check_userid_redirect_uri
      Src: /src/mod_auth_openidc/src/oauth.c:887,1
    - Dst: oidc_oauth_provider_config
      Src: /src/mod_auth_openidc/src/oauth.c:895,1
    - Dst: oidc_oauth_get_bearer_token
      Src: /src/mod_auth_openidc/src/oauth.c:898,1
    - Dst: oidc_scrub_headers
      Src: /src/mod_auth_openidc/src/oauth.c:903,1
    - Dst: oidc_proto_return_www_authenticate
      Src: /src/mod_auth_openidc/src/oauth.c:907,1
    - Dst: oidc_util_set_trace_parent
      Src: /src/mod_auth_openidc/src/oauth.c:911,1
    - Dst: oidc_oauth_validate_token
      Src: /src/mod_auth_openidc/src/oauth.c:914,1
    - Dst: oidc_proto_return_www_authenticate
      Src: /src/mod_auth_openidc/src/oauth.c:915,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/src/oauth.c:916,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:922,1
    - Dst: oidc_proto_return_www_authenticate
      Src: /src/mod_auth_openidc/src/oauth.c:923,1
    - Dst: oidc_request_state_json_set
      Src: /src/mod_auth_openidc/src/oauth.c:929,1
    - Dst: oidc_oauth_set_request_user
      Src: /src/mod_auth_openidc/src/oauth.c:932,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/oauth.c:933,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/oauth.c:934,1
    - Dst: oidc_proto_return_www_authenticate
      Src: /src/mod_auth_openidc/src/oauth.c:935,1
    - Dst: oidc_scrub_headers
      Src: /src/mod_auth_openidc/src/oauth.c:942,1
    - Dst: oidc_oauth_pass_info_to_app
      Src: /src/mod_auth_openidc/src/oauth.c:944,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/oauth.c:947,1
    - Dst: oidc_strip_cookies
      Src: /src/mod_auth_openidc/src/oauth.c:950,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - r
    - c
    - access_token
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 878
    functionDepth: 10
    functionLinenumber: 878
    functionLinenumberEnd: 953
    functionName: oidc_oauth_check_userid
    functionSourceFile: /src/mod_auth_openidc/src/oauth.c
    functionUses: 41
    functionsReached:
    - oidc_scrub_headers
    - oidc_oauth_check_userid_redirect_uri
    - ap_is_initial_req
    - oidc_error
    - oidc_json_decref
    - oidc_oauth_provider_config
    - oidc_proto_return_www_authenticate
    - oidc_util_set_trace_parent
    - oidc_oauth_pass_info_to_app
    - oidc_oauth_check_userid_subrequest
    - oidc_strip_cookies
    - oidc_cfg_oauth_introspection_endpoint_url_get
    - oidc_request_state_json_set
    - oidc_oauth_set_request_user
    - oidc_oauth_validate_token
    - oidc_util_url_matches_redirect_uri
    - oidc_oauth_get_bearer_token
    linkageType: ''
    returnType: int
    signature: int oidc_oauth_check_userid(request_rec *r, oidc_cfg_t *c, const char
      *access_token)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - cfg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: OIDC_METRICS_TIMING_START
    functionSourceFile: /src/mod_auth_openidc/src/metrics.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METRICS_TIMING_START(r, cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - cfg
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: OIDC_METRICS_TIMING_ADD
    functionSourceFile: /src/mod_auth_openidc/src/metrics.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METRICS_TIMING_ADD(r, cfg, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - cfg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: OIDC_METRICS_TIMING_REQUEST_START
    functionSourceFile: /src/mod_auth_openidc/src/metrics.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METRICS_TIMING_REQUEST_START(r, cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - cfg
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: OIDC_METRICS_TIMING_REQUEST_ADD
    functionSourceFile: /src/mod_auth_openidc/src/metrics.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METRICS_TIMING_REQUEST_ADD(r, cfg, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 193
    functionName: OIDC_METRICS_COUNTERS_LIST
    functionSourceFile: /src/mod_auth_openidc/src/metrics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METRICS_COUNTERS_LIST(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metrics.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - type
    - name
    argTypes:
    - apr_pool_t*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: _oidc_metrics_type_name2s
    functionSourceFile: /src/mod_auth_openidc/src/metrics.h
    functionUses: 1
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *_oidc_metrics_type_name2s(apr_pool_t *pool, unsigned int type,
      const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r
    - ','
    - cfg
    - ','
    - type
    - ','
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 229
    functionName: OIDC_METRICS_COUNTER_INC_NAME_VALUE
    functionSourceFile: /src/mod_auth_openidc/src/metrics.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METRICS_COUNTER_INC_NAME_VALUE(r, cfg, type, name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - cfg
    - ','
    - type
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: OIDC_METRICS_COUNTER_INC_VALUE
    functionSourceFile: /src/mod_auth_openidc/src/metrics.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METRICS_COUNTER_INC_VALUE(r, cfg, type, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - cfg
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: OIDC_METRICS_COUNTER_INC
    functionSourceFile: /src/mod_auth_openidc/src/metrics.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METRICS_COUNTER_INC(r, cfg, type)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/src/metadata.c:52,1
    - Dst: oidc_metadata_provider_get
      Src: /src/mod_auth_openidc/src/metadata.c:59,1
    - Dst: oidc_metadata_conf_get
      Src: /src/mod_auth_openidc/src/metadata.c:61,1
    - Dst: oidc_metadata_conf_parse_pre_provider
      Src: /src/mod_auth_openidc/src/metadata.c:66,1
    - Dst: oidc_metadata_provider_parse
      Src: /src/mod_auth_openidc/src/metadata.c:68,1
    - Dst: oidc_metadata_conf_parse
      Src: /src/mod_auth_openidc/src/metadata.c:70,1
    - Dst: oidc_metadata_client_get
      Src: /src/mod_auth_openidc/src/metadata.c:73,1
    - Dst: oidc_metadata_client_parse
      Src: /src/mod_auth_openidc/src/metadata.c:75,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata.c:83,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata.c:85,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata.c:87,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 5
    argNames:
    - r
    - cfg
    - issuer
    - provider
    - allow_discovery
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_provider_t**
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 90
    functionName: oidc_metadata_get
    functionSourceFile: /src/mod_auth_openidc/src/metadata.c
    functionUses: 19
    functionsReached:
    - oidc_json_decref
    - oidc_metadata_provider_parse
    - oidc_metadata_conf_parse
    - oidc_cfg_provider_create
    - oidc_metadata_conf_parse_pre_provider
    - oidc_metadata_provider_get
    - oidc_metadata_client_get
    - oidc_metadata_client_parse
    - oidc_metadata_conf_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_get(request_rec *r, oidc_cfg_t *cfg, const
      char *issuer, oidc_provider_t **provider,\n\t\t\t     apr_byte_t allow_discovery)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata.c:101,1
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/metadata.c:104,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata.c:105,1
    - Dst: apr_dir_open
      Src: /src/mod_auth_openidc/src/metadata.c:110,1
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/metadata.c:110,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata.c:111,1
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/metadata.c:111,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/metadata.c:112,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/metadata.c:117,1
    - Dst: apr_dir_read
      Src: /src/mod_auth_openidc/src/metadata.c:121,1
    - Dst: strrchr
      Src: /src/mod_auth_openidc/src/metadata.c:127,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/metadata.c:131,1
    - Dst: oidc_metadata_filename_to_issuer
      Src: /src/mod_auth_openidc/src/metadata.c:135,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata.c:140,1
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/metadata.c:140,1
    - Dst: oidc_metadata_file_read_json
      Src: /src/mod_auth_openidc/src/metadata.c:143,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata.c:144,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata.c:150,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/src/metadata.c:154,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/metadata.c:156,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/metadata.c:156,1
    - Dst: apr_dir_close
      Src: /src/mod_auth_openidc/src/metadata.c:161,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - r
    - cfg
    - list
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - apr_array_header_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 164
    functionName: oidc_metadata_list
    functionSourceFile: /src/mod_auth_openidc/src/metadata.c
    functionUses: 5
    functionsReached:
    - oidc_error
    - oidc_json_decref
    - apr_strerror
    - APR_ARRAY_PUSH
    - oidc_debug
    - oidc_metadata_get
    - oidc_cfg_provider_issuer_get
    - oidc_cfg_metadata_dir_get
    - apr_dir_close
    - apr_dir_read
    - apr_dir_open
    - apr_array_make
    - apr_psprintf
    - oidc_metadata_file_read_json
    - oidc_json_object_get_string
    - oidc_metadata_filename_to_issuer
    - strrchr
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_metadata_list(request_rec *r, oidc_cfg_t *cfg, apr_array_header_t
      **list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: OIDC_STATIC_ASSERT
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_STATIC_ASSERT(cond, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - __len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: _oidc_memset
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _oidc_memset(b, c, __len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __dst
    - ','
    - __src
    - ','
    - __n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: _oidc_memcpy
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _oidc_memcpy(__dst, __src, __n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - __dst
    - ','
    - __src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: _oidc_strcpy
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _oidc_strcpy(__dst, __src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __dst
    - ','
    - __src
    - ','
    - __n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: _oidc_strncpy
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _oidc_strncpy(__dst, __src, __n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - __len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: _oidc_memset
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _oidc_memset(b, c, __len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __dst
    - ','
    - __src
    - ','
    - __n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: _oidc_memcpy
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _oidc_memcpy(__dst, __src, __n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - __dst
    - ','
    - __src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: _oidc_strcpy
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _oidc_strcpy(__dst, __src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __dst
    - ','
    - __src
    - ','
    - __n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: _oidc_strncpy
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _oidc_strncpy(__dst, __src, __n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/mod_auth_openidc/src/const.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: _oidc_strlen
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 98
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t _oidc_strlen(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/mod_auth_openidc/src/const.h:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: _oidc_strcmp
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 64
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int _oidc_strcmp(const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_strnatcasecmp
      Src: /src/mod_auth_openidc/src/const.h:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: _oidc_strnatcasecmp
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 10
    functionsReached:
    - apr_strnatcasecmp
    linkageType: ''
    returnType: int
    signature: int _oidc_strnatcasecmp(const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/mod_auth_openidc/src/const.h:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: _oidc_strncmp
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 9
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int _oidc_strncmp(const char *a, const char *b, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/mod_auth_openidc/src/const.h:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: _oidc_strstr
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 126
    functionsReached:
    - strstr
    linkageType: ''
    returnType: char
    signature: char *_oidc_strstr(const char *a, const char *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/mod_auth_openidc/src/const.h:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - default_value
    argTypes:
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: _oidc_str_to_time
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 1
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: apr_time_t
    signature: apr_time_t _oidc_str_to_time(const char *s, const apr_time_t default_value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/mod_auth_openidc/src/const.h:123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: _oidc_str_to_int_checked
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t _oidc_str_to_int_checked(const char *s, int *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_str_to_int_checked
      Src: /src/mod_auth_openidc/src/const.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - default_value
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: _oidc_str_to_int
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 7
    functionsReached:
    - _oidc_str_to_int_checked
    linkageType: ''
    returnType: int
    signature: int _oidc_str_to_int(const char *s, const int default_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msec
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: apr_time_from_msec
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: apr_time_from_msec(msec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - level
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: oidc_log
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_log(r, level, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - level
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: oidc_slog
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_slog(s, level, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: oidc_debug
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_debug(r, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: oidc_warn
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_warn(r, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: oidc_info
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_info(r, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: oidc_error
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_error(r, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: oidc_sdebug
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_sdebug(s, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: oidc_swarn
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_swarn(s, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: oidc_serror
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_serror(s, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: STRINGIFY
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: TOSTRING
    functionSourceFile: /src/mod_auth_openidc/src/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOSTRING(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/mod_auth_openidc/src/jose.c:87,1
    - Dst: snprintf
      Src: /src/mod_auth_openidc/src/jose.c:89,1
    - Dst: va_start
      Src: /src/mod_auth_openidc/src/jose.c:91,1
    - Dst: vsnprintf
      Src: /src/mod_auth_openidc/src/jose.c:92,1
    - Dst: va_end
      Src: /src/mod_auth_openidc/src/jose.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - error
    - source
    - line
    - function
    - fmt
    argTypes:
    - oidc_jose_error_t*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: _oidc_jose_error_set
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached:
    - snprintf
    - va_end
    - vsnprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: "void _oidc_jose_error_set(oidc_jose_error_t *error, const char *source,
      const int line, const char *function,\n\t\t\t  const char *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_hash_bytes
      Src: /src/mod_auth_openidc/src/jose.c:103,1
    - Dst: cjose_base64url_encode
      Src: /src/mod_auth_openidc/src/jose.c:109,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:110,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose.c:110,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/src/jose.c:113,1
    - Dst: cjose_get_dealloc
      Src: /src/mod_auth_openidc/src/jose.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - pool
    - openssl_hash_algo
    - input
    - input_len
    - output
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - int
    - char**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: oidc_jose_hash_and_base64url_encode
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 2
    functionsReached:
    - cjose_get_dealloc
    - oidc_cjose_e2s
    - oidc_jose_hash_bytes
    - cjose_base64url_encode
    - oidc_jose_error
    - apr_pstrmemdup
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_hash_and_base64url_encode(apr_pool_t *pool, const
      char *openssl_hash_algo, const char *input,\n\t\t\t\t\t       int input_len,
      char **output, oidc_jose_error_t *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - haystack
    - needle
    argTypes:
    - apr_array_header_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: oidc_jose_array_has_string
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jose_array_has_string(apr_array_header_t *haystack,
      const char *needle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/jose.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 152
    functionName: oidc_jose_jws_supported_algorithms
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 1
    functionsReached:
    - apr_array_make
    linkageType: ''
    returnType: apr_array_header_t
    signature: apr_array_header_t *oidc_jose_jws_supported_algorithms(apr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_array_has_string
      Src: /src/mod_auth_openidc/src/jose.c:158,1
    - Dst: oidc_jose_jws_supported_algorithms
      Src: /src/mod_auth_openidc/src/jose.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - alg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: oidc_jose_jws_algorithm_is_supported
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 1
    functionsReached:
    - oidc_jose_array_has_string
    - oidc_jose_jws_supported_algorithms
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jose_jws_algorithm_is_supported(apr_pool_t *pool, const
      char *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/jose.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: oidc_jose_jwe_supported_algorithms
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 1
    functionsReached:
    - apr_array_make
    linkageType: ''
    returnType: apr_array_header_t
    signature: apr_array_header_t *oidc_jose_jwe_supported_algorithms(apr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_array_has_string
      Src: /src/mod_auth_openidc/src/jose.c:177,1
    - Dst: oidc_jose_jwe_supported_algorithms
      Src: /src/mod_auth_openidc/src/jose.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - alg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: oidc_jose_jwe_algorithm_is_supported
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 1
    functionsReached:
    - oidc_jose_array_has_string
    - oidc_jose_jwe_supported_algorithms
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jose_jwe_algorithm_is_supported(apr_pool_t *pool, const
      char *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/jose.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: oidc_jose_jwe_supported_encryptions
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 1
    functionsReached:
    - apr_array_make
    linkageType: ''
    returnType: apr_array_header_t
    signature: apr_array_header_t *oidc_jose_jwe_supported_encryptions(apr_pool_t
      *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_array_has_string
      Src: /src/mod_auth_openidc/src/jose.c:198,1
    - Dst: oidc_jose_jwe_supported_encryptions
      Src: /src/mod_auth_openidc/src/jose.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - enc
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: oidc_jose_jwe_encryption_is_supported
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 1
    functionsReached:
    - oidc_jose_array_has_string
    - oidc_jose_jwe_supported_encryptions
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jose_jwe_encryption_is_supported(apr_pool_t *pool,
      const char *enc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/jose.c:206,1
    - Dst: json_is_string
      Src: /src/mod_auth_openidc/src/jose.c:208,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose.c:209,1
    - Dst: json_string_value
      Src: /src/mod_auth_openidc/src/jose.c:209,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:211,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - pool
    - json
    - claim_name
    - is_mandatory
    - result
    - err
    argTypes:
    - apr_pool_t*
    - json_t*
    - char*
    - apr_byte_t
    - char**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 220
    functionName: oidc_jose_get_string
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 3
    functionsReached:
    - apr_pstrdup
    - json_is_string
    - json_object_get
    - json_string_value
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_get_string(apr_pool_t *pool, const json_t *json,
      const char *claim_name, apr_byte_t is_mandatory,\n\t\t\t\tchar **result, oidc_jose_error_t
      *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/jose.c:228,1
    - Dst: json_is_number
      Src: /src/mod_auth_openidc/src/jose.c:230,1
    - Dst: json_number_value
      Src: /src/mod_auth_openidc/src/jose.c:231,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:233,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - json
    - claim_name
    - is_mandatory
    - result
    - err
    argTypes:
    - json_t*
    - char*
    - apr_byte_t
    - double*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 242
    functionName: oidc_jose_get_timestamp
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 2
    functionsReached:
    - json_object_get
    - json_is_number
    - json_number_value
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_get_timestamp(const json_t *json, const char
      *claim_name, apr_byte_t is_mandatory, double *result,\n\t\t\t\t   oidc_jose_error_t
      *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BrotliEncoderMaxCompressedSize
      Src: /src/mod_auth_openidc/src/jose.c:255,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose.c:256,1
    - Dst: BrotliEncoderCompress
      Src: /src/mod_auth_openidc/src/jose.c:257,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - pool
    - input
    - input_len
    - output
    - output_len
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - int
    - char**
    - int*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: oidc_jose_brotli_compress
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached:
    - oidc_jose_error
    - apr_pcalloc
    - BrotliEncoderMaxCompressedSize
    - BrotliEncoderCompress
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_brotli_compress(apr_pool_t *pool, const char
      *input, int input_len, char **output,\n\t\t\t\t\t    int *output_len, oidc_jose_error_t
      *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose.c:275,1
    - Dst: BrotliDecoderCreateInstance
      Src: /src/mod_auth_openidc/src/jose.c:278,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:280,1
    - Dst: BrotliDecoderDecompressStream
      Src: /src/mod_auth_openidc/src/jose.c:287,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:293,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:297,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose.c:302,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/jose.c:303,1
    - Dst: BrotliDecoderDestroyInstance
      Src: /src/mod_auth_openidc/src/jose.c:314,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 6
    argNames:
    - pool
    - input
    - input_len
    - output
    - output_len
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - int
    - char**
    - int*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 317
    functionName: oidc_jose_brotli_uncompress
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached:
    - _oidc_memcpy
    - BrotliDecoderDecompressStream
    - apr_pcalloc
    - BrotliDecoderDestroyInstance
    - oidc_jose_error
    - BrotliDecoderCreateInstance
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_brotli_uncompress(apr_pool_t *pool, const char
      *input, int input_len, char **output,\n\t\t\t\t\t      int *output_len, oidc_jose_error_t
      *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: deflateInit2
      Src: /src/mod_auth_openidc/src/jose.c:342,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:344,1
    - Dst: deflateBound
      Src: /src/mod_auth_openidc/src/jose.c:353,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose.c:354,1
    - Dst: deflate
      Src: /src/mod_auth_openidc/src/jose.c:358,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:360,1
    - Dst: deflateEnd
      Src: /src/mod_auth_openidc/src/jose.c:370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 6
    argNames:
    - pool
    - input
    - input_len
    - output
    - output_len
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - int
    - char**
    - int*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 373
    functionName: oidc_jose_zlib_compress
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached:
    - deflate
    - deflateBound
    - deflateInit2
    - apr_pcalloc
    - deflateEnd
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_zlib_compress(apr_pool_t *pool, const char *input,
      int input_len, char **output,\n\t\t\t\t\t  int *output_len, oidc_jose_error_t
      *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose.c:384,1
    - Dst: inflateInit
      Src: /src/mod_auth_openidc/src/jose.c:398,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:400,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:409,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose.c:414,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/jose.c:415,1
    - Dst: inflate
      Src: /src/mod_auth_openidc/src/jose.c:421,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:425,1
    - Dst: inflateEnd
      Src: /src/mod_auth_openidc/src/jose.c:436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 7
    argNames:
    - pool
    - input
    - input_len
    - output
    - output_len
    - capped
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - int
    - char**
    - int*
    - apr_byte_t*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 439
    functionName: oidc_jose_zlib_uncompress
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached:
    - inflate
    - _oidc_memcpy
    - inflateInit
    - apr_pcalloc
    - inflateEnd
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_zlib_uncompress(apr_pool_t *pool, const char
      *input, int input_len, char **output,\n\t\t\t\t\t    int *output_len, apr_byte_t
      *capped, oidc_jose_error_t *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_brotli_compress
      Src: /src/mod_auth_openidc/src/jose.c:449,1
    - Dst: oidc_jose_zlib_compress
      Src: /src/mod_auth_openidc/src/jose.c:451,1
    - Dst: apr_pmemdup
      Src: /src/mod_auth_openidc/src/jose.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - pool
    - input
    - input_len
    - output
    - output_len
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - int
    - char**
    - int*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 457
    functionName: oidc_jose_compress
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 7
    functionsReached:
    - oidc_jose_brotli_compress
    - oidc_jose_zlib_compress
    - apr_pmemdup
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_compress(apr_pool_t *pool, const char *input,
      int input_len, char **output, int *output_len,\n\t\t\t      oidc_jose_error_t
      *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - input
    - input_len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 467
    functionName: oidc_jose_is_zlib
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jose_is_zlib(const char *input, int input_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_is_zlib
      Src: /src/mod_auth_openidc/src/jose.c:476,1
    - Dst: oidc_jose_zlib_uncompress
      Src: /src/mod_auth_openidc/src/jose.c:483,1
    - Dst: oidc_jose_brotli_uncompress
      Src: /src/mod_auth_openidc/src/jose.c:493,1
    - Dst: apr_pmemdup
      Src: /src/mod_auth_openidc/src/jose.c:497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - pool
    - input
    - input_len
    - output
    - output_len
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - int
    - char**
    - int*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 500
    functionName: oidc_jose_uncompress
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 8
    functionsReached:
    - oidc_jose_zlib_uncompress
    - apr_pmemdup
    - oidc_jose_brotli_uncompress
    - oidc_jose_is_zlib
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_uncompress(apr_pool_t *pool, const char *input,
      int input_len, char **output, int *output_len,\n\t\t\t\toidc_jose_error_t *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/mod_auth_openidc/src/jose.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 505
    functionName: EVP_MD_CTX_new
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: EVP_MD_CTX
    signature: EVP_MD_CTX *EVP_MD_CTX_new()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mod_auth_openidc/src/jose.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: EVP_MD_CTX_free
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void EVP_MD_CTX_free(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_version
      Src: /src/mod_auth_openidc/src/jose.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 519
    functionName: oidc_jose_version
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 2
    functionsReached:
    - cjose_version
    linkageType: ''
    returnType: char
    signature: char *oidc_jose_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose.c:526,1
    - Dst: cjose_version
      Src: /src/mod_auth_openidc/src/jose.c:526,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/jose.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 528
    functionName: oidc_jose_version_deprecated
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached:
    - _oidc_strstr
    - apr_pstrdup
    - cjose_version
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jose_version_deprecated(apr_pool_t *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/mod_auth_openidc/src/jose.c:539,1
    - Dst: EVP_MD_CTX_init
      Src: /src/mod_auth_openidc/src/jose.c:540,1
    - Dst: EVP_get_digestbyname
      Src: /src/mod_auth_openidc/src/jose.c:542,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:543,1
    - Dst: EVP_DigestInit_ex
      Src: /src/mod_auth_openidc/src/jose.c:547,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose.c:548,1
    - Dst: EVP_DigestUpdate
      Src: /src/mod_auth_openidc/src/jose.c:552,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose.c:553,1
    - Dst: EVP_DigestFinal
      Src: /src/mod_auth_openidc/src/jose.c:557,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose.c:558,1
    - Dst: apr_pmemdup
      Src: /src/mod_auth_openidc/src/jose.c:562,1
    - Dst: EVP_MD_CTX_free
      Src: /src/mod_auth_openidc/src/jose.c:569,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 7
    argNames:
    - pool
    - s_digest
    - input
    - input_len
    - output
    - output_len
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - unsigned char*
    - unsigned int
    - unsigned char**
    - unsigned int*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 572
    functionName: oidc_jose_hash_bytes
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 3
    functionsReached:
    - EVP_DigestInit_ex
    - EVP_MD_CTX_free
    - apr_pmemdup
    - EVP_DigestFinal
    - EVP_MD_CTX_init
    - EVP_DigestUpdate
    - EVP_get_digestbyname
    - EVP_MD_CTX_new
    - oidc_jose_error_openssl
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_hash_bytes(apr_pool_t *pool, const char *s_digest,
      const unsigned char *input,\n\t\t\t\tunsigned int input_len, unsigned char **output,
      unsigned int *output_len,\n\t\t\t\toidc_jose_error_t *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose.c:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - alg
    - openssl_digest
    - hash_len
    argTypes:
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 595
    functionName: _oidc_jose_alg_to_sha2
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t _oidc_jose_alg_to_sha2(const char *alg, const char **openssl_digest,
      int *hash_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_jose_alg_to_sha2
      Src: /src/mod_auth_openidc/src/jose.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: oidc_jose_alg_to_openssl_digest
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 0
    functionsReached:
    - _oidc_jose_alg_to_sha2
    linkageType: ''
    returnType: char
    signature: char *oidc_jose_alg_to_openssl_digest(const char *alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_alg_to_openssl_digest
      Src: /src/mod_auth_openidc/src/jose.c:612,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose.c:614,1
    - Dst: oidc_jose_hash_bytes
      Src: /src/mod_auth_openidc/src/jose.c:618,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pool
    - alg
    - msg
    - hash
    - hash_len
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - char**
    - unsigned int*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 620
    functionName: oidc_jose_hash_string
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 4
    functionsReached:
    - _oidc_strlen
    - oidc_jose_alg_to_openssl_digest
    - oidc_jose_error
    - oidc_jose_hash_bytes
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_hash_string(apr_pool_t *pool, const char *alg,
      const char *msg, char **hash,\n\t\t\t\t unsigned int *hash_len, oidc_jose_error_t
      *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_jose_alg_to_sha2
      Src: /src/mod_auth_openidc/src/jose.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 629
    functionName: oidc_jose_hash_length
    functionSourceFile: /src/mod_auth_openidc/src/jose.c
    functionUses: 4
    functionsReached:
    - _oidc_jose_alg_to_sha2
    linkageType: ''
    returnType: int
    signature: int oidc_jose_hash_length(const char *alg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/provider.c:50,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/provider.c:52,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/src/metadata/provider.c:58,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/provider.c:59,1
    - Dst: oidc_metadata_valid_string_in_array
      Src: /src/mod_auth_openidc/src/metadata/provider.c:67,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:69,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/provider.c:70,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/provider.c:76,1
    - Dst: oidc_metadata_valid_string_in_array
      Src: /src/mod_auth_openidc/src/metadata/provider.c:84,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/provider.c:86,1
    - Dst: oidc_metadata_is_valid_uri
      Src: /src/mod_auth_openidc/src/metadata/provider.c:94,1
    - Dst: oidc_metadata_is_valid_uri
      Src: /src/mod_auth_openidc/src/metadata/provider.c:99,1
    - Dst: oidc_metadata_is_valid_uri
      Src: /src/mod_auth_openidc/src/metadata/provider.c:104,1
    - Dst: oidc_metadata_is_valid_uri
      Src: /src/mod_auth_openidc/src/metadata/provider.c:109,1
    - Dst: oidc_metadata_is_valid_uri
      Src: /src/mod_auth_openidc/src/metadata/provider.c:114,1
    - Dst: oidc_metadata_valid_string_in_array
      Src: /src/mod_auth_openidc/src/metadata/provider.c:119,1
    - Dst: oidc_cfg_get_valid_endpoint_auth_function
      Src: /src/mod_auth_openidc/src/metadata/provider.c:121,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/provider.c:122,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - r
    - cfg
    - j_provider
    - issuer
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 130
    functionName: oidc_metadata_provider_is_valid
    functionSourceFile: /src/mod_auth_openidc/src/metadata/provider.c
    functionUses: 7
    functionsReached:
    - oidc_warn
    - oidc_error
    - oidc_json_object_get
    - oidc_util_issuer_match
    - oidc_cfg_get_valid_endpoint_auth_function
    - oidc_json_object_get_string
    - oidc_metadata_is_valid_uri
    - oidc_metadata_valid_string_in_array
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_provider_is_valid(request_rec *r, const oidc_cfg_t
      *cfg, const oidc_json_t *j_provider,\n\t\t\t\t\t   const char *issuer)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/src/metadata/provider.c:138,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:141,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:142,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:142,1
    - Dst: oidc_cfg_http_timeout_short_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:143,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:143,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:144,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/metadata/provider.c:145,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/src/metadata/provider.c:149,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/src/metadata/provider.c:152,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/provider.c:153,1
    - Dst: oidc_metadata_provider_is_valid
      Src: /src/mod_auth_openidc/src/metadata/provider.c:158,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata/provider.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - r
    - cfg
    - issuer
    - url
    - j_metadata
    - response
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - oidc_json_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 166
    functionName: oidc_metadata_provider_retrieve
    functionSourceFile: /src/mod_auth_openidc/src/metadata/provider.c
    functionUses: 4
    functionsReached:
    - oidc_http_get
    - oidc_error
    - oidc_json_decref
    - oidc_cfg_http_timeout_short_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_cfg_dir_pass_cookies_get
    - OIDC_METRICS_COUNTER_INC
    - OIDC_METRICS_TIMING_START
    - OIDC_METRICS_TIMING_ADD
    - oidc_metadata_provider_is_valid
    - oidc_json_decode_and_check_error
    - oidc_cfg_outgoing_proxy_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_provider_retrieve(request_rec *r, oidc_cfg_t
      *cfg, const char *issuer, const char *url,\n\t\t\t\t\t   oidc_json_t **j_metadata,
      char **response)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_provider_file_path
      Src: /src/mod_auth_openidc/src/metadata/provider.c:179,1
    - Dst: oidc_cfg_provider_metadata_refresh_interval_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:188,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/src/metadata/provider.c:190,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/metadata/provider.c:194,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/metadata/provider.c:195,1
    - Dst: oidc_cfg_provider_metadata_refresh_interval_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:195,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/provider.c:197,1
    - Dst: oidc_metadata_file_read_json
      Src: /src/mod_auth_openidc/src/metadata/provider.c:201,1
    - Dst: oidc_metadata_provider_is_valid
      Src: /src/mod_auth_openidc/src/metadata/provider.c:203,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/provider.c:207,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/provider.c:213,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/metadata/provider.c:214,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/metadata/provider.c:214,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/provider.c:216,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/provider.c:218,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/metadata/provider.c:219,1
    - Dst: oidc_metadata_provider_retrieve
      Src: /src/mod_auth_openidc/src/metadata/provider.c:222,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/provider.c:224,1
    - Dst: oidc_cfg_provider_metadata_refresh_interval_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:228,1
    - Dst: apr_file_mtime_set
      Src: /src/mod_auth_openidc/src/metadata/provider.c:232,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/metadata/provider.c:232,1
    - Dst: oidc_metadata_provider_is_valid
      Src: /src/mod_auth_openidc/src/metadata/provider.c:236,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata/provider.c:245,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/src/metadata/provider.c:248,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/provider.c:249,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 5
    argNames:
    - r
    - cfg
    - issuer
    - j_provider
    - allow_discovery
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_json_t**
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 172
    functionDepth: 7
    functionLinenumber: 172
    functionLinenumberEnd: 255
    functionName: oidc_metadata_provider_get
    functionSourceFile: /src/mod_auth_openidc/src/metadata/provider.c
    functionUses: 9
    functionsReached:
    - oidc_warn
    - oidc_util_file_write
    - _oidc_strlen
    - oidc_json_decref
    - apr_time_now
    - oidc_cfg_provider_metadata_refresh_interval_get
    - oidc_debug
    - oidc_metadata_provider_is_valid
    - oidc_metadata_provider_retrieve
    - apr_file_mtime_set
    - apr_psprintf
    - oidc_metadata_provider_file_path
    - _oidc_strstr
    - oidc_metadata_file_read_json
    - apr_time_from_sec
    - apr_stat
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_provider_get(request_rec *r, oidc_cfg_t *cfg,
      const char *issuer, oidc_json_t **j_provider,\n\t\t\t\t      apr_byte_t allow_discovery)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:267,1
    - Dst: oidc_metadata_parse_url
      Src: /src/mod_auth_openidc/src/metadata/provider.c:268,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:268,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/provider.c:271,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:276,1
    - Dst: oidc_metadata_parse_url
      Src: /src/mod_auth_openidc/src/metadata/provider.c:282,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - r
    - provider
    - j_provider
    - j_aliases
    - key
    - value
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - oidc_json_t*
    - oidc_json_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 286
    functionName: oidc_metadata_provider_parse_url_mtls
    functionSourceFile: /src/mod_auth_openidc/src/metadata/provider.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get
    - oidc_error
    - oidc_metadata_parse_url
    - oidc_cfg_provider_issuer_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_provider_parse_url_mtls(request_rec *r, const
      oidc_provider_t *provider,\n\t\t\t\t\t\t\tconst oidc_json_t *j_provider, const
      oidc_json_t *j_aliases,\n\t\t\t\t\t\t\tconst char *key, char **value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - j_provider
    - ','
    - j_aliases
    - ','
    - key
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: OIDC_METADATA_PROVIDER_PARSE_URL_MTLS
    functionSourceFile: /src/mod_auth_openidc/src/metadata/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METADATA_PROVIDER_PARSE_URL_MTLS(j_provider, j_aliases, key, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - j_provider
    - ','
    - key
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: OIDC_METADATA_PROVIDER_PARSE_URL
    functionSourceFile: /src/mod_auth_openidc/src/metadata/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METADATA_PROVIDER_PARSE_URL(j_provider, key, member)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:310,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:311,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:312,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:312,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:313,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:317,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:317,1
    - Dst: oidc_proto_profile_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:319,1
    - Dst: oidc_metadata_cert_bound_tokens_enabled
      Src: /src/mod_auth_openidc/src/metadata/provider.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - r
    - cfg
    - j_provider
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 322
    functionName: oidc_metadata_provider_cert_bound_tokens_enabled
    functionSourceFile: /src/mod_auth_openidc/src/metadata/provider.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_cert_bound_tokens_get
    - oidc_metadata_cert_bound_tokens_enabled
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    - oidc_proto_profile_cert_bound_tokens_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_provider_cert_bound_tokens_enabled(request_rec
      *r, oidc_cfg_t *cfg,\n\t\t\t\t\t\t\t\t   const oidc_json_t *j_provider,\n\t\t\t\t\t\t\t\t
      \  const oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:329,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/metadata/provider.c:330,1
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/metadata/provider.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - j_provider
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: oidc_metadata_provider_dpop_supported
    functionSourceFile: /src/mod_auth_openidc/src/metadata/provider.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get
    - oidc_json_array_size
    - oidc_json_is_array
    linkageType: ''
    returnType: int
    signature: int oidc_metadata_provider_dpop_supported(const oidc_json_t *j_provider)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:344,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/provider.c:346,1
    - Dst: OIDC_METADATA_PROVIDER_SET
      Src: /src/mod_auth_openidc/src/metadata/provider.c:347,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:352,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:356,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:357,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:357,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:359,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:360,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:360,1
    - Dst: oidc_metadata_endpoint_auth_select
      Src: /src/mod_auth_openidc/src/metadata/provider.c:361,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/provider.c:364,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:368,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/src/metadata/provider.c:371,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/provider.c:373,1
    - Dst: oidc_metadata_provider_cert_bound_tokens_enabled
      Src: /src/mod_auth_openidc/src/metadata/provider.c:377,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_int_set
      Src: /src/mod_auth_openidc/src/metadata/provider.c:378,1
    - Dst: oidc_metadata_mtls_endpoint_aliases_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:379,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/provider.c:381,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:383,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_int_set
      Src: /src/mod_auth_openidc/src/metadata/provider.c:385,1
    - Dst: oidc_cfg_provider_dpop_supported_int_set
      Src: /src/mod_auth_openidc/src/metadata/provider.c:390,1
    - Dst: oidc_metadata_provider_dpop_supported
      Src: /src/mod_auth_openidc/src/metadata/provider.c:390,1
    - Dst: OIDC_METADATA_PROVIDER_PARSE_URL
      Src: /src/mod_auth_openidc/src/metadata/provider.c:392,1
    - Dst: OIDC_METADATA_PROVIDER_PARSE_URL_MTLS
      Src: /src/mod_auth_openidc/src/metadata/provider.c:393,1
    - Dst: OIDC_METADATA_PROVIDER_PARSE_URL_MTLS
      Src: /src/mod_auth_openidc/src/metadata/provider.c:394,1
    - Dst: OIDC_METADATA_PROVIDER_PARSE_URL_MTLS
      Src: /src/mod_auth_openidc/src/metadata/provider.c:396,1
    - Dst: OIDC_METADATA_PROVIDER_PARSE_URL_MTLS
      Src: /src/mod_auth_openidc/src/metadata/provider.c:398,1
    - Dst: oidc_cfg_provider_jwks_uri_uri_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:402,1
    - Dst: oidc_metadata_parse_url
      Src: /src/mod_auth_openidc/src/metadata/provider.c:403,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:403,1
    - Dst: OIDC_METADATA_PROVIDER_SET
      Src: /src/mod_auth_openidc/src/metadata/provider.c:405,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:408,1
    - Dst: oidc_metadata_parse_url
      Src: /src/mod_auth_openidc/src/metadata/provider.c:409,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:409,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_set
      Src: /src/mod_auth_openidc/src/metadata/provider.c:412,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/provider.c:414,1
    - Dst: OIDC_METADATA_PROVIDER_PARSE_URL_MTLS
      Src: /src/mod_auth_openidc/src/metadata/provider.c:418,1
    - Dst: OIDC_METADATA_PROVIDER_PARSE_URL
      Src: /src/mod_auth_openidc/src/metadata/provider.c:420,1
    - Dst: OIDC_METADATA_PROVIDER_PARSE_URL
      Src: /src/mod_auth_openidc/src/metadata/provider.c:421,1
    - Dst: oidc_metadata_parse_boolean
      Src: /src/mod_auth_openidc/src/metadata/provider.c:425,1
    - Dst: oidc_cfg_provider_backchannel_logout_supported_get
      Src: /src/mod_auth_openidc/src/metadata/provider.c:426,1
    - Dst: OIDC_METADATA_PROVIDER_SET_INT
      Src: /src/mod_auth_openidc/src/metadata/provider.c:427,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - r
    - cfg
    - j_provider
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 430
    functionName: oidc_metadata_provider_parse
    functionSourceFile: /src/mod_auth_openidc/src/metadata/provider.c
    functionUses: 11
    functionsReached:
    - oidc_metadata_provider_dpop_supported
    - oidc_debug
    - OIDC_METADATA_PROVIDER_SET
    - oidc_metadata_parse_boolean
    - oidc_error
    - oidc_cfg_provider_signed_jwks_uri_set
    - oidc_metadata_endpoint_auth_select
    - oidc_cfg_provider_dpop_supported_int_set
    - OIDC_METADATA_PROVIDER_SET_INT
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_cfg_provider_cert_bound_tokens_int_set
    - oidc_cfg_provider_get
    - oidc_cfg_provider_issuer_get
    - OIDC_METADATA_PROVIDER_PARSE_URL
    - OIDC_METADATA_PROVIDER_PARSE_URL_MTLS
    - oidc_metadata_provider_cert_bound_tokens_enabled
    - oidc_cfg_provider_signed_jwks_uri_get
    - oidc_cfg_provider_jwks_uri_uri_get
    - oidc_metadata_parse_url
    - oidc_cfg_provider_client_secret_get
    - oidc_metadata_mtls_endpoint_aliases_get
    - oidc_cfg_provider_token_endpoint_auth_set
    - oidc_json_object_get_string
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    - oidc_cfg_provider_backchannel_logout_supported_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_provider_parse(request_rec *r, oidc_cfg_t
      *cfg, const oidc_json_t *j_provider,\n\t\t\t\t\toidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: OIDC_METADATA_PROVIDER_SET
    functionSourceFile: /src/mod_auth_openidc/src/metadata/internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METADATA_PROVIDER_SET(member, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - ivalue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: OIDC_METADATA_PROVIDER_SET_INT
    functionSourceFile: /src/mod_auth_openidc/src/metadata/internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METADATA_PROVIDER_SET_INT(member, ivalue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - j_conf
    - ','
    - key
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: OIDC_METADATA_CONF_STR
    functionSourceFile: /src/mod_auth_openidc/src/metadata/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METADATA_CONF_STR(j_conf, key, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - j_conf
    - ','
    - key
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 174
    functionName: OIDC_METADATA_CONF_INT
    functionSourceFile: /src/mod_auth_openidc/src/metadata/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METADATA_CONF_INT(j_conf, key, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - j_conf
    - ','
    - key
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: OIDC_METADATA_CONF_BOOL
    functionSourceFile: /src/mod_auth_openidc/src/metadata/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_METADATA_CONF_BOOL(j_conf, key, member)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:46,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:49,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_set
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:51,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:53,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:57,1
    - Dst: oidc_cfg_oauth_verify_jwks_uri_set
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:59,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:61,1
    - Dst: oidc_metadata_endpoint_auth_select
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:66,1
    - Dst: oidc_cfg_oauth_client_secret_get
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:68,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:69,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:70,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_auth_set
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:76,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:78,1
    - Dst: oidc_metadata_cert_bound_tokens_enabled
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:84,1
    - Dst: oidc_proto_profile_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:85,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:85,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_auth_get
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:86,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:87,1
    - Dst: oidc_metadata_mtls_endpoint_aliases_get
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:89,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:91,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_set
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:94,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/oauth.c:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - r
    - c
    - j_provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 101
    functionName: oidc_oauth_metadata_provider_parse
    functionSourceFile: /src/mod_auth_openidc/src/metadata/oauth.c
    functionUses: 6
    functionsReached:
    - oidc_error
    - oidc_metadata_mtls_endpoint_aliases_get
    - oidc_cfg_provider_get
    - oidc_cfg_oauth_client_secret_get
    - oidc_cfg_oauth_introspection_endpoint_auth_set
    - oidc_metadata_endpoint_auth_select
    - oidc_cfg_oauth_introspection_endpoint_tls_client_cert_get
    - oidc_cfg_oauth_introspection_endpoint_url_set
    - oidc_cfg_oauth_verify_jwks_uri_set
    - oidc_metadata_cert_bound_tokens_enabled
    - oidc_json_object_get_string
    - oidc_cfg_oauth_introspection_endpoint_auth_get
    - oidc_proto_profile_cert_bound_tokens_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_oauth_metadata_provider_parse(request_rec *r, oidc_cfg_t
      *c, const oidc_json_t *j_provider)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/metadata/util.c:45,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metadata/util.c:47,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/metadata/util.c:47,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/metadata/util.c:49,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metadata/util.c:51,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/metadata/util.c:51,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metadata/util.c:53,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/metadata/util.c:58,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/metadata/util.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - r
    - issuer
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 63
    functionName: oidc_metadata_issuer_to_filename
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 0
    functionsReached:
    - _oidc_strstr
    - _oidc_strlen
    - apr_pstrdup
    - oidc_http_url_encode
    linkageType: ''
    returnType: char
    signature: char *oidc_metadata_issuer_to_filename(request_rec *r, const char *issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metadata/util.c:69,1
    - Dst: strrchr
      Src: /src/mod_auth_openidc/src/metadata/util.c:70,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/src/metadata/util.c:72,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/util.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - filename
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: oidc_metadata_filename_to_issuer
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 1
    functionsReached:
    - apr_pstrdup
    - apr_psprintf
    - strrchr
    - oidc_http_url_decode
    linkageType: ''
    returnType: char
    signature: char *oidc_metadata_filename_to_issuer(request_rec *r, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/util.c:81,1
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/metadata/util.c:81,1
    - Dst: oidc_metadata_issuer_to_filename
      Src: /src/mod_auth_openidc/src/metadata/util.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - cfg
    - issuer
    - type
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: oidc_metadata_file_path
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_metadata_dir_get
    - oidc_metadata_issuer_to_filename
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: "char *oidc_metadata_file_path(request_rec *r, const oidc_cfg_t *cfg,
      const char *issuer,\n\t\t\t\t\t   const char *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/metadata/util.c:86,1
    - Dst: oidc_metadata_file_path
      Src: /src/mod_auth_openidc/src/metadata/util.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - issuer
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: oidc_metadata_provider_file_path
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 4
    functionsReached:
    - ap_get_module_config
    - oidc_metadata_file_path
    linkageType: ''
    returnType: char
    signature: char *oidc_metadata_provider_file_path(request_rec *r, const char *issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/metadata/util.c:91,1
    - Dst: oidc_metadata_file_path
      Src: /src/mod_auth_openidc/src/metadata/util.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - issuer
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: oidc_metadata_client_file_path
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - oidc_metadata_file_path
    linkageType: ''
    returnType: char
    signature: char *oidc_metadata_client_file_path(request_rec *r, const char *issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/metadata/util.c:96,1
    - Dst: oidc_metadata_file_path
      Src: /src/mod_auth_openidc/src/metadata/util.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - issuer
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: oidc_metadata_conf_path
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - oidc_metadata_file_path
    linkageType: ''
    returnType: char
    signature: char *oidc_metadata_conf_path(request_rec *r, const char *issuer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_file_read
      Src: /src/mod_auth_openidc/src/metadata/util.c:105,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/metadata/util.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - r
    - path
    - result
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: oidc_metadata_file_read_json
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 2
    functionsReached:
    - oidc_json_decode_object
    - oidc_util_file_read
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_metadata_file_read_json(request_rec *r, const char
      *path, oidc_json_t **result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/util.c:117,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/util.c:121,1
    - Dst: oidc_cfg_parse_is_valid_http_url
      Src: /src/mod_auth_openidc/src/metadata/util.c:127,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/util.c:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 7
    argNames:
    - r
    - type
    - issuer
    - json
    - key
    - value
    - is_mandatory
    argTypes:
    - request_rec*
    - char*
    - char*
    - oidc_json_t*
    - char*
    - char**
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 136
    functionName: oidc_metadata_is_valid_uri
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 1
    functionsReached:
    - oidc_warn
    - oidc_json_object_get_string
    - oidc_error
    - oidc_cfg_parse_is_valid_http_url
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_is_valid_uri(request_rec *r, const char *type,
      const char *issuer, const oidc_json_t *json,\n\t\t\t\t      const char *key,
      char **value, apr_byte_t is_mandatory)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/metadata/util.c:145,1
    - Dst: valid_function
      Src: /src/mod_auth_openidc/src/metadata/util.c:147,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/metadata/util.c:147,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/metadata/util.c:155,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/metadata/util.c:155,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metadata/util.c:156,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/metadata/util.c:156,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metadata/util.c:161,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/metadata/util.c:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - pool
    - elem
    - valid_function
    - value
    - preference
    - found
    argTypes:
    - apr_pool_t*
    - oidc_json_t*
    - oidc_valid_function_t
    - char**
    - char*
    - apr_byte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 164
    functionName: oidc_metadata_array_string_apply
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - valid_function
    - oidc_json_is_string
    - oidc_json_string_value
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_array_string_apply(apr_pool_t *pool, const
      oidc_json_t *elem,\n\t\t\t\t\t\t   oidc_valid_function_t valid_function, char
      **value,\n\t\t\t\t\t\t   const char *preference, apr_byte_t *found)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metadata/util.c:175,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/metadata/util.c:176,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/util.c:178,1
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/metadata/util.c:183,1
    - Dst: oidc_metadata_array_string_apply
      Src: /src/mod_auth_openidc/src/metadata/util.c:184,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/metadata/util.c:184,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/util.c:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 7
    argNames:
    - pool
    - json
    - key
    - valid_function
    - value
    - optional
    - preference
    argTypes:
    - apr_pool_t*
    - oidc_json_t*
    - char*
    - oidc_valid_function_t
    - char**
    - apr_byte_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 193
    functionName: oidc_metadata_valid_string_in_array
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 1
    functionsReached:
    - oidc_metadata_array_string_apply
    - oidc_json_array_get
    - oidc_json_object_get
    - apr_psprintf
    - oidc_json_is_array
    - oidc_json_array_size
    linkageType: ''
    returnType: char
    signature: "char *oidc_metadata_valid_string_in_array(apr_pool_t *pool, const
      oidc_json_t *json, const char *key,\n\t\t\t\t\t\toidc_valid_function_t valid_function,
      char **value, apr_byte_t optional,\n\t\t\t\t\t\tconst char *preference)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_valid_string_in_array
      Src: /src/mod_auth_openidc/src/metadata/util.c:202,1
    - Dst: oidc_cfg_get_valid_endpoint_auth_function
      Src: /src/mod_auth_openidc/src/metadata/util.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 7
    argNames:
    - r
    - cfg
    - j_provider
    - key
    - b_secret
    - b_cert
    - value
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - char*
    - apr_byte_t
    - apr_byte_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: oidc_metadata_endpoint_auth_select
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_get_valid_endpoint_auth_function
    - oidc_metadata_valid_string_in_array
    linkageType: ''
    returnType: char
    signature: "char *oidc_metadata_endpoint_auth_select(request_rec *r, const oidc_cfg_t
      *cfg, const oidc_json_t *j_provider,\n\t\t\t\t\t       const char *key, apr_byte_t
      b_secret, apr_byte_t b_cert, char **value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_endpoint_auth_is_mtls
      Src: /src/mod_auth_openidc/src/metadata/util.c:215,1
    - Dst: oidc_metadata_parse_boolean
      Src: /src/mod_auth_openidc/src/metadata/util.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - r
    - j_provider
    - mode
    - auth
    - b_cert
    argTypes:
    - request_rec*
    - oidc_json_t*
    - oidc_cert_bound_tokens_t
    - char*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 228
    functionName: oidc_metadata_cert_bound_tokens_enabled
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 2
    functionsReached:
    - oidc_metadata_parse_boolean
    - oidc_cfg_endpoint_auth_is_mtls
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_cert_bound_tokens_enabled(request_rec *r,
      const oidc_json_t *j_provider,\n\t\t\t\t\t\t   oidc_cert_bound_tokens_t mode,
      const char *auth, apr_byte_t b_cert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metadata/util.c:235,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/metadata/util.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - j_provider
    argTypes:
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: oidc_metadata_mtls_endpoint_aliases_get
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 2
    functionsReached:
    - oidc_json_object_get
    - oidc_json_is_object
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_metadata_mtls_endpoint_aliases_get(const oidc_json_t
      *j_provider)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_bool
      Src: /src/mod_auth_openidc/src/metadata/util.c:246,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/util.c:247,1
    - Dst: oidc_cfg_parse_boolean
      Src: /src/mod_auth_openidc/src/metadata/util.c:249,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/util.c:251,1
    - Dst: oidc_json_object_get_int
      Src: /src/mod_auth_openidc/src/metadata/util.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - r
    - json
    - key
    - value
    - default_value
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: oidc_metadata_parse_boolean
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 2
    functionsReached:
    - oidc_warn
    - oidc_json_object_get_int
    - oidc_cfg_parse_boolean
    - oidc_json_object_get_bool
    - oidc_json_object_get_string
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_parse_boolean(request_rec *r, const oidc_json_t
      *json, const char *key, int *value,\n\t\t\t\t int default_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_is_valid_uri
      Src: /src/mod_auth_openidc/src/metadata/util.c:267,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metadata/util.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 7
    argNames:
    - r
    - type
    - issuer
    - json
    - key
    - value
    - default_value
    argTypes:
    - request_rec*
    - char*
    - char*
    - oidc_json_t*
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: oidc_metadata_parse_url
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 2
    functionsReached:
    - apr_pstrdup
    - oidc_metadata_is_valid_uri
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_parse_url(request_rec *r, const char *type, const
      char *issuer, const oidc_json_t *json,\n\t\t\t     const char *key, char **value,
      const char *default_value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metadata/util.c:282,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/metadata/util.c:286,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/util.c:287,1
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/metadata/util.c:292,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/metadata/util.c:294,1
    - Dst: oidc_jwk_parse_json
      Src: /src/mod_auth_openidc/src/metadata/util.c:296,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/util.c:297,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/metadata/util.c:297,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/metadata/util.c:302,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/metadata/util.c:303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - r
    - json
    - jwk_list
    argTypes:
    - request_rec*
    - oidc_json_t*
    - apr_array_header_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 305
    functionName: oidc_metadata_get_jwks
    functionSourceFile: /src/mod_auth_openidc/src/metadata/util.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - apr_array_make
    - oidc_error
    - oidc_json_array_get
    - oidc_json_object_get
    - oidc_jwk_parse_json
    - oidc_jose_e2s
    - oidc_json_is_array
    - APR_ARRAY_PUSH
    - oidc_json_array_size
    linkageType: ''
    returnType: void
    signature: void oidc_metadata_get_jwks(request_rec *r, const oidc_json_t *json,
      apr_array_header_t **jwk_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jwks_uri
    argTypes:
    - oidc_jwks_uri_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: oidc_metadata_jwks_cache_key
    functionSourceFile: /src/mod_auth_openidc/src/metadata/jwks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_metadata_jwks_cache_key(const oidc_jwks_uri_t *jwks_uri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:69,1
    - Dst: _oidc_str_to_int_checked
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:75,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: oidc_metadata_jwks_forced_refresh_interval
    functionSourceFile: /src/mod_auth_openidc/src/metadata/jwks.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - _oidc_str_to_int_checked
    - apr_table_get
    linkageType: ''
    returnType: int
    signature: int oidc_metadata_jwks_forced_refresh_interval(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:89,1
    - Dst: oidc_metadata_jwks_cache_key
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - jwks_uri
    argTypes:
    - request_rec*
    - oidc_jwks_uri_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: oidc_metadata_jwks_forced_refresh_key
    functionSourceFile: /src/mod_auth_openidc/src/metadata/jwks.c
    functionUses: 0
    functionsReached:
    - apr_pstrcat
    - oidc_metadata_jwks_cache_key
    linkageType: ''
    returnType: char
    signature: char *oidc_metadata_jwks_forced_refresh_key(request_rec *r, const oidc_jwks_uri_t
      *jwks_uri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_jwks_forced_refresh_interval
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:102,1
    - Dst: oidc_cache_get_jwks
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:104,1
    - Dst: oidc_metadata_jwks_forced_refresh_key
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:104,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - jwks_uri
    argTypes:
    - request_rec*
    - oidc_jwks_uri_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 111
    functionName: oidc_metadata_jwks_forced_refresh_throttled
    functionSourceFile: /src/mod_auth_openidc/src/metadata/jwks.c
    functionUses: 3
    functionsReached:
    - oidc_warn
    - oidc_metadata_jwks_forced_refresh_interval
    - oidc_cache_get_jwks
    - oidc_metadata_jwks_forced_refresh_key
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_metadata_jwks_forced_refresh_throttled(request_rec
      *r, const oidc_jwks_uri_t *jwks_uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_jwks_forced_refresh_interval
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:116,1
    - Dst: oidc_cache_set_jwks
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:121,1
    - Dst: oidc_metadata_jwks_forced_refresh_key
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:121,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:122,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - jwks_uri
    argTypes:
    - request_rec*
    - oidc_jwks_uri_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: oidc_metadata_jwks_forced_refresh_stamp
    functionSourceFile: /src/mod_auth_openidc/src/metadata/jwks.c
    functionUses: 0
    functionsReached:
    - oidc_metadata_jwks_forced_refresh_interval
    - oidc_metadata_jwks_forced_refresh_key
    - apr_time_now
    - oidc_cache_set_jwks
    - apr_time_from_sec
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_metadata_jwks_forced_refresh_stamp(request_rec *r,
      const oidc_jwks_uri_t *jwks_uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:130,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:131,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - r
    - url
    - j_jwks
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: oidc_metadata_jwks_is_valid
    functionSourceFile: /src/mod_auth_openidc/src/metadata/jwks.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get
    - oidc_error
    - oidc_json_is_array
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_metadata_jwks_is_valid(request_rec *r, const char *url,
      const oidc_json_t *j_jwks)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:150,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:153,1
    - Dst: oidc_cfg_http_timeout_long_get
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:154,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:154,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:155,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:156,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:160,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:166,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:168,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:170,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:172,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:173,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:175,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:175,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:176,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:177,1
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:181,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:182,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:182,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:186,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:188,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:189,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:189,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:190,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:194,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:195,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:199,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:202,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:206,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:207,1
    - Dst: oidc_metadata_jwks_is_valid
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:212,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:214,1
    - Dst: oidc_cache_set_jwks
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:220,1
    - Dst: oidc_metadata_jwks_cache_key
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:220,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:221,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:221,1
    - Dst: oidc_cfg_jwks_uri_refresh_interval_get
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:221,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 5
    argNames:
    - r
    - cfg
    - jwks_uri
    - ssl_validate_server
    - j_jwks
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_jwks_uri_t*
    - int
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 143
    functionDepth: 6
    functionLinenumber: 143
    functionLinenumberEnd: 224
    functionName: oidc_metadata_jwks_retrieve_and_cache
    functionSourceFile: /src/mod_auth_openidc/src/metadata/jwks.c
    functionUses: 0
    functionsReached:
    - apr_hash_set
    - oidc_proto_jwt_validate
    - apr_time_now
    - oidc_debug
    - oidc_metadata_jwks_cache_key
    - oidc_cfg_http_timeout_long_get
    - oidc_http_get
    - oidc_metadata_jwks_is_valid
    - oidc_error
    - oidc_cache_set_jwks
    - oidc_cfg_jwks_uri_refresh_interval_get
    - oidc_cfg_outgoing_proxy_get
    - oidc_json_decref
    - oidc_cfg_dir_pass_cookies_get
    - APR_ARRAY_IDX
    - OIDC_METRICS_TIMING_START
    - OIDC_METRICS_TIMING_ADD
    - oidc_jwt_parse
    - oidc_jose_e2s
    - oidc_json_decode_and_check_error
    - oidc_jwt_verify
    - apr_hash_make
    - OIDC_METRICS_COUNTER_INC
    - apr_hash_count
    - oidc_jwt_destroy
    - apr_psprintf
    - apr_time_from_sec
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_jwks_retrieve_and_cache(request_rec *r, oidc_cfg_t
      *cfg,\n\t\t\t\t\t\t\tconst oidc_jwks_uri_t *jwks_uri, int ssl_validate_server,\n\t\t\t\t\t\t\toidc_json_t
      **j_jwks)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:237,1
    - Dst: oidc_metadata_jwks_forced_refresh_throttled
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:241,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:243,1
    - Dst: oidc_metadata_jwks_forced_refresh_interval
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:246,1
    - Dst: oidc_metadata_jwks_forced_refresh_stamp
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:248,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:250,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:255,1
    - Dst: oidc_metadata_jwks_retrieve_and_cache
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:256,1
    - Dst: oidc_cache_get_jwks
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:264,1
    - Dst: oidc_metadata_jwks_cache_key
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:264,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:265,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:266,1
    - Dst: oidc_metadata_jwks_retrieve_and_cache
      Src: /src/mod_auth_openidc/src/metadata/jwks.c:278,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 6
    argNames:
    - r
    - cfg
    - jwks_uri
    - ssl_validate_server
    - j_jwks
    - refresh
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_jwks_uri_t*
    - int
    - oidc_json_t**
    - apr_byte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 229
    functionDepth: 7
    functionLinenumber: 229
    functionLinenumberEnd: 282
    functionName: oidc_metadata_jwks_get
    functionSourceFile: /src/mod_auth_openidc/src/metadata/jwks.c
    functionUses: 12
    functionsReached:
    - oidc_warn
    - oidc_metadata_jwks_forced_refresh_interval
    - oidc_metadata_jwks_forced_refresh_stamp
    - oidc_debug
    - oidc_metadata_jwks_forced_refresh_throttled
    - oidc_cache_get_jwks
    - oidc_metadata_jwks_cache_key
    - oidc_metadata_jwks_retrieve_and_cache
    - oidc_json_decode_and_check_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_jwks_get(request_rec *r, oidc_cfg_t *cfg,
      const oidc_jwks_uri_t *jwks_uri,\n\t\t\t\t  int ssl_validate_server, oidc_json_t
      **j_jwks, apr_byte_t *refresh)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:52,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/client.c:54,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:61,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/client.c:63,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:68,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/src/metadata/client.c:69,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/client.c:70,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/metadata/client.c:78,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/client.c:79,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/metadata/client.c:85,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/metadata/client.c:85,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/metadata/client.c:85,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/metadata/client.c:86,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/metadata/client.c:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - r
    - j_client
    - issuer
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 93
    functionName: oidc_metadata_client_is_valid
    functionSourceFile: /src/mod_auth_openidc/src/metadata/client.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_error
    - apr_time_sec
    - oidc_json_is_integer
    - oidc_json_object_get
    - apr_time_now
    - oidc_json_integer_value
    - oidc_debug
    - oidc_json_object_get_string
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_metadata_client_is_valid(request_rec *r, const oidc_json_t
      *j_client, const char *issuer)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/metadata/client.c:102,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:103,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:104,1
    - Dst: oidc_cfg_provider_client_name_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:104,1
    - Dst: oidc_json_array
      Src: /src/mod_auth_openidc/src/metadata/client.c:106,1
    - Dst: oidc_json_array_append_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:107,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:107,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/metadata/client.c:107,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:108,1
    - Dst: oidc_json_array
      Src: /src/mod_auth_openidc/src/metadata/client.c:110,1
    - Dst: oidc_proto_supported_flows
      Src: /src/mod_auth_openidc/src/metadata/client.c:111,1
    - Dst: oidc_json_array_append_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:113,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:113,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/metadata/client.c:113,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:114,1
    - Dst: oidc_json_array
      Src: /src/mod_auth_openidc/src/metadata/client.c:116,1
    - Dst: oidc_json_array_append_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:117,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:117,1
    - Dst: oidc_json_array_append_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:118,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:118,1
    - Dst: oidc_json_array_append_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:119,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:119,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:120,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:122,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:123,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:124,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:124,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:127,1
    - Dst: oidc_cfg_endpoint_auth_is_mtls
      Src: /src/mod_auth_openidc/src/metadata/client.c:128,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:128,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:129,1
    - Dst: oidc_json_boolean
      Src: /src/mod_auth_openidc/src/metadata/client.c:130,1
    - Dst: oidc_cfg_provider_client_contact_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:132,1
    - Dst: oidc_json_array
      Src: /src/mod_auth_openidc/src/metadata/client.c:133,1
    - Dst: oidc_json_array_append_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:134,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:134,1
    - Dst: oidc_cfg_provider_client_contact_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:134,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:135,1
    - Dst: oidc_cfg_provider_client_jwks_uri_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:138,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:139,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:140,1
    - Dst: oidc_cfg_provider_client_jwks_uri_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:140,1
    - Dst: oidc_cfg_public_keys_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:141,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:142,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:144,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/client.c:144,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/metadata/client.c:144,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:148,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:149,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:151,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:151,1
    - Dst: oidc_cfg_provider_id_token_encrypted_response_alg_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:153,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:154,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:156,1
    - Dst: oidc_cfg_provider_id_token_encrypted_response_alg_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:156,1
    - Dst: oidc_cfg_provider_id_token_encrypted_response_enc_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:158,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:159,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:161,1
    - Dst: oidc_cfg_provider_id_token_encrypted_response_enc_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:161,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:164,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:165,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:167,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:167,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_alg_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:169,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:170,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:172,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_alg_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:172,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_enc_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:174,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:175,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:177,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_enc_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:177,1
    - Dst: oidc_cfg_provider_request_object_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:180,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/metadata/client.c:182,1
    - Dst: oidc_cfg_provider_request_object_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:182,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:185,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:187,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:188,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:188,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata/client.c:189,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:193,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:194,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/metadata/client.c:194,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:196,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:198,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/client.c:198,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/metadata/client.c:198,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:202,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:203,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/client.c:203,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/metadata/client.c:203,1
    - Dst: oidc_cfg_default_slo_url_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:207,1
    - Dst: oidc_json_array
      Src: /src/mod_auth_openidc/src/metadata/client.c:208,1
    - Dst: oidc_json_array_append_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:209,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:209,1
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/src/metadata/client.c:209,1
    - Dst: oidc_cfg_default_slo_url_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:210,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/metadata/client.c:211,1
    - Dst: oidc_cfg_provider_registration_endpoint_json_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:215,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/metadata/client.c:217,1
    - Dst: oidc_cfg_provider_registration_endpoint_json_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:217,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata/client.c:219,1
    - Dst: oidc_json_merge
      Src: /src/mod_auth_openidc/src/metadata/client.c:222,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata/client.c:223,1
    - Dst: oidc_http_post_json
      Src: /src/mod_auth_openidc/src/metadata/client.c:229,1
    - Dst: oidc_cfg_provider_registration_endpoint_url_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:229,1
    - Dst: oidc_cfg_provider_registration_token_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:230,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:231,1
    - Dst: oidc_cfg_http_timeout_short_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:232,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:232,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:233,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:234,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:235,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:236,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/metadata/client.c:237,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata/client.c:238,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata/client.c:241,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/src/metadata/client.c:244,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/metadata/client.c:245,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/client.c:246,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 77
    argCount: 5
    argNames:
    - r
    - cfg
    - provider
    - j_client
    - response
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - oidc_json_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 98
    functionDepth: 6
    functionLinenumber: 98
    functionLinenumberEnd: 251
    functionName: oidc_metadata_client_register
    functionSourceFile: /src/mod_auth_openidc/src/metadata/client.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_cfg_provider_request_object_get
    - oidc_http_post_json
    - oidc_util_url_abs
    - oidc_cfg_provider_token_endpoint_tls_client_key_get
    - oidc_cfg_provider_userinfo_signed_response_alg_get
    - oidc_json_boolean
    - oidc_error
    - oidc_json_decode_object
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_cfg_http_timeout_short_get
    - oidc_cfg_provider_cert_bound_tokens_get
    - oidc_cfg_provider_client_name_get
    - oidc_cfg_provider_client_contact_get
    - oidc_cfg_provider_id_token_signed_response_alg_get
    - oidc_cfg_endpoint_auth_is_mtls
    - oidc_cfg_provider_id_token_encrypted_response_enc_get
    - oidc_cfg_outgoing_proxy_get
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_json_decref
    - oidc_cfg_default_slo_url_get
    - oidc_cfg_dir_pass_cookies_get
    - APR_ARRAY_IDX
    - oidc_json_array
    - oidc_json_object
    - oidc_cfg_provider_registration_endpoint_url_get
    - oidc_cfg_provider_registration_endpoint_json_get
    - oidc_cfg_provider_registration_token_get
    - oidc_json_string
    - oidc_json_decode_and_check_error
    - oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
    - oidc_cfg_provider_userinfo_encrypted_response_enc_get
    - oidc_json_object_get
    - OIDC_METRICS_COUNTER_INC
    - oidc_json_merge
    - oidc_proto_supported_flows
    - oidc_cfg_provider_client_jwks_uri_get
    - oidc_util_url_redirect_uri
    - apr_psprintf
    - oidc_cfg_public_keys_get
    - oidc_cfg_provider_id_token_encrypted_response_alg_get
    - oidc_cfg_provider_userinfo_encrypted_response_alg_get
    - oidc_json_object_get_string
    - oidc_json_array_append_new
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_client_register(request_rec *r, oidc_cfg_t
      *cfg, const oidc_provider_t *provider,\n\t\t\t\t\t oidc_json_t **j_client, char
      **response)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_client_file_path
      Src: /src/mod_auth_openidc/src/metadata/client.c:261,1
    - Dst: oidc_metadata_file_read_json
      Src: /src/mod_auth_openidc/src/metadata/client.c:264,1
    - Dst: oidc_metadata_client_is_valid
      Src: /src/mod_auth_openidc/src/metadata/client.c:265,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/metadata/client.c:268,1
    - Dst: oidc_cfg_provider_registration_endpoint_url_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:273,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/client.c:274,1
    - Dst: oidc_metadata_client_register
      Src: /src/mod_auth_openidc/src/metadata/client.c:283,1
    - Dst: oidc_metadata_client_is_valid
      Src: /src/mod_auth_openidc/src/metadata/client.c:287,1
    - Dst: oidc_util_file_write
      Src: /src/mod_auth_openidc/src/metadata/client.c:291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - r
    - cfg
    - issuer
    - provider
    - j_client
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_provider_t*
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 257
    functionDepth: 7
    functionLinenumber: 257
    functionLinenumberEnd: 295
    functionName: oidc_metadata_client_get
    functionSourceFile: /src/mod_auth_openidc/src/metadata/client.c
    functionUses: 1
    functionsReached:
    - oidc_util_file_write
    - oidc_error
    - oidc_json_decref
    - oidc_metadata_client_file_path
    - oidc_cfg_provider_registration_endpoint_url_get
    - oidc_metadata_client_is_valid
    - oidc_metadata_file_read_json
    - oidc_metadata_client_register
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_client_get(request_rec *r, oidc_cfg_t *cfg,
      const char *issuer,\n\t\t\t\t    const oidc_provider_t *provider, oidc_json_t
      **j_client)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:304,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/src/metadata/client.c:308,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/client.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - cfg
    - j_client
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: oidc_metadata_client_parse_token_endpoint_auth
    functionSourceFile: /src/mod_auth_openidc/src/metadata/client.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_auth_set
    - oidc_json_object_get_string
    - oidc_error
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_client_parse_token_endpoint_auth(request_rec *r,
      const oidc_cfg_t *cfg,\n\t\t\t\t\t\t\t   const oidc_json_t *j_client, oidc_provider_t
      *provider)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_response_type_is_set
      Src: /src/mod_auth_openidc/src/metadata/client.c:323,1
    - Dst: oidc_cfg_provider_response_type_set
      Src: /src/mod_auth_openidc/src/metadata/client.c:326,1
    - Dst: oidc_cfg_provider_response_type_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:327,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:327,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:330,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/metadata/client.c:331,1
    - Dst: oidc_json_array_has_value
      Src: /src/mod_auth_openidc/src/metadata/client.c:335,1
    - Dst: oidc_cfg_provider_response_type_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:335,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:339,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:340,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/metadata/client.c:341,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/metadata/client.c:341,1
    - Dst: OIDC_METADATA_PROVIDER_SET
      Src: /src/mod_auth_openidc/src/metadata/client.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - r
    - cfg
    - j_client
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 344
    functionName: oidc_metadata_client_parse_response_type
    functionSourceFile: /src/mod_auth_openidc/src/metadata/client.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - apr_pstrdup
    - oidc_cfg_provider_response_type_set
    - oidc_json_array_get
    - oidc_json_object_get
    - oidc_cfg_provider_get
    - OIDC_METADATA_PROVIDER_SET
    - oidc_json_is_string
    - oidc_cfg_provider_response_type_get
    - oidc_json_is_array
    - oidc_cfg_provider_response_type_is_set
    - oidc_json_array_has_value
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_client_parse_response_type(request_rec *r, oidc_cfg_t
      *cfg, const oidc_json_t *j_client,\n\t\t\t\t\t\t     oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:355,1
    - Dst: OIDC_METADATA_PROVIDER_SET
      Src: /src/mod_auth_openidc/src/metadata/client.c:356,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:359,1
    - Dst: OIDC_METADATA_PROVIDER_SET
      Src: /src/mod_auth_openidc/src/metadata/client.c:360,1
    - Dst: oidc_metadata_client_parse_token_endpoint_auth
      Src: /src/mod_auth_openidc/src/metadata/client.c:363,1
    - Dst: oidc_metadata_client_parse_response_type
      Src: /src/mod_auth_openidc/src/metadata/client.c:366,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/client.c:368,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:369,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/client.c:369,1
    - Dst: OIDC_METADATA_PROVIDER_SET
      Src: /src/mod_auth_openidc/src/metadata/client.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - r
    - cfg
    - j_client
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 349
    functionDepth: 4
    functionLinenumber: 349
    functionLinenumberEnd: 375
    functionName: oidc_metadata_client_parse
    functionSourceFile: /src/mod_auth_openidc/src/metadata/client.c
    functionUses: 5
    functionsReached:
    - oidc_metadata_client_parse_response_type
    - oidc_cfg_provider_get
    - OIDC_METADATA_PROVIDER_SET
    - oidc_cfg_provider_id_token_signed_response_alg_get
    - oidc_metadata_client_parse_token_endpoint_auth
    - oidc_json_object_get_string
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_client_parse(request_rec *r, oidc_cfg_t *cfg,
      const oidc_json_t *j_client,\n\t\t\t\t      oidc_provider_t *provider)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/conf.c:45,1
    - Dst: valid_function
      Src: /src/mod_auth_openidc/src/metadata/conf.c:48,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/conf.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - r
    - j_conf
    - issuer
    - key
    - valid_function
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    - char*
    - oidc_valid_function_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: oidc_metadata_conf_jose_is_supported
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get_string
    - valid_function
    - oidc_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_conf_jose_is_supported(request_rec *r, const
      oidc_json_t *j_conf, const char *issuer,\n\t\t\t\t\t\t       const char *key,
      oidc_valid_function_t valid_function)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_conf_jose_is_supported
      Src: /src/mod_auth_openidc/src/metadata/conf.c:64,1
    - Dst: oidc_metadata_conf_jose_is_supported
      Src: /src/mod_auth_openidc/src/metadata/conf.c:67,1
    - Dst: oidc_metadata_conf_jose_is_supported
      Src: /src/mod_auth_openidc/src/metadata/conf.c:70,1
    - Dst: oidc_metadata_conf_jose_is_supported
      Src: /src/mod_auth_openidc/src/metadata/conf.c:73,1
    - Dst: oidc_metadata_conf_jose_is_supported
      Src: /src/mod_auth_openidc/src/metadata/conf.c:76,1
    - Dst: oidc_metadata_conf_jose_is_supported
      Src: /src/mod_auth_openidc/src/metadata/conf.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - r
    - j_conf
    - issuer
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 84
    functionName: oidc_metadata_conf_is_valid
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - oidc_metadata_conf_jose_is_supported
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_metadata_conf_is_valid(request_rec *r, const oidc_json_t
      *j_conf, const char *issuer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_conf_path
      Src: /src/mod_auth_openidc/src/metadata/conf.c:92,1
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/src/metadata/conf.c:96,1
    - Dst: oidc_metadata_file_read_json
      Src: /src/mod_auth_openidc/src/metadata/conf.c:100,1
    - Dst: oidc_metadata_conf_is_valid
      Src: /src/mod_auth_openidc/src/metadata/conf.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - r
    - issuer
    - j_conf
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: oidc_metadata_conf_get
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 1
    functionsReached:
    - oidc_metadata_file_read_json
    - oidc_metadata_conf_is_valid
    - apr_stat
    - oidc_metadata_conf_path
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_metadata_conf_get(request_rec *r, const char *issuer,
      oidc_json_t **j_conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/conf.c:117,1
    - Dst: oidc_cfg_provider_profile_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:119,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/conf.c:121,1
    - Dst: oidc_cfg_provider_profile_int_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:123,1
    - Dst: oidc_cfg_provider_profile_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:123,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: oidc_metadata_conf_parse_profile
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_cfg_provider_get
    - oidc_cfg_provider_profile_set
    - oidc_cfg_provider_profile_int_set
    - oidc_json_object_get_string
    - oidc_cfg_provider_profile_get
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_profile(request_rec *r, oidc_cfg_t *cfg,
      const oidc_json_t *j_conf,\n\t\t\t\t\t     oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/src/metadata/conf.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: oidc_metadata_conf_jwk_list_cleanup
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_list_destroy
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_metadata_conf_jwk_list_cleanup(void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:144,1
    - Dst: oidc_metadata_get_jwks
      Src: /src/mod_auth_openidc/src/metadata/conf.c:146,1
    - Dst: oidc_cfg_provider_client_keys_set_keys
      Src: /src/mod_auth_openidc/src/metadata/conf.c:148,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/conf.c:150,1
    - Dst: apr_pool_cleanup_register
      Src: /src/mod_auth_openidc/src/metadata/conf.c:154,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_keys_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:157,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:158,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_keys_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:159,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:159,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/conf.c:161,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_keys_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:165,1
    - Dst: apr_pool_cleanup_register
      Src: /src/mod_auth_openidc/src/metadata/conf.c:166,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_keys_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 168
    functionName: oidc_metadata_conf_parse_keys
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_cfg_provider_signed_jwks_uri_keys_get
    - oidc_json_object_get
    - oidc_cfg_provider_get
    - OIDC_METADATA_CONF_STR
    - oidc_cfg_provider_client_keys_set_keys
    - apr_pool_cleanup_register
    - oidc_cfg_provider_signed_jwks_uri_keys_set
    - oidc_metadata_get_jwks
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_keys(request_rec *r, oidc_cfg_t *cfg,
      const oidc_json_t *j_conf,\n\t\t\t\t\t  oidc_provider_t *provider)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:178,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:179,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:180,1
    - Dst: oidc_json_object_get_string_array
      Src: /src/mod_auth_openidc/src/metadata/conf.c:182,1
    - Dst: oidc_proto_profile_id_token_aud_values_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:184,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:184,1
    - Dst: oidc_cfg_provider_id_token_aud_values_set_str_list
      Src: /src/mod_auth_openidc/src/metadata/conf.c:186,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/conf.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 190
    functionName: oidc_metadata_conf_parse_id_token
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_cfg_provider_get
    - OIDC_METADATA_CONF_STR
    - oidc_proto_profile_id_token_aud_values_get
    - oidc_json_object_get_string_array
    - oidc_cfg_provider_id_token_aud_values_set_str_list
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_id_token(request_rec *r, oidc_cfg_t
      *cfg, const oidc_json_t *j_conf,\n\t\t\t\t\t      oidc_provider_t *provider)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:200,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:201,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:202,1
    - Dst: OIDC_METADATA_CONF_INT
      Src: /src/mod_auth_openidc/src/metadata/conf.c:203,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/conf.c:205,1
    - Dst: oidc_cfg_provider_userinfo_token_method_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:207,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/conf.c:209,1
    - Dst: oidc_cfg_provider_userinfo_token_method_int_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:211,1
    - Dst: oidc_cfg_provider_userinfo_token_method_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:212,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 214
    functionName: oidc_metadata_conf_parse_userinfo
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_userinfo_token_method_get
    - OIDC_METADATA_CONF_INT
    - oidc_error
    - oidc_cfg_provider_get
    - OIDC_METADATA_CONF_STR
    - oidc_cfg_provider_userinfo_token_method_set
    - oidc_json_object_get_string
    - oidc_cfg_provider_userinfo_token_method_int_set
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_userinfo(request_rec *r, oidc_cfg_t
      *cfg, const oidc_json_t *j_conf,\n\t\t\t\t\t      oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METADATA_CONF_BOOL
      Src: /src/mod_auth_openidc/src/metadata/conf.c:221,1
    - Dst: OIDC_METADATA_CONF_BOOL
      Src: /src/mod_auth_openidc/src/metadata/conf.c:222,1
    - Dst: OIDC_METADATA_CONF_INT
      Src: /src/mod_auth_openidc/src/metadata/conf.c:223,1
    - Dst: OIDC_METADATA_CONF_INT
      Src: /src/mod_auth_openidc/src/metadata/conf.c:224,1
    - Dst: OIDC_METADATA_CONF_INT
      Src: /src/mod_auth_openidc/src/metadata/conf.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 226
    functionName: oidc_metadata_conf_parse_session
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - OIDC_METADATA_CONF_INT
    - OIDC_METADATA_CONF_BOOL
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_session(request_rec *r, oidc_cfg_t *cfg,
      const oidc_json_t *j_conf,\n\t\t\t\t\t     oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:238,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:239,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:240,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:241,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: oidc_metadata_conf_parse_request_params
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - OIDC_METADATA_CONF_STR
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_request_params(request_rec *r, oidc_cfg_t
      *cfg, const oidc_json_t *j_conf,\n\t\t\t\t\t\t    oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:253,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/conf.c:256,1
    - Dst: oidc_proto_profile_pkce_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:257,1
    - Dst: OIDC_METADATA_PROVIDER_SET
      Src: /src/mod_auth_openidc/src/metadata/conf.c:258,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/conf.c:261,1
    - Dst: OIDC_METADATA_PROVIDER_SET
      Src: /src/mod_auth_openidc/src/metadata/conf.c:262,1
    - Dst: oidc_metadata_parse_boolean
      Src: /src/mod_auth_openidc/src/metadata/conf.c:264,1
    - Dst: oidc_proto_profile_response_require_iss_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:265,1
    - Dst: OIDC_METADATA_PROVIDER_SET_INT
      Src: /src/mod_auth_openidc/src/metadata/conf.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 267
    functionName: oidc_metadata_conf_parse_response
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - OIDC_METADATA_CONF_STR
    - OIDC_METADATA_PROVIDER_SET
    - oidc_proto_profile_response_require_iss_get
    - oidc_metadata_parse_boolean
    - oidc_proto_profile_pkce_get
    - oidc_json_object_get_string
    - OIDC_METADATA_PROVIDER_SET_INT
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_response(request_rec *r, oidc_cfg_t
      *cfg, const oidc_json_t *j_conf,\n\t\t\t\t\t      oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:274,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:275,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:276,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: oidc_metadata_conf_parse_client
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - OIDC_METADATA_CONF_STR
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_client(request_rec *r, oidc_cfg_t *cfg,
      const oidc_json_t *j_conf,\n\t\t\t\t\t    oidc_provider_t *provider)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:287,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:288,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_alg_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:289,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/metadata/conf.c:294,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/conf.c:296,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:298,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/conf.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 302
    functionName: oidc_metadata_conf_parse_endpoint_auth
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_token_endpoint_auth_alg_get
    - apr_psprintf
    - oidc_cfg_provider_token_endpoint_auth_set
    - oidc_json_object_get_string
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_endpoint_auth(request_rec *r, oidc_cfg_t
      *cfg, const oidc_json_t *j_conf,\n\t\t\t\t\t\t   oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:309,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:310,1
    - Dst: OIDC_METADATA_CONF_STR
      Src: /src/mod_auth_openidc/src/metadata/conf.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: oidc_metadata_conf_parse_tls_client
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - OIDC_METADATA_CONF_STR
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_tls_client(request_rec *r, oidc_cfg_t
      *cfg, const oidc_json_t *j_conf,\n\t\t\t\t\t\toidc_provider_t *provider)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/conf.c:322,1
    - Dst: oidc_cfg_provider_dpop_mode_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:324,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/conf.c:326,1
    - Dst: oidc_cfg_provider_dpop_mode_int_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:328,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - r
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 330
    functionName: oidc_metadata_conf_parse_dpop_mode
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_dpop_mode_set
    - oidc_error
    - oidc_proto_profile_dpop_mode_get
    - oidc_cfg_provider_dpop_mode_int_set
    - oidc_json_object_get_string
    linkageType: ''
    returnType: void
    signature: void oidc_metadata_conf_parse_dpop_mode(request_rec *r, const oidc_json_t
      *j_conf, oidc_provider_t *provider)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/conf.c:340,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:342,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/conf.c:344,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_int_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:346,1
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:347,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 349
    functionName: oidc_metadata_conf_parse_cert_bound_tokens
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_cfg_provider_cert_bound_tokens_int_set
    - oidc_cfg_provider_cert_bound_tokens_set
    - oidc_cfg_provider_get
    - oidc_cfg_provider_cert_bound_tokens_get
    - oidc_json_object_get_string
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_cert_bound_tokens(request_rec *r, oidc_cfg_t
      *cfg, const oidc_json_t *j_conf,\n\t\t\t\t\t\t       oidc_provider_t *provider)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/metadata/conf.c:359,1
    - Dst: oidc_cfg_provider_auth_request_method_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:361,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/metadata/conf.c:363,1
    - Dst: oidc_cfg_provider_auth_request_method_int_set
      Src: /src/mod_auth_openidc/src/metadata/conf.c:365,1
    - Dst: oidc_proto_profile_auth_request_method_get
      Src: /src/mod_auth_openidc/src/metadata/conf.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - r
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 368
    functionName: oidc_metadata_conf_parse_auth_request_method
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_auth_request_method_int_set
    - oidc_error
    - oidc_proto_profile_auth_request_method_get
    - oidc_json_object_get_string
    - oidc_cfg_provider_auth_request_method_set
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_auth_request_method(request_rec *r,
      const oidc_json_t *j_conf,\n\t\t\t\t\t\t\t oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_conf_parse_profile
      Src: /src/mod_auth_openidc/src/metadata/conf.c:376,1
    - Dst: oidc_metadata_conf_parse_endpoint_auth
      Src: /src/mod_auth_openidc/src/metadata/conf.c:377,1
    - Dst: oidc_metadata_conf_parse_tls_client
      Src: /src/mod_auth_openidc/src/metadata/conf.c:378,1
    - Dst: oidc_metadata_conf_parse_cert_bound_tokens
      Src: /src/mod_auth_openidc/src/metadata/conf.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: oidc_metadata_conf_parse_pre_provider
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 1
    functionsReached:
    - oidc_metadata_conf_parse_tls_client
    - oidc_metadata_conf_parse_profile
    - oidc_metadata_conf_parse_cert_bound_tokens
    - oidc_metadata_conf_parse_endpoint_auth
    linkageType: ''
    returnType: void
    signature: "void oidc_metadata_conf_parse_pre_provider(request_rec *r, oidc_cfg_t
      *cfg, const oidc_json_t *j_conf,\n\t\t\t\t\t   oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_conf_parse_profile
      Src: /src/mod_auth_openidc/src/metadata/conf.c:387,1
    - Dst: oidc_metadata_conf_parse_keys
      Src: /src/mod_auth_openidc/src/metadata/conf.c:388,1
    - Dst: oidc_metadata_conf_parse_id_token
      Src: /src/mod_auth_openidc/src/metadata/conf.c:389,1
    - Dst: oidc_metadata_conf_parse_userinfo
      Src: /src/mod_auth_openidc/src/metadata/conf.c:390,1
    - Dst: oidc_metadata_conf_parse_session
      Src: /src/mod_auth_openidc/src/metadata/conf.c:391,1
    - Dst: oidc_metadata_conf_parse_request_params
      Src: /src/mod_auth_openidc/src/metadata/conf.c:392,1
    - Dst: oidc_metadata_conf_parse_response
      Src: /src/mod_auth_openidc/src/metadata/conf.c:393,1
    - Dst: oidc_metadata_conf_parse_client
      Src: /src/mod_auth_openidc/src/metadata/conf.c:394,1
    - Dst: oidc_metadata_conf_parse_endpoint_auth
      Src: /src/mod_auth_openidc/src/metadata/conf.c:395,1
    - Dst: oidc_metadata_conf_parse_tls_client
      Src: /src/mod_auth_openidc/src/metadata/conf.c:396,1
    - Dst: oidc_metadata_conf_parse_dpop_mode
      Src: /src/mod_auth_openidc/src/metadata/conf.c:401,1
    - Dst: oidc_metadata_conf_parse_auth_request_method
      Src: /src/mod_auth_openidc/src/metadata/conf.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - r
    - cfg
    - j_conf
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 385
    functionDepth: 5
    functionLinenumber: 385
    functionLinenumberEnd: 404
    functionName: oidc_metadata_conf_parse
    functionSourceFile: /src/mod_auth_openidc/src/metadata/conf.c
    functionUses: 11
    functionsReached:
    - oidc_metadata_conf_parse_response
    - oidc_metadata_conf_parse_profile
    - oidc_metadata_conf_parse_dpop_mode
    - oidc_metadata_conf_parse_userinfo
    - oidc_metadata_conf_parse_session
    - oidc_metadata_conf_parse_request_params
    - oidc_metadata_conf_parse_client
    - oidc_metadata_conf_parse_tls_client
    - oidc_metadata_conf_parse_keys
    - oidc_metadata_conf_parse_endpoint_auth
    - oidc_metadata_conf_parse_id_token
    - oidc_metadata_conf_parse_auth_request_method
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_metadata_conf_parse(request_rec *r, oidc_cfg_t *cfg,
      const oidc_json_t *j_conf,\n\t\t\t\t    oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/session_management.c:51,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/src/handle/session_management.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - check_session_iframe
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: oidc_session_management_iframe_op
    functionSourceFile: /src/mod_auth_openidc/src/handle/session_management.c
    functionUses: 0
    functionsReached:
    - oidc_http_hdr_out_location_set
    - oidc_debug
    linkageType: ''
    returnType: int
    signature: int oidc_session_management_iframe_op(request_rec *r, const char *check_session_iframe)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/session_management.c:59,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/session_management.c:106,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/handle/session_management.c:108,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/session_management.c:109,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/handle/session_management.c:112,1
    - Dst: oidc_session_get_session_state
      Src: /src/mod_auth_openidc/src/handle/session_management.c:120,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/session_management.c:122,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:127,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/src/handle/session_management.c:128,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:135,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/src/handle/session_management.c:136,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/handle/session_management.c:141,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/session_management.c:144,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/src/handle/session_management.c:144,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/src/handle/session_management.c:145,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/src/handle/session_management.c:146,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/src/handle/session_management.c:147,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/src/handle/session_management.c:148,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/src/handle/session_management.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - r
    - c
    - session
    - client_id
    - check_session_iframe
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 151
    functionName: oidc_session_management_iframe_rp
    functionSourceFile: /src/mod_auth_openidc/src/handle/session_management.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - _oidc_str_to_int
    - apr_pstrdup
    - oidc_error
    - oidc_util_url_parameter_get
    - oidc_session_get_session_state
    - oidc_debug
    - oidc_validate_redirect_url
    - oidc_util_url_redirect_uri
    - oidc_util_html_javascript_escape
    - apr_psprintf
    - _oidc_strstr
    - oidc_util_html_content_prep
    - apr_uri_parse
    linkageType: ''
    returnType: int
    signature: "int oidc_session_management_iframe_rp(request_rec *r, const oidc_cfg_t
      *c, const oidc_session_t *session,\n\t\t\t\t\t     const char *client_id, const
      char *check_session_iframe)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:162,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/session_management.c:164,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/session_management.c:169,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/session_management.c:170,1
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/src/handle/session_management.c:173,1
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/src/handle/session_management.c:173,1
    - Dst: oidc_cfg_default_slo_url_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:173,1
    - Dst: oidc_get_provider_from_session
      Src: /src/mod_auth_openidc/src/handle/session_management.c:177,1
    - Dst: oidc_provider_static_config
      Src: /src/mod_auth_openidc/src/handle/session_management.c:178,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/session_management.c:182,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:183,1
    - Dst: oidc_session_management_iframe_op
      Src: /src/mod_auth_openidc/src/handle/session_management.c:184,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:185,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/session_management.c:191,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:192,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:193,1
    - Dst: oidc_session_management_iframe_rp
      Src: /src/mod_auth_openidc/src/handle/session_management.c:194,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:195,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:196,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/session_management.c:198,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:199,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:200,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/session_management.c:205,1
    - Dst: oidc_session_get_idtoken
      Src: /src/mod_auth_openidc/src/handle/session_management.c:206,1
    - Dst: oidc_session_get_path_auth_request_params
      Src: /src/mod_auth_openidc/src/handle/session_management.c:211,1
    - Dst: oidc_cfg_dir_path_auth_request_params_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:213,1
    - Dst: oidc_session_get_path_scope
      Src: /src/mod_auth_openidc/src/handle/session_management.c:214,1
    - Dst: oidc_cfg_dir_path_scope_get
      Src: /src/mod_auth_openidc/src/handle/session_management.c:216,1
    - Dst: oidc_request_authenticate_user
      Src: /src/mod_auth_openidc/src/handle/session_management.c:217,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/session_management.c:218,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/handle/session_management.c:218,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/session_management.c:223,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 156
    functionDepth: 9
    functionLinenumber: 156
    functionLinenumberEnd: 226
    functionName: oidc_session_management
    functionSourceFile: /src/mod_auth_openidc/src/handle/session_management.c
    functionUses: 7
    functionsReached:
    - oidc_session_management_iframe_rp
    - oidc_debug
    - oidc_cfg_provider_check_session_iframe_get
    - oidc_util_url_abs
    - oidc_session_get_idtoken
    - oidc_cfg_dir_path_scope_get
    - oidc_provider_static_config
    - oidc_session_get_path_auth_request_params
    - oidc_error
    - oidc_request_authenticate_user
    - oidc_logout_request
    - oidc_session_get_path_scope
    - oidc_cfg_dir_path_auth_request_params_get
    - oidc_cfg_default_slo_url_get
    - oidc_get_provider_from_session
    - oidc_cfg_provider_client_id_get
    - oidc_session_management_iframe_op
    - oidc_util_url_parameter_get
    - oidc_util_url_redirect_uri
    - apr_psprintf
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: int oidc_session_management(request_rec *r, oidc_cfg_t *c, oidc_session_t
      *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/handle/discovery.c:76,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/handle/discovery.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - r
    - cfg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: oidc_is_discovery_response
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 2
    functionsReached:
    - oidc_util_url_has_parameter
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_is_discovery_response(request_rec *r, oidc_cfg_t *cfg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_cookie_same_site_discovery_csrf_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:82,1
    - Dst: OIDC_HTTP_COOKIE_SAMESITE_NONE
      Src: /src/mod_auth_openidc/src/handle/discovery.c:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 98
    functionName: oidc_discovery_csrf_cookie_samesite
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - OIDC_HTTP_COOKIE_SAMESITE_NONE
    - oidc_cfg_cookie_same_site_discovery_csrf_get
    linkageType: ''
    returnType: char
    signature: char *oidc_discovery_csrf_cookie_samesite(const request_rec *r, const
      oidc_cfg_t *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_path_scope_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:109,1
    - Dst: oidc_cfg_dir_path_auth_request_params_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:110,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:113,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/handle/discovery.c:114,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/discovery.c:115,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/discovery.c:116,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/handle/discovery.c:116,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/discovery.c:117,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:120,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/discovery.c:120,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:122,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/discovery.c:123,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/discovery.c:126,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/handle/discovery.c:129,1
    - Dst: oidc_discovery_csrf_cookie_samesite
      Src: /src/mod_auth_openidc/src/handle/discovery.c:129,1
    - Dst: oidc_response_post_preserve_javascript
      Src: /src/mod_auth_openidc/src/handle/discovery.c:132,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/src/handle/discovery.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - r
    - cfg
    - discover_url
    - current_url
    - method
    - csrf
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 139
    functionName: oidc_discovery_request_external
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - oidc_http_hdr_out_location_set
    - oidc_discovery_csrf_cookie_samesite
    - oidc_response_post_preserve_javascript
    - oidc_debug
    - oidc_http_set_cookie
    - oidc_util_url_redirect_uri
    - apr_psprintf
    - oidc_http_url_encode
    - strchr
    - oidc_cfg_dir_path_auth_request_params_get
    - oidc_cfg_dir_path_scope_get
    linkageType: ''
    returnType: int
    signature: "int oidc_discovery_request_external(request_rec *r, const oidc_cfg_t
      *cfg, const char *discover_url,\n\t\t\t\t\t   const char *current_url, const
      char *method, const char *csrf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_path_scope_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:148,1
    - Dst: oidc_cfg_dir_path_auth_request_params_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:149,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/handle/discovery.c:153,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:156,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/discovery.c:157,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/handle/discovery.c:157,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/discovery.c:158,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/discovery.c:159,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:163,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/discovery.c:164,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:166,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/discovery.c:167,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/handle/discovery.c:169,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/discovery.c:170,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/discovery.c:171,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/discovery.c:171,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:176,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/discovery.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 7
    argNames:
    - r
    - cfg
    - arr
    - current_url
    - method
    - csrf
    - s
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - apr_array_header_t*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 181
    functionName: oidc_discovery_page_providers
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - _oidc_strlen
    - APR_ARRAY_IDX
    - oidc_util_url_redirect_uri
    - apr_psprintf
    - oidc_util_html_escape
    - oidc_http_url_encode
    - _oidc_strstr
    - oidc_cfg_dir_path_auth_request_params_get
    - oidc_cfg_dir_path_scope_get
    linkageType: ''
    returnType: char
    signature: "char *oidc_discovery_page_providers(request_rec *r, const oidc_cfg_t
      *cfg, const apr_array_header_t *arr,\n\t\t\t\t\t\t const char *current_url,
      const char *method, const char *csrf,\n\t\t\t\t\t\t const char *s)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_path_scope_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:189,1
    - Dst: oidc_cfg_dir_path_auth_request_params_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:190,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:194,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/discovery.c:195,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/handle/discovery.c:195,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:196,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/discovery.c:197,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:198,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/discovery.c:199,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:200,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/discovery.c:201,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:204,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/discovery.c:205,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:207,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/discovery.c:208,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:210,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:214,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:216,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - r
    - cfg
    - current_url
    - method
    - csrf
    - s
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 220
    functionName: oidc_discovery_page_form
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - oidc_util_url_redirect_uri
    - apr_psprintf
    - oidc_util_html_escape
    - oidc_cfg_dir_path_auth_request_params_get
    - oidc_cfg_dir_path_scope_get
    linkageType: ''
    returnType: char
    signature: "char *oidc_discovery_page_form(request_rec *r, const oidc_cfg_t *cfg,
      const char *current_url,\n\t\t\t\t\t    const char *method, const char *csrf,
      const char *s)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/discovery.c:227,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/src/handle/discovery.c:230,1
    - Dst: oidc_cfg_x_forwarded_headers_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:230,1
    - Dst: oidc_original_request_method
      Src: /src/mod_auth_openidc/src/handle/discovery.c:231,1
    - Dst: oidc_util_rand_str
      Src: /src/mod_auth_openidc/src/handle/discovery.c:235,1
    - Dst: oidc_cfg_dir_discover_url_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:239,1
    - Dst: oidc_discovery_request_external
      Src: /src/mod_auth_openidc/src/handle/discovery.c:241,1
    - Dst: oidc_metadata_list
      Src: /src/mod_auth_openidc/src/handle/discovery.c:245,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:246,1
    - Dst: oidc_discovery_page_providers
      Src: /src/mod_auth_openidc/src/handle/discovery.c:254,1
    - Dst: oidc_discovery_page_form
      Src: /src/mod_auth_openidc/src/handle/discovery.c:257,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/handle/discovery.c:259,1
    - Dst: oidc_discovery_csrf_cookie_samesite
      Src: /src/mod_auth_openidc/src/handle/discovery.c:259,1
    - Dst: oidc_response_post_preserve_javascript
      Src: /src/mod_auth_openidc/src/handle/discovery.c:264,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:265,1
    - Dst: oidc_util_html_send
      Src: /src/mod_auth_openidc/src/handle/discovery.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - r
    - cfg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 225
    functionDepth: 5
    functionLinenumber: 225
    functionLinenumberEnd: 269
    functionName: oidc_discovery_request
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 4
    functionsReached:
    - oidc_util_html_send
    - oidc_discovery_csrf_cookie_samesite
    - oidc_original_request_method
    - oidc_response_post_preserve_javascript
    - oidc_util_rand_str
    - oidc_debug
    - oidc_http_set_cookie
    - oidc_util_html_send_error
    - oidc_metadata_list
    - oidc_cfg_dir_discover_url_get
    - oidc_discovery_request_external
    - apr_psprintf
    - oidc_util_url_cur
    - oidc_discovery_page_form
    - oidc_discovery_page_providers
    - oidc_cfg_x_forwarded_headers_get
    linkageType: ''
    returnType: int
    signature: int oidc_discovery_request(request_rec *r, oidc_cfg_t *cfg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/handle/discovery.c:277,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:279,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/handle/discovery.c:285,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/handle/discovery.c:285,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:287,1
    - Dst: oidc_util_hostname_endswith
      Src: /src/mod_auth_openidc/src/handle/discovery.c:290,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:291,1
    - Dst: oidc_util_cookie_domain_valid
      Src: /src/mod_auth_openidc/src/handle/discovery.c:300,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:300,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:301,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:305,1
    - Dst: oidc_cfg_dir_cookie_path_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:311,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/handle/discovery.c:313,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:315,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/discovery.c:321,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/discovery.c:321,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/discovery.c:322,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:326,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - r
    - cfg
    - target_link_uri
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 336
    functionName: oidc_discovery_target_link_uri_match
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_error
    - oidc_cfg_dir_cookie_path_get
    - oidc_cfg_cookie_domain_get
    - oidc_util_cookie_domain_valid
    - oidc_util_url_redirect_uri
    - oidc_util_hostname_endswith
    - _oidc_strstr
    - apr_uri_parse
    linkageType: ''
    returnType: int
    signature: int oidc_discovery_target_link_uri_match(request_rec *r, const oidc_cfg_t
      *cfg, const char *target_link_uri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_get_cookie
      Src: /src/mod_auth_openidc/src/handle/discovery.c:346,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/handle/discovery.c:354,1
    - Dst: OIDC_HTTP_COOKIE_SAMESITE_NONE
      Src: /src/mod_auth_openidc/src/handle/discovery.c:354,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:357,1
    - Dst: oidc_util_strcmp_const_time
      Src: /src/mod_auth_openidc/src/handle/discovery.c:358,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/discovery.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 344
    functionDepth: 4
    functionLinenumber: 344
    functionLinenumberEnd: 364
    functionName: oidc_discovery_response_csrf_check
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_util_url_parameter_get
    - OIDC_HTTP_COOKIE_SAMESITE_NONE
    - oidc_http_set_cookie
    - oidc_util_strcmp_const_time
    - oidc_http_get_cookie
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_discovery_response_csrf_check(request_rec *r, const
      oidc_cfg_t *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_default_sso_url_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:377,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:378,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/discovery.c:385,1
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/src/handle/discovery.c:385,1
    - Dst: oidc_cfg_default_sso_url_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:385,1
    - Dst: oidc_discovery_target_link_uri_match
      Src: /src/mod_auth_openidc/src/handle/discovery.c:389,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:390,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/src/handle/discovery.c:398,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - r
    - c
    - target_link_uri
    - rv
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 405
    functionName: oidc_discovery_response_target_link_uri_validate
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - oidc_discovery_target_link_uri_match
    - apr_pstrdup
    - oidc_util_html_send_error
    - oidc_validate_redirect_url
    - oidc_cfg_default_sso_url_get
    - oidc_util_url_abs
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_discovery_response_target_link_uri_validate(request_rec
      *r, const oidc_cfg_t *c,\n\t\t\t\t\t\t\t\t   char **target_link_uri, int *rv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_provider_static_config
      Src: /src/mod_auth_openidc/src/handle/discovery.c:416,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/discovery.c:417,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:417,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:418,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:420,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:421,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:421,1
    - Dst: oidc_request_authenticate_user
      Src: /src/mod_auth_openidc/src/handle/discovery.c:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 7
    argNames:
    - r
    - c
    - issuer
    - target_link_uri
    - login_hint
    - auth_request_params
    - path_scopes
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 411
    functionDepth: 7
    functionLinenumber: 411
    functionLinenumberEnd: 427
    functionName: oidc_discovery_response_static
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - oidc_provider_static_config
    - oidc_request_authenticate_user
    - oidc_cfg_provider_get
    - oidc_util_html_send_error
    - oidc_cfg_provider_issuer_get
    - apr_psprintf
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: "int oidc_discovery_response_static(request_rec *r, oidc_cfg_t *c,
      const char *issuer,\n\t\t\t\t\t  const char *target_link_uri, const char *login_hint,\n\t\t\t\t\t
      \ const char *auth_request_params, const char *path_scopes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_discover_issuers_allowed_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:435,1
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/handle/discovery.c:442,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/handle/discovery.c:442,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/handle/discovery.c:443,1
    - Dst: oidc_util_regexp_first_match
      Src: /src/mod_auth_openidc/src/handle/discovery.c:444,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/discovery.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - r
    - c
    - issuer
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 450
    functionName: oidc_discovery_issuer_allowed
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - oidc_util_regexp_first_match
    - oidc_warn
    - oidc_cfg_discover_issuers_allowed_get
    - apr_hash_this
    - apr_hash_next
    - apr_hash_first
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_discovery_issuer_allowed(request_rec *r, const oidc_cfg_t
      *c, const char *issuer)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/discovery.c:462,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/handle/discovery.c:465,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:466,1
    - Dst: oidc_discovery_issuer_allowed
      Src: /src/mod_auth_openidc/src/handle/discovery.c:472,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:473,1
    - Dst: oidc_proto_discovery_url_based
      Src: /src/mod_auth_openidc/src/handle/discovery.c:482,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:483,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/handle/discovery.c:493,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/discovery.c:496,1
    - Dst: strrchr
      Src: /src/mod_auth_openidc/src/handle/discovery.c:500,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/discovery.c:501,1
    - Dst: oidc_discovery_issuer_allowed
      Src: /src/mod_auth_openidc/src/handle/discovery.c:502,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:503,1
    - Dst: oidc_proto_discovery_account_based
      Src: /src/mod_auth_openidc/src/handle/discovery.c:512,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:513,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 6
    argNames:
    - r
    - c
    - user
    - issuer
    - login_hint
    - rv
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 522
    functionName: oidc_discovery_response_resolve_issuer
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_discovery_issuer_allowed
    - oidc_util_html_send_error
    - oidc_proto_discovery_url_based
    - apr_psprintf
    - _oidc_strstr
    - oidc_proto_discovery_account_based
    - strrchr
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_discovery_response_resolve_issuer(request_rec *r,
      oidc_cfg_t *c, char *user, char **issuer,\n\t\t\t\t\t\t\t char **login_hint,
      int *rv)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/discovery.c:534,1
    - Dst: oidc_discovery_issuer_allowed
      Src: /src/mod_auth_openidc/src/handle/discovery.c:538,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:539,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/handle/discovery.c:545,1
    - Dst: oidc_metadata_provider_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:547,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/handle/discovery.c:549,1
    - Dst: oidc_metadata_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:555,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/discovery.c:556,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/handle/discovery.c:562,1
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:565,1
    - Dst: oidc_cfg_provider_jwks_uri_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:565,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:566,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/handle/discovery.c:567,1
    - Dst: oidc_request_authenticate_user
      Src: /src/mod_auth_openidc/src/handle/discovery.c:572,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 8
    argNames:
    - r
    - c
    - issuer
    - target_link_uri
    - login_hint
    - auth_request_params
    - path_scopes
    - allow_dyn_reg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 528
    functionDepth: 8
    functionLinenumber: 528
    functionLinenumberEnd: 574
    functionName: oidc_discovery_response_authenticate
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_jwks_uri_get
    - _oidc_strlen
    - oidc_json_decref
    - oidc_request_authenticate_user
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_discovery_issuer_allowed
    - oidc_metadata_get
    - oidc_util_html_send_error
    - oidc_util_url_has_parameter
    - oidc_metadata_provider_get
    - oidc_metadata_jwks_get
    linkageType: ''
    returnType: int
    signature: "int oidc_discovery_response_authenticate(request_rec *r, oidc_cfg_t
      *c, char *issuer,\n\t\t\t\t\t\tconst char *target_link_uri, const char *login_hint,\n\t\t\t\t\t\tconst
      char *auth_request_params, const char *path_scopes,\n\t\t\t\t\t\tapr_byte_t
      allow_dyn_reg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_isspace
      Src: /src/mod_auth_openidc/src/handle/discovery.c:584,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/discovery.c:586,1
    - Dst: apr_isspace
      Src: /src/mod_auth_openidc/src/handle/discovery.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 590
    functionName: oidc_discovery_response_input_trim
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_isspace
    linkageType: ''
    returnType: char
    signature: char *oidc_discovery_response_input_trim(char *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:605,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:606,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:607,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:608,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:609,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:610,1
    - Dst: oidc_discovery_response_csrf_check
      Src: /src/mod_auth_openidc/src/handle/discovery.c:613,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/discovery.c:618,1
    - Dst: oidc_discovery_response_input_trim
      Src: /src/mod_auth_openidc/src/handle/discovery.c:627,1
    - Dst: oidc_discovery_response_input_trim
      Src: /src/mod_auth_openidc/src/handle/discovery.c:628,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/discovery.c:630,1
    - Dst: oidc_discovery_response_target_link_uri_validate
      Src: /src/mod_auth_openidc/src/handle/discovery.c:633,1
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/handle/discovery.c:637,1
    - Dst: oidc_discovery_response_static
      Src: /src/mod_auth_openidc/src/handle/discovery.c:638,1
    - Dst: oidc_discovery_response_resolve_issuer
      Src: /src/mod_auth_openidc/src/handle/discovery.c:642,1
    - Dst: oidc_discovery_response_authenticate
      Src: /src/mod_auth_openidc/src/handle/discovery.c:645,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 595
    functionDepth: 9
    functionLinenumber: 595
    functionLinenumberEnd: 647
    functionName: oidc_discovery_response
    functionSourceFile: /src/mod_auth_openidc/src/handle/discovery.c
    functionUses: 18
    functionsReached:
    - oidc_warn
    - oidc_discovery_response_target_link_uri_validate
    - oidc_discovery_response_resolve_issuer
    - oidc_discovery_response_input_trim
    - oidc_util_url_parameter_get
    - oidc_discovery_response_static
    - oidc_debug
    - oidc_discovery_response_csrf_check
    - oidc_cfg_metadata_dir_get
    - oidc_discovery_response_authenticate
    linkageType: ''
    returnType: int
    signature: int oidc_discovery_response(request_rec *r, oidc_cfg_t *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/handle/refresh.c:82,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/refresh.c:84,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/refresh.c:84,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/refresh.c:86,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/refresh.c:86,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/refresh.c:87,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/handle/refresh.c:87,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/refresh.c:89,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/refresh.c:89,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/refresh.c:91,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/refresh.c:91,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/refresh.c:92,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/refresh.c:93,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/handle/refresh.c:93,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/refresh.c:93,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/handle/refresh.c:96,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/refresh.c:97,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:98,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:98,1
    - Dst: oidc_cache_set_refresh_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:100,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/refresh.c:101,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/refresh.c:101,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/handle/refresh.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 8
    argNames:
    - r
    - refresh_token
    - s_access_token
    - s_token_type
    - expires_in
    - s_id_token
    - s_refresh_token
    - ts
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - int
    - char*
    - char*
    - apr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: oidc_refresh_token_cache_set
    functionSourceFile: /src/mod_auth_openidc/src/handle/refresh.c
    functionUses: 0
    functionsReached:
    - oidc_util_mask_value
    - oidc_json_object_set_new
    - apr_time_sec
    - oidc_json_decref
    - apr_time_now
    - oidc_cache_set_refresh_token
    - oidc_json_encode
    - oidc_debug
    - oidc_json_object
    - oidc_json_string
    - oidc_json_integer
    - apr_time_from_sec
    linkageType: ''
    returnType: void
    signature: "void oidc_refresh_token_cache_set(request_rec *r, const char *refresh_token,
      const char *s_access_token,\n\t\t\t\t\t const char *s_token_type, int expires_in,
      const char *s_id_token,\n\t\t\t\t\t const char *s_refresh_token, apr_time_t
      *ts)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/handle/refresh.c:123,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:127,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/refresh.c:128,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:128,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:129,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/refresh.c:130,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:130,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:131,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:133,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:141,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/refresh.c:142,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:142,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:143,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/refresh.c:144,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:144,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:145,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/refresh.c:146,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:146,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/handle/refresh.c:149,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 8
    argNames:
    - r
    - s_json
    - s_access_token
    - s_token_type
    - expires_in
    - s_id_token
    - s_refresh_token
    - ts
    argTypes:
    - request_rec*
    - char*
    - char**
    - char**
    - int*
    - char**
    - char**
    - apr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 152
    functionName: oidc_refresh_token_cache_parse
    functionSourceFile: /src/mod_auth_openidc/src/handle/refresh.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_json_decref
    - oidc_json_decode_object
    - oidc_json_object_get
    - oidc_json_string_value
    - oidc_json_integer_value
    - apr_time_from_sec
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_refresh_token_cache_parse(request_rec *r, const char
      *s_json, char **s_access_token,\n\t\t\t\t\t\t char **s_token_type, int *expires_in,
      char **s_id_token,\n\t\t\t\t\t\t char **s_refresh_token, apr_time_t *ts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/handle/refresh.c:166,1
    - Dst: oidc_cfg_refresh_mutex_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:166,1
    - Dst: oidc_cache_get_refresh_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:169,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/refresh.c:178,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/refresh.c:179,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/handle/refresh.c:180,1
    - Dst: oidc_cfg_refresh_mutex_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:180,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/src/handle/refresh.c:181,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/src/handle/refresh.c:181,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/handle/refresh.c:182,1
    - Dst: oidc_cfg_refresh_mutex_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:182,1
    - Dst: oidc_cache_get_refresh_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:184,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/refresh.c:191,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/refresh.c:192,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:193,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/refresh.c:199,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/refresh.c:200,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/refresh.c:208,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:208,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:209,1
    - Dst: oidc_refresh_token_cache_parse
      Src: /src/mod_auth_openidc/src/handle/refresh.c:211,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/refresh.c:221,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:221,1
    - Dst: oidc_cache_set_refresh_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:224,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/refresh.c:225,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/refresh.c:225,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/handle/refresh.c:229,1
    - Dst: oidc_cfg_refresh_mutex_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:229,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 9
    argNames:
    - r
    - c
    - refresh_token
    - s_access_token
    - s_token_type
    - expires_in
    - s_id_token
    - s_refresh_token
    - ts
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char**
    - char**
    - int*
    - char**
    - char**
    - apr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 157
    functionDepth: 6
    functionLinenumber: 157
    functionLinenumberEnd: 232
    functionName: oidc_refresh_token_cache_get
    functionSourceFile: /src/mod_auth_openidc/src/handle/refresh.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - apr_sleep
    - oidc_cache_mutex_unlock
    - oidc_util_mask_value
    - oidc_cfg_refresh_mutex_get
    - apr_time_from_msec
    - apr_time_now
    - oidc_cache_set_refresh_token
    - oidc_debug
    - oidc_cache_mutex_lock
    - oidc_refresh_token_cache_parse
    - oidc_cache_get_refresh_token
    - apr_time_from_sec
    - _oidc_strcmp
    linkageType: ''
    returnType: oidc_refresh_token_cache_result_t
    signature: "oidc_refresh_token_cache_result_t oidc_refresh_token_cache_get(request_rec
      *r, const oidc_cfg_t *c,\n\t\t\t\t\t\t\t\t      const char *refresh_token, char
      **s_access_token,\n\t\t\t\t\t\t\t\t      char **s_token_type, int *expires_in,\n\t\t\t\t\t\t\t\t
      \     char **s_id_token, char **s_refresh_token,\n\t\t\t\t\t\t\t\t      apr_time_t
      *ts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_refresh_token_cache_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:246,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/refresh.c:254,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:254,1
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/src/handle/refresh.c:256,1
    - Dst: oidc_proto_token_refresh_request
      Src: /src/mod_auth_openidc/src/handle/refresh.c:259,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/refresh.c:261,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/refresh.c:262,1
    - Dst: oidc_cache_get_refresh_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:265,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/refresh.c:266,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/refresh.c:267,1
    - Dst: oidc_refresh_token_cache_parse
      Src: /src/mod_auth_openidc/src/handle/refresh.c:268,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/refresh.c:270,1
    - Dst: oidc_cache_set_refresh_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:276,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/refresh.c:277,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/refresh.c:277,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/src/handle/refresh.c:281,1
    - Dst: oidc_refresh_token_cache_set
      Src: /src/mod_auth_openidc/src/handle/refresh.c:284,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 11
    argNames:
    - r
    - c
    - provider
    - refresh_token
    - s_id_token
    - s_access_token
    - s_token_type
    - expires_in
    - s_refresh_token
    - s_scope
    - ts
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - char**
    - char**
    - char**
    - int*
    - char**
    - char**
    - apr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 240
    functionDepth: 7
    functionLinenumber: 240
    functionLinenumberEnd: 288
    functionName: oidc_refresh_token_grant_obtain_tokens
    functionSourceFile: /src/mod_auth_openidc/src/handle/refresh.c
    functionUses: 0
    functionsReached:
    - oidc_util_mask_value
    - oidc_warn
    - oidc_proto_token_refresh_request
    - oidc_error
    - oidc_refresh_token_cache_set
    - OIDC_METRICS_COUNTER_INC
    - oidc_cache_set_refresh_token
    - oidc_debug
    - apr_time_now
    - OIDC_METRICS_TIMING_START
    - OIDC_METRICS_TIMING_ADD
    - oidc_refresh_token_cache_get
    - oidc_refresh_token_cache_parse
    - oidc_cache_get_refresh_token
    - apr_time_from_sec
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_refresh_token_grant_obtain_tokens(request_rec *r,
      oidc_cfg_t *c, const oidc_provider_t *provider,\n\t\t\t\t\t\t\t const char *refresh_token,
      char **s_id_token,\n\t\t\t\t\t\t\t char **s_access_token, char **s_token_type,
      int *expires_in,\n\t\t\t\t\t\t\t char **s_refresh_token, char **s_scope, apr_time_t
      *ts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_idtoken_claims
      Src: /src/mod_auth_openidc/src/handle/refresh.c:297,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:299,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:299,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/refresh.c:304,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/refresh.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - r
    - session
    - jwt
    argTypes:
    - request_rec*
    - oidc_session_t*
    - oidc_jwt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 313
    functionName: oidc_refresh_token_grant_id_token_sub_match
    functionSourceFile: /src/mod_auth_openidc/src/handle/refresh.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_json_object_get
    - oidc_session_get_idtoken_claims
    - oidc_json_string_value
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_refresh_token_grant_id_token_sub_match(request_rec
      *r, const oidc_session_t *session,\n\t\t\t\t\t\t\t      const oidc_jwt_t *jwt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/src/handle/refresh.c:330,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/refresh.c:331,1
    - Dst: oidc_refresh_token_grant_id_token_sub_match
      Src: /src/mod_auth_openidc/src/handle/refresh.c:335,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/handle/refresh.c:336,1
    - Dst: oidc_cfg_store_id_token_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:341,1
    - Dst: oidc_session_set_idtoken
      Src: /src/mod_auth_openidc/src/handle/refresh.c:342,1
    - Dst: oidc_session_set_idtoken_claims
      Src: /src/mod_auth_openidc/src/handle/refresh.c:345,1
    - Dst: oidc_cfg_provider_session_max_duration_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:347,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/refresh.c:350,1
    - Dst: oidc_session_set_session_expires
      Src: /src/mod_auth_openidc/src/handle/refresh.c:351,1
    - Dst: oidc_log_session_expires
      Src: /src/mod_auth_openidc/src/handle/refresh.c:354,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/handle/refresh.c:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - r
    - c
    - session
    - provider
    - s_id_token
    - new_id_token
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_provider_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 362
    functionName: oidc_refresh_token_grant_apply_id_token
    functionSourceFile: /src/mod_auth_openidc/src/handle/refresh.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_session_set_idtoken_claims
    - oidc_cfg_provider_session_max_duration_get
    - oidc_session_set_session_expires
    - oidc_jwt_destroy
    - oidc_refresh_token_grant_id_token_sub_match
    - oidc_cfg_store_id_token_get
    - oidc_session_set_idtoken
    - oidc_proto_idtoken_parse
    - oidc_util_apr_time_from_sec
    - oidc_log_session_expires
    linkageType: ''
    returnType: void
    signature: "void oidc_refresh_token_grant_apply_id_token(request_rec *r, oidc_cfg_t
      *c, oidc_session_t *session,\n\t\t\t\t\t\t    const oidc_provider_t *provider,
      char *s_id_token,\n\t\t\t\t\t\t    char **new_id_token)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/refresh.c:379,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:382,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/refresh.c:384,1
    - Dst: oidc_refresh_token_grant_obtain_tokens
      Src: /src/mod_auth_openidc/src/handle/refresh.c:388,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:394,1
    - Dst: oidc_session_set_access_token_type
      Src: /src/mod_auth_openidc/src/handle/refresh.c:395,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/src/handle/refresh.c:396,1
    - Dst: oidc_session_set_access_token_last_refresh
      Src: /src/mod_auth_openidc/src/handle/refresh.c:399,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:409,1
    - Dst: oidc_session_set_scope
      Src: /src/mod_auth_openidc/src/handle/refresh.c:413,1
    - Dst: oidc_refresh_token_grant_apply_id_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:417,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/refresh.c:419,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:419,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/handle/refresh.c:420,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 7
    argNames:
    - r
    - c
    - session
    - provider
    - new_access_token
    - new_access_token_type
    - new_id_token
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_provider_t*
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 367
    functionDepth: 8
    functionLinenumber: 367
    functionLinenumberEnd: 423
    functionName: oidc_refresh_token_grant
    functionSourceFile: /src/mod_auth_openidc/src/handle/refresh.c
    functionUses: 11
    functionsReached:
    - oidc_warn
    - oidc_util_mask_value
    - oidc_refresh_token_grant_obtain_tokens
    - oidc_session_set_access_token_last_refresh
    - oidc_refresh_token_grant_apply_id_token
    - oidc_session_set_access_token_type
    - oidc_debug
    - oidc_session_set_access_token_expires
    - oidc_session_get_refresh_token
    - oidc_session_set_refresh_token
    - oidc_session_set_scope
    - oidc_session_set_access_token
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_refresh_token_grant(request_rec *r, oidc_cfg_t *c,
      oidc_session_t *session,\n\t\t\t\t    const oidc_provider_t *provider, char
      **new_access_token,\n\t\t\t\t    char **new_access_token_type, char **new_id_token)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:439,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/refresh.c:440,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/refresh.c:444,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/src/handle/refresh.c:449,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/refresh.c:451,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/refresh.c:456,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:461,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/refresh.c:463,1
    - Dst: oidc_util_strcmp_const_time
      Src: /src/mod_auth_openidc/src/handle/refresh.c:469,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/refresh.c:470,1
    - Dst: oidc_get_provider_from_session
      Src: /src/mod_auth_openidc/src/handle/refresh.c:476,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/src/handle/refresh.c:482,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/refresh.c:483,1
    - Dst: oidc_session_pass_tokens
      Src: /src/mod_auth_openidc/src/handle/refresh.c:489,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/src/handle/refresh.c:491,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/refresh.c:500,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/handle/refresh.c:501,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/refresh.c:502,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/src/handle/refresh.c:505,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 428
    functionDepth: 9
    functionLinenumber: 428
    functionLinenumberEnd: 508
    functionName: oidc_refresh_token_request
    functionSourceFile: /src/mod_auth_openidc/src/handle/refresh.c
    functionUses: 6
    functionsReached:
    - oidc_http_hdr_out_location_set
    - oidc_error
    - oidc_util_url_parameter_get
    - oidc_refresh_token_grant
    - strchr
    - oidc_get_provider_from_session
    - oidc_session_save
    - oidc_session_get_access_token
    - oidc_validate_redirect_url
    - oidc_util_strcmp_const_time
    - apr_psprintf
    - oidc_http_url_encode
    - oidc_session_pass_tokens
    linkageType: ''
    returnType: int
    signature: int oidc_refresh_token_request(request_rec *r, oidc_cfg_t *c, oidc_session_t
      *session)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/refresh.c:516,1
    - Dst: oidc_session_get_access_token_expires
      Src: /src/mod_auth_openidc/src/handle/refresh.c:521,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/refresh.c:523,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/src/handle/refresh.c:531,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/refresh.c:532,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/refresh.c:537,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/refresh.c:539,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/refresh.c:539,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/refresh.c:539,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/refresh.c:541,1
    - Dst: oidc_get_provider_from_session
      Src: /src/mod_auth_openidc/src/handle/refresh.c:544,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/src/handle/refresh.c:547,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/refresh.c:548,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - r
    - cfg
    - session
    - ttl_minimum
    - needs_save
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - int
    - apr_byte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 510
    functionDepth: 9
    functionLinenumber: 510
    functionLinenumberEnd: 556
    functionName: oidc_refresh_access_token_before_expiry
    functionSourceFile: /src/mod_auth_openidc/src/handle/refresh.c
    functionUses: 5
    functionsReached:
    - oidc_warn
    - apr_time_sec
    - oidc_session_get_access_token_expires
    - apr_time_now
    - oidc_refresh_token_grant
    - oidc_debug
    - oidc_get_provider_from_session
    - oidc_session_get_refresh_token
    - apr_time_from_sec
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_refresh_access_token_before_expiry(request_rec *r,
      oidc_cfg_t *cfg, oidc_session_t *session,\n\t\t\t\t\t\t   int ttl_minimum, apr_byte_t
      *needs_save)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: AP_MODULE_MAGIC_AT_LEAST
      Src: /src/mod_auth_openidc/src/handle/dpop.c:65,1
    - Dst: oidc_cfg_dpop_api_enabled_get
      Src: /src/mod_auth_openidc/src/handle/dpop.c:71,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/dpop.c:72,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/handle/dpop.c:77,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/dpop.c:78,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/dpop.c:79,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/dpop.c:90,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/dpop.c:92,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/dpop.c:98,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/dpop.c:100,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/dpop.c:105,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/dpop.c:108,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/handle/dpop.c:109,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/handle/dpop.c:111,1
    - Dst: oidc_proto_dpop_create
      Src: /src/mod_auth_openidc/src/handle/dpop.c:115,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/dpop.c:117,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/handle/dpop.c:123,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/dpop.c:124,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/dpop.c:124,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/handle/dpop.c:125,1
    - Dst: oidc_util_http_send
      Src: /src/mod_auth_openidc/src/handle/dpop.c:128,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/dpop.c:128,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/handle/dpop.c:133,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 136
    functionName: oidc_dpop_request
    functionSourceFile: /src/mod_auth_openidc/src/handle/dpop.c
    functionUses: 6
    functionsReached:
    - oidc_warn
    - oidc_json_object_set_new
    - _oidc_strlen
    - oidc_error
    - AP_MODULE_MAGIC_AT_LEAST
    - oidc_json_decref
    - oidc_util_url_parameter_get
    - oidc_json_encode
    - oidc_json_object
    - oidc_util_http_send
    - oidc_cfg_dpop_api_enabled_get
    - _oidc_strnatcasecmp
    - oidc_json_string
    - oidc_proto_dpop_create
    - apr_table_get
    linkageType: ''
    returnType: int
    signature: int oidc_dpop_request(request_rec *r, const oidc_cfg_t *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:58,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:67,1
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:69,1
    - Dst: oidc_session_set_userinfo_jwt
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:71,1
    - Dst: oidc_session_set_userinfo_claims
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:78,1
    - Dst: oidc_session_set_userinfo_jwt
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:80,1
    - Dst: oidc_cfg_provider_userinfo_refresh_interval_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:84,1
    - Dst: oidc_session_reset_userinfo_last_refresh
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - r
    - c
    - session
    - provider
    - userinfo_claims
    - userinfo_jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_provider_t*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 86
    functionName: oidc_userinfo_store_claims
    functionSourceFile: /src/mod_auth_openidc/src/handle/userinfo.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_session_type_get
    - oidc_debug
    - oidc_session_set_userinfo_claims
    - oidc_session_set_userinfo_jwt
    - oidc_session_reset_userinfo_last_refresh
    - oidc_cfg_provider_userinfo_refresh_interval_get
    linkageType: ''
    returnType: void
    signature: "void oidc_userinfo_store_claims(request_rec *r, const oidc_cfg_t *c,
      oidc_session_t *session,\n\t\t\t\tconst oidc_provider_t *provider, oidc_json_t
      *userinfo_claims,\n\t\t\t\tconst char *userinfo_jwt)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:102,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:106,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:107,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:107,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:108,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:114,1
    - Dst: oidc_session_get_idtoken_claims
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:120,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:122,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:124,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:134,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:140,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:148,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:157,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:167,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:169,1
    - Dst: oidc_proto_userinfo_request
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:176,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:180,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:188,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 9
    argNames:
    - r
    - c
    - provider
    - access_token
    - access_token_type
    - session
    - id_token_sub
    - userinfo_claims
    - userinfo_jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - char*
    - oidc_session_t*
    - char*
    - oidc_json_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 91
    functionDepth: 9
    functionLinenumber: 91
    functionLinenumberEnd: 191
    functionName: oidc_userinfo_retrieve_claims
    functionSourceFile: /src/mod_auth_openidc/src/handle/userinfo.c
    functionUses: 9
    functionsReached:
    - oidc_error
    - oidc_jose_get_string
    - oidc_refresh_token_grant
    - oidc_debug
    - oidc_session_get_idtoken_claims
    - oidc_proto_userinfo_request
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: "char *oidc_userinfo_retrieve_claims(request_rec *r, oidc_cfg_t *c,
      const oidc_provider_t *provider,\n\t\t\t\t\t  const char *access_token, const
      char *access_token_type,\n\t\t\t\t\t  oidc_session_t *session, char *id_token_sub,
      oidc_json_t **userinfo_claims,\n\t\t\t\t\t  char **userinfo_jwt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_userinfo_refresh_interval
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:207,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:209,1
    - Dst: oidc_get_provider_from_session
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:215,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:222,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:223,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:223,1
    - Dst: oidc_session_get_userinfo_last_refresh
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:227,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:229,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:232,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:232,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:232,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:233,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:233,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:233,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:236,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:236,1
    - Dst: oidc_userinfo_retrieve_claims
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:240,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:240,1
    - Dst: oidc_session_get_access_token_type
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:241,1
    - Dst: oidc_userinfo_store_claims
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:245,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:247,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:259,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - r
    - cfg
    - session
    - needs_save
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - apr_byte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 196
    functionDepth: 10
    functionLinenumber: 196
    functionLinenumberEnd: 262
    functionName: oidc_userinfo_refresh_claims
    functionSourceFile: /src/mod_auth_openidc/src/handle/userinfo.c
    functionUses: 4
    functionsReached:
    - oidc_userinfo_store_claims
    - apr_time_sec
    - oidc_json_decref
    - apr_time_now
    - oidc_session_get_access_token_type
    - oidc_debug
    - oidc_get_provider_from_session
    - oidc_session_get_access_token
    - oidc_userinfo_retrieve_claims
    - oidc_session_get_userinfo_last_refresh
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - oidc_session_get_userinfo_refresh_interval
    - apr_time_from_sec
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_userinfo_refresh_claims(request_rec *r, oidc_cfg_t
      *cfg, oidc_session_t *session,\n\t\t\t\t\tapr_byte_t *needs_save)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:272,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: oidc_userinfo_signed_jwt_cache_ttl
    functionSourceFile: /src/mod_auth_openidc/src/handle/userinfo.c
    functionUses: 0
    functionsReached:
    - _oidc_str_to_int
    - apr_table_get
    linkageType: ''
    returnType: int
    signature: int oidc_userinfo_signed_jwt_cache_ttl(const request_rec *r)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_jwt_create_from_first_pkey
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:291,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:294,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:295,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:295,1
    - Dst: oidc_cfg_x_forwarded_headers_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:295,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:296,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:297,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:297,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:297,1
    - Dst: oidc_json_merge
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:299,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:302,1
    - Dst: oidc_jose_hash_and_base64url_encode
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:303,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:304,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:305,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:305,1
    - Dst: oidc_userinfo_signed_jwt_cache_ttl
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:309,1
    - Dst: oidc_cache_get_signed_jwt
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:311,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:314,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:319,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:320,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:321,1
    - Dst: oidc_proto_jti_gen
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:321,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:323,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:324,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:325,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:325,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:325,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:327,1
    - Dst: oidc_session_get_access_token_expires
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:328,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:329,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:331,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:332,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:333,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:333,1
    - Dst: oidc_proto_jwt_sign_and_serialize
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:336,1
    - Dst: oidc_json_object_get_int
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:346,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:348,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:349,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:349,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:352,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:352,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:355,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:355,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:355,1
    - Dst: oidc_cache_set_signed_jwt
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:356,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:361,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 5
    argNames:
    - r
    - cfg
    - session
    - claims
    - cser
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_json_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 279
    functionDepth: 4
    functionLinenumber: 279
    functionLinenumberEnd: 364
    functionName: oidc_userinfo_create_signed_jwt
    functionSourceFile: /src/mod_auth_openidc/src/handle/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - apr_time_sec
    - apr_time_now
    - oidc_debug
    - oidc_proto_jti_gen
    - oidc_cache_get_signed_jwt
    - oidc_error
    - oidc_proto_jwt_create_from_first_pkey
    - oidc_json_encode
    - oidc_proto_jwt_sign_and_serialize
    - oidc_util_url_cur
    - _oidc_strlen
    - oidc_cache_set_signed_jwt
    - oidc_cfg_provider_get
    - oidc_session_get_access_token_expires
    - oidc_cfg_provider_issuer_get
    - oidc_jose_e2s
    - oidc_json_string
    - oidc_cfg_x_forwarded_headers_get
    - oidc_userinfo_signed_jwt_cache_ttl
    - oidc_json_object_get_int
    - oidc_json_object_get
    - oidc_json_merge
    - oidc_jwt_destroy
    - oidc_jose_hash_and_base64url_encode
    - oidc_json_integer
    - apr_time_from_sec
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_userinfo_create_signed_jwt(request_rec *r, oidc_cfg_t
      *cfg, const oidc_session_t *session,\n\t\t\t\t\t\t  oidc_json_t *claims, char
      **cser)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_appinfo_set
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - r
    - name
    - default_name
    - value
    - pass_in
    - encoding
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - oidc_appinfo_pass_in_t
    - oidc_appinfo_encoding_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: oidc_userinfo_appinfo_set
    functionSourceFile: /src/mod_auth_openidc/src/handle/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_util_appinfo_set
    linkageType: ''
    returnType: void
    signature: "void oidc_userinfo_appinfo_set(request_rec *r, const char *name, const
      char *default_name, const char *value,\n\t\t\t\t      oidc_appinfo_pass_in_t
      pass_in, oidc_appinfo_encoding_t encoding)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:384,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:385,1
    - Dst: oidc_session_get_userinfo_jwt
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:390,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:392,1
    - Dst: oidc_userinfo_appinfo_set
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - r
    - cfg
    - session
    - name
    - pass_in
    - encoding
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - char*
    - oidc_appinfo_pass_in_t
    - oidc_appinfo_encoding_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 398
    functionName: oidc_userinfo_pass_as_jwt
    functionSourceFile: /src/mod_auth_openidc/src/handle/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_session_type_get
    - oidc_error
    - oidc_debug
    - oidc_userinfo_appinfo_set
    - oidc_session_get_userinfo_jwt
    linkageType: ''
    returnType: void
    signature: "void oidc_userinfo_pass_as_jwt(request_rec *r, const oidc_cfg_t *cfg,
      const oidc_session_t *session,\n\t\t\t\t      const char *name, oidc_appinfo_pass_in_t
      pass_in,\n\t\t\t\t      oidc_appinfo_encoding_t encoding)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_set_app_claims
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:413,1
    - Dst: oidc_userinfo_appinfo_set
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:417,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:419,1
    - Dst: oidc_userinfo_pass_as_jwt
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:422,1
    - Dst: oidc_userinfo_create_signed_jwt
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:425,1
    - Dst: oidc_userinfo_appinfo_set
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:426,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 7
    argNames:
    - r
    - cfg
    - session
    - claims
    - p
    - pass_in
    - encoding
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_json_t*
    - oidc_pass_user_info_as_t*
    - oidc_appinfo_pass_in_t
    - oidc_appinfo_encoding_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 404
    functionDepth: 5
    functionLinenumber: 404
    functionLinenumberEnd: 431
    functionName: oidc_userinfo_pass_entry
    functionSourceFile: /src/mod_auth_openidc/src/handle/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_set_app_claims
    - oidc_userinfo_pass_as_jwt
    - oidc_json_encode
    - oidc_userinfo_create_signed_jwt
    - oidc_userinfo_appinfo_set
    linkageType: ''
    returnType: void
    signature: "void oidc_userinfo_pass_entry(request_rec *r, oidc_cfg_t *cfg, const
      oidc_session_t *session,\n\t\t\t\t     oidc_json_t *claims, const oidc_pass_user_info_as_t
      *p,\n\t\t\t\t     oidc_appinfo_pass_in_t pass_in, oidc_appinfo_encoding_t encoding)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_userinfo_claims_expr_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:445,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:447,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:447,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:448,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:449,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - r
    - session
    - filtered
    argTypes:
    - request_rec*
    - oidc_session_t*
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 439
    functionDepth: 5
    functionLinenumber: 439
    functionLinenumberEnd: 458
    functionName: oidc_userinfo_resolve_claims
    functionSourceFile: /src/mod_auth_openidc/src/handle/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_json_decode_object
    - oidc_util_jq_filter
    - oidc_cfg_dir_userinfo_claims_expr_get
    - oidc_session_get_userinfo_claims
    linkageType: ''
    returnType: oidc_json_t
    signature: "oidc_json_t *oidc_userinfo_resolve_claims(request_rec *r, const oidc_session_t
      *session,\n\t\t\t\t\t\t oidc_json_t **filtered)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_pass_userinfo_as_get
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:466,1
    - Dst: oidc_userinfo_resolve_claims
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:468,1
    - Dst: oidc_userinfo_pass_entry
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:474,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:475,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/handle/userinfo.c:479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 5
    argNames:
    - r
    - cfg
    - session
    - pass_in
    - encoding
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_appinfo_pass_in_t
    - oidc_appinfo_encoding_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 463
    functionDepth: 6
    functionLinenumber: 463
    functionLinenumberEnd: 480
    functionName: oidc_userinfo_pass_as
    functionSourceFile: /src/mod_auth_openidc/src/handle/userinfo.c
    functionUses: 12
    functionsReached:
    - oidc_cfg_dir_pass_userinfo_as_get
    - oidc_json_decref
    - APR_ARRAY_IDX
    - oidc_userinfo_resolve_claims
    - oidc_userinfo_pass_entry
    linkageType: ''
    returnType: void
    signature: "void oidc_userinfo_pass_as(request_rec *r, oidc_cfg_t *cfg, const
      oidc_session_t *session,\n\t\t\t   oidc_appinfo_pass_in_t pass_in, oidc_appinfo_encoding_t
      encoding)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/revoke.c:50,1
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/src/handle/revoke.c:54,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/src/handle/revoke.c:55,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/revoke.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: oidc_revoke_session
    functionSourceFile: /src/mod_auth_openidc/src/handle/revoke.c
    functionUses: 3
    functionsReached:
    - oidc_util_url_parameter_get
    - oidc_cfg_session_type_get
    - oidc_cache_set_session
    - oidc_warn
    linkageType: ''
    returnType: int
    signature: int oidc_revoke_session(request_rec *r, const oidc_cfg_t *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/revoke.c:69,1
    - Dst: oidc_cache_get_access_token
      Src: /src/mod_auth_openidc/src/handle/revoke.c:74,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/revoke.c:76,1
    - Dst: oidc_cache_set_access_token
      Src: /src/mod_auth_openidc/src/handle/revoke.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: oidc_revoke_at_cache_remove
    functionSourceFile: /src/mod_auth_openidc/src/handle/revoke.c
    functionUses: 5
    functionsReached:
    - oidc_util_url_parameter_get
    - oidc_cache_get_access_token
    - oidc_error
    - oidc_cache_set_access_token
    linkageType: ''
    returnType: int
    signature: int oidc_revoke_at_cache_remove(request_rec *r, oidc_cfg_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_public_keys_get
      Src: /src/mod_auth_openidc/src/handle/jwks.c:49,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/handle/jwks.c:50,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/handle/jwks.c:57,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/src/handle/jwks.c:59,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/jwks.c:60,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/jwks.c:62,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/handle/jwks.c:63,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/jwks.c:68,1
    - Dst: apr_array_pstrcat
      Src: /src/mod_auth_openidc/src/handle/jwks.c:68,1
    - Dst: oidc_util_http_send
      Src: /src/mod_auth_openidc/src/handle/jwks.c:70,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/jwks.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: oidc_jwks_request
    functionSourceFile: /src/mod_auth_openidc/src/handle/jwks.c
    functionUses: 2
    functionsReached:
    - oidc_jwk_to_json
    - _oidc_strlen
    - oidc_error
    - APR_ARRAY_IDX
    - oidc_util_http_send
    - apr_psprintf
    - oidc_cfg_public_keys_get
    - apr_array_make
    - oidc_jose_e2s
    - apr_array_pstrcat
    linkageType: ''
    returnType: int
    signature: int oidc_jwks_request(request_rec *r, const oidc_cfg_t *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/src/handle/info.c:61,1
    - Dst: _oidc_str_to_time
      Src: /src/mod_auth_openidc/src/handle/info.c:64,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/info.c:68,1
    - Dst: oidc_session_get_access_token_last_refresh
      Src: /src/mod_auth_openidc/src/handle/info.c:69,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/info.c:70,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/info.c:71,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/info.c:71,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/info.c:73,1
    - Dst: oidc_get_provider_from_session
      Src: /src/mod_auth_openidc/src/handle/info.c:76,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/src/handle/info.c:79,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/info.c:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - r
    - c
    - session
    - s_interval
    - needs_save
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - char*
    - apr_byte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 55
    functionDepth: 9
    functionLinenumber: 55
    functionLinenumberEnd: 86
    functionName: oidc_info_refresh_access_token
    functionSourceFile: /src/mod_auth_openidc/src/handle/info.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - apr_time_sec
    - oidc_session_get_access_token_last_refresh
    - apr_time_now
    - oidc_refresh_token_grant
    - oidc_debug
    - oidc_get_provider_from_session
    - oidc_session_get_refresh_token
    - _oidc_str_to_time
    - apr_time_from_sec
    linkageType: ''
    returnType: int
    signature: "int oidc_info_refresh_access_token(request_rec *r, oidc_cfg_t *c,
      oidc_session_t *session,\n\t\t\t\t\t  const char *s_interval, apr_byte_t *needs_save)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/src/handle/info.c:92,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/info.c:94,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/info.c:94,1
    - Dst: oidc_session_get_access_token_type
      Src: /src/mod_auth_openidc/src/handle/info.c:95,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/info.c:97,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/info.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - r
    - session
    - json
    argTypes:
    - request_rec*
    - oidc_session_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 4
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: oidc_info_add_access_token
    functionSourceFile: /src/mod_auth_openidc/src/handle/info.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_session_get_access_token_type
    - oidc_json_string
    - oidc_session_get_access_token
    linkageType: ''
    returnType: void
    signature: void oidc_info_add_access_token(request_rec *r, const oidc_session_t
      *session, oidc_json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/handle/info.c:104,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/handle/info.c:105,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/info.c:106,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/info.c:106,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/info.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - session
    - json
    argTypes:
    - oidc_session_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: oidc_info_add_session
    functionSourceFile: /src/mod_auth_openidc/src/handle/info.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set
    - oidc_json_object_set_new
    - oidc_json_object
    - oidc_json_string
    linkageType: ''
    returnType: void
    signature: void oidc_info_add_session(oidc_session_t *session, oidc_json_t *json)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_info_hook_data_get
      Src: /src/mod_auth_openidc/src/handle/info.c:114,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/handle/info.c:117,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/info.c:118,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/handle/info.c:119,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/info.c:119,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/info.c:119,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/handle/info.c:122,1
    - Dst: oidc_info_add_access_token
      Src: /src/mod_auth_openidc/src/handle/info.c:123,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/handle/info.c:126,1
    - Dst: oidc_session_get_access_token_expires2str
      Src: /src/mod_auth_openidc/src/handle/info.c:127,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/info.c:129,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/info.c:130,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/handle/info.c:134,1
    - Dst: oidc_session_get_idtoken
      Src: /src/mod_auth_openidc/src/handle/info.c:135,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/info.c:137,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/info.c:137,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/handle/info.c:141,1
    - Dst: oidc_session_get_idtoken_claims
      Src: /src/mod_auth_openidc/src/handle/info.c:142,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/handle/info.c:144,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/handle/info.c:148,1
    - Dst: oidc_session_get_userinfo_claims
      Src: /src/mod_auth_openidc/src/handle/info.c:149,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/handle/info.c:151,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/handle/info.c:155,1
    - Dst: oidc_session_get_session_expires
      Src: /src/mod_auth_openidc/src/handle/info.c:156,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/info.c:157,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/handle/info.c:158,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/info.c:158,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/handle/info.c:162,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/info.c:163,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/handle/info.c:164,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/handle/info.c:164,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/handle/info.c:167,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/info.c:168,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/info.c:169,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/handle/info.c:171,1
    - Dst: oidc_info_add_session
      Src: /src/mod_auth_openidc/src/handle/info.c:172,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/handle/info.c:175,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/src/handle/info.c:176,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/info.c:178,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/info.c:178,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 4
    argNames:
    - r
    - c
    - session
    - json
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 180
    functionName: oidc_info_build_json
    functionSourceFile: /src/mod_auth_openidc/src/handle/info.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_info_add_session
    - apr_time_sec
    - oidc_session_get_access_token_expires2str
    - oidc_session_get_userinfo_claims
    - apr_time_now
    - oidc_info_add_access_token
    - oidc_session_get_idtoken_claims
    - oidc_session_get_refresh_token
    - oidc_session_get_session_expires
    - oidc_json_string
    - oidc_cfg_info_hook_data_get
    - oidc_json_integer
    - oidc_json_object_set
    - oidc_session_get_idtoken
    - apr_hash_get
    linkageType: ''
    returnType: void
    signature: void oidc_info_build_json(request_rec *r, const oidc_cfg_t *c, oidc_session_t
      *session, oidc_json_t *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_set_no_cache_headers
      Src: /src/mod_auth_openidc/src/handle/info.c:190,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/info.c:192,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/handle/info.c:193,1
    - Dst: oidc_util_http_send
      Src: /src/mod_auth_openidc/src/handle/info.c:194,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/info.c:194,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/handle/info.c:197,1
    - Dst: OIDC_JSON_INDENT
      Src: /src/mod_auth_openidc/src/handle/info.c:197,1
    - Dst: oidc_util_html_send
      Src: /src/mod_auth_openidc/src/handle/info.c:198,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/info.c:199,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/info.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - r
    - json
    - s_format
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 200
    functionName: oidc_info_send_response
    functionSourceFile: /src/mod_auth_openidc/src/handle/info.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_http_set_no_cache_headers
    - oidc_util_html_send
    - oidc_json_encode
    - OIDC_JSON_INDENT
    - oidc_util_http_send
    - apr_psprintf
    - oidc_util_html_escape
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: int oidc_info_send_response(request_rec *r, const oidc_json_t *json,
      const char *s_format)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/info.c:213,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/info.c:214,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/info.c:215,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/info.c:216,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/info.c:220,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/info.c:221,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/info.c:222,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/info.c:228,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/info.c:233,1
    - Dst: oidc_cfg_info_hook_data_get
      Src: /src/mod_auth_openidc/src/handle/info.c:235,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/info.c:236,1
    - Dst: oidc_info_refresh_access_token
      Src: /src/mod_auth_openidc/src/handle/info.c:240,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/handle/info.c:245,1
    - Dst: oidc_userinfo_refresh_claims
      Src: /src/mod_auth_openidc/src/handle/info.c:252,1
    - Dst: oidc_info_build_json
      Src: /src/mod_auth_openidc/src/handle/info.c:257,1
    - Dst: oidc_session_pass_tokens
      Src: /src/mod_auth_openidc/src/handle/info.c:260,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/src/handle/info.c:263,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/info.c:264,1
    - Dst: oidc_info_send_response
      Src: /src/mod_auth_openidc/src/handle/info.c:269,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/handle/info.c:274,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 4
    argNames:
    - r
    - c
    - session
    - needs_save
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 205
    functionDepth: 11
    functionLinenumber: 205
    functionLinenumberEnd: 277
    functionName: oidc_info_request
    functionSourceFile: /src/mod_auth_openidc/src/handle/info.c
    functionUses: 7
    functionsReached:
    - oidc_warn
    - apr_pstrdup
    - oidc_info_build_json
    - oidc_json_decref
    - oidc_util_url_parameter_get
    - oidc_info_send_response
    - oidc_json_object
    - oidc_session_save
    - oidc_cfg_info_hook_data_get
    - oidc_userinfo_refresh_claims
    - oidc_session_pass_tokens
    - oidc_info_refresh_access_token
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: int oidc_info_request(request_rec *r, oidc_cfg_t *c, oidc_session_t
      *session, apr_byte_t needs_save)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/handle/logout.c:67,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/handle/logout.c:68,1
    - Dst: oidc_http_post_form
      Src: /src/mod_auth_openidc/src/handle/logout.c:70,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:70,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:71,1
    - Dst: oidc_cfg_http_timeout_long_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:72,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:72,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:73,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:74,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:75,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:76,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/logout.c:77,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/logout.c:78,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/src/handle/logout.c:81,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/src/handle/logout.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 8
    argNames:
    - r
    - c
    - provider
    - params
    - basic_auth
    - bearer_auth
    - token_type_hint
    - token
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - apr_table_t*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 83
    functionName: oidc_logout_revoke_one_token
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
    - oidc_http_post_form
    - oidc_warn
    - apr_table_unset
    - oidc_cfg_provider_revocation_endpoint_url_get
    - oidc_cfg_dir_pass_cookies_get
    - oidc_cfg_provider_ssl_validate_server_get
    - OIDC_METRICS_COUNTER_INC
    - apr_table_setn
    - oidc_cfg_provider_token_endpoint_tls_client_key_get
    - oidc_cfg_http_timeout_long_get
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    - oidc_cfg_outgoing_proxy_get
    linkageType: ''
    returnType: void
    signature: "void oidc_logout_revoke_one_token(request_rec *r, oidc_cfg_t *c, const
      oidc_provider_t *provider,\n\t\t\t\t\t apr_table_t *params, const char *basic_auth,
      const char *bearer_auth,\n\t\t\t\t\t const char *token_type_hint, const char
      *token)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/logout.c:96,1
    - Dst: oidc_get_provider_from_session
      Src: /src/mod_auth_openidc/src/handle/logout.c:98,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:101,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/logout.c:104,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:105,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:106,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:109,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/logout.c:110,1
    - Dst: oidc_cfg_provider_revocation_endpoint_url_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:110,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/handle/logout.c:113,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/src/handle/logout.c:116,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:117,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_alg_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:118,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:118,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:119,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:119,1
    - Dst: oidc_proto_profile_revocation_endpoint_auth_aud
      Src: /src/mod_auth_openidc/src/handle/logout.c:120,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:121,1
    - Dst: oidc_logout_revoke_one_token
      Src: /src/mod_auth_openidc/src/handle/logout.c:125,1
    - Dst: oidc_session_get_refresh_token
      Src: /src/mod_auth_openidc/src/handle/logout.c:126,1
    - Dst: oidc_logout_revoke_one_token
      Src: /src/mod_auth_openidc/src/handle/logout.c:127,1
    - Dst: oidc_session_get_access_token
      Src: /src/mod_auth_openidc/src/handle/logout.c:128,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/logout.c:132,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 89
    functionDepth: 9
    functionLinenumber: 89
    functionLinenumberEnd: 133
    functionName: oidc_logout_revoke_tokens
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_cfg_provider_client_secret_get
    - oidc_cfg_provider_revocation_endpoint_url_get
    - oidc_cfg_provider_client_keys_get
    - oidc_cfg_provider_token_endpoint_auth_alg_get
    - oidc_proto_profile_revocation_endpoint_auth_aud
    - oidc_debug
    - oidc_get_provider_from_session
    - apr_table_make
    - oidc_logout_revoke_one_token
    - oidc_session_get_access_token
    - oidc_session_get_refresh_token
    - oidc_cfg_provider_client_id_get
    - oidc_proto_token_endpoint_auth
    - apr_table_get
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: void oidc_logout_revoke_tokens(request_rec *r, oidc_cfg_t *c, const
      oidc_session_t *session)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/handle/logout.c:145,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/logout.c:147,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:147,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/src/handle/logout.c:151,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:151,1
    - Dst: oidc_cache_get_sid
      Src: /src/mod_auth_openidc/src/handle/logout.c:152,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/logout.c:155,1
    - Dst: oidc_cfg_session_type_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:164,1
    - Dst: oidc_session_load_cache_by_uuid
      Src: /src/mod_auth_openidc/src/handle/logout.c:165,1
    - Dst: oidc_session_extract
      Src: /src/mod_auth_openidc/src/handle/logout.c:166,1
    - Dst: oidc_logout_revoke_tokens
      Src: /src/mod_auth_openidc/src/handle/logout.c:170,1
    - Dst: oidc_cache_set_sid
      Src: /src/mod_auth_openidc/src/handle/logout.c:173,1
    - Dst: oidc_cache_set_sid
      Src: /src/mod_auth_openidc/src/handle/logout.c:176,1
    - Dst: oidc_cache_set_sid
      Src: /src/mod_auth_openidc/src/handle/logout.c:178,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/src/handle/logout.c:179,1
    - Dst: oidc_cache_set_session
      Src: /src/mod_auth_openidc/src/handle/logout.c:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - r
    - sid
    - cfg
    - provider
    - revoke_tokens
    argTypes:
    - request_rec*
    - char*
    - oidc_cfg_t*
    - oidc_provider_t*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 135
    functionDepth: 10
    functionLinenumber: 135
    functionLinenumberEnd: 185
    functionName: oidc_logout_cleanup_by_sid
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_cache_set_sid
    - _oidc_memset
    - oidc_cfg_session_type_get
    - oidc_cache_get_sid
    - oidc_debug
    - oidc_cfg_provider_issuer_get
    - oidc_response_make_sid_iss_unique
    - oidc_logout_revoke_tokens
    - oidc_cache_set_session
    - oidc_session_extract
    - oidc_session_load_cache_by_uuid
    - oidc_session_free
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_logout_cleanup_by_sid(request_rec *r, char *sid, oidc_cfg_t
      *cfg,\n\t\t\t\t\t     const oidc_provider_t *provider, apr_byte_t revoke_tokens)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/logout.c:193,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/logout.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - logout_param_value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: oidc_logout_is_front_channel
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_logout_is_front_channel(const char *logout_param_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/logout.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - logout_param_value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: oidc_logout_is_back_channel
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_logout_is_back_channel(const char *logout_param_value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:208,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:211,1
    - Dst: oidc_get_provider_for_issuer
      Src: /src/mod_auth_openidc/src/handle/logout.c:212,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/logout.c:218,1
    - Dst: oidc_provider_static_config
      Src: /src/mod_auth_openidc/src/handle/logout.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - r
    - c
    - sid
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 203
    functionDepth: 8
    functionLinenumber: 203
    functionLinenumberEnd: 222
    functionName: oidc_logout_request_front_channel_provider
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_util_url_parameter_get
    - oidc_get_provider_for_issuer
    - oidc_debug
    - oidc_provider_static_config
    linkageType: ''
    returnType: oidc_provider_t
    signature: oidc_provider_t *oidc_logout_request_front_channel_provider(request_rec
      *r, oidc_cfg_t *c, char **sid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_logout_request_front_channel_provider
      Src: /src/mod_auth_openidc/src/handle/logout.c:233,1
    - Dst: oidc_logout_cleanup_by_sid
      Src: /src/mod_auth_openidc/src/handle/logout.c:235,1
    - Dst: oidc_info
      Src: /src/mod_auth_openidc/src/handle/logout.c:237,1
    - Dst: oidc_http_set_no_cache_headers
      Src: /src/mod_auth_openidc/src/handle/logout.c:241,1
    - Dst: oidc_http_hdr_err_out_add
      Src: /src/mod_auth_openidc/src/handle/logout.c:242,1
    - Dst: oidc_http_hdr_err_out_add
      Src: /src/mod_auth_openidc/src/handle/logout.c:243,1
    - Dst: oidc_http_hdr_err_out_add
      Src: /src/mod_auth_openidc/src/handle/logout.c:244,1
    - Dst: oidc_cfg_logout_x_frame_options_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:244,1
    - Dst: oidc_http_hdr_in_accept_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:247,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/logout.c:248,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/handle/logout.c:249,1
    - Dst: oidc_util_http_content_prep
      Src: /src/mod_auth_openidc/src/handle/logout.c:250,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/src/handle/logout.c:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - r
    - c
    - url
    - no_session_provided
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 228
    functionDepth: 11
    functionLinenumber: 228
    functionLinenumberEnd: 258
    functionName: oidc_logout_request_front_channel
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_util_http_content_prep
    - oidc_logout_request_front_channel_provider
    - oidc_http_set_no_cache_headers
    - oidc_info
    - oidc_util_html_content_prep
    - _oidc_strstr
    - oidc_cfg_logout_x_frame_options_get
    - oidc_logout_cleanup_by_sid
    - oidc_http_hdr_err_out_add
    - oidc_http_hdr_in_accept_get
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: "int oidc_logout_request_front_channel(request_rec *r, oidc_cfg_t *c,
      const char *url,\n\t\t\t\t\t     apr_byte_t no_session_provided)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/logout.c:268,1
    - Dst: oidc_logout_revoke_tokens
      Src: /src/mod_auth_openidc/src/handle/logout.c:277,1
    - Dst: oidc_session_kill
      Src: /src/mod_auth_openidc/src/handle/logout.c:285,1
    - Dst: oidc_logout_is_front_channel
      Src: /src/mod_auth_openidc/src/handle/logout.c:288,1
    - Dst: oidc_logout_request_front_channel
      Src: /src/mod_auth_openidc/src/handle/logout.c:289,1
    - Dst: oidc_http_set_no_cache_headers
      Src: /src/mod_auth_openidc/src/handle/logout.c:291,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/src/handle/logout.c:295,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/src/handle/logout.c:299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - r
    - c
    - session
    - url
    - revoke_tokens
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - char*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 263
    functionDepth: 12
    functionLinenumber: 263
    functionLinenumberEnd: 302
    functionName: oidc_logout_request
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 7
    functionsReached:
    - oidc_http_hdr_out_location_set
    - oidc_http_set_no_cache_headers
    - oidc_logout_request_front_channel
    - oidc_session_kill
    - oidc_debug
    - oidc_logout_is_front_channel
    - oidc_logout_revoke_tokens
    - oidc_util_html_content_prep
    linkageType: ''
    returnType: int
    signature: "int oidc_logout_request(request_rec *r, oidc_cfg_t *c, oidc_session_t
      *session, const char *url,\n\t\t\tapr_byte_t revoke_tokens)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/handle/logout.c:313,1
    - Dst: oidc_util_read_post_params_reject_dup
      Src: /src/mod_auth_openidc/src/handle/logout.c:314,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:315,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:318,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - r
    - logout_token
    argTypes:
    - request_rec*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 325
    functionName: oidc_logout_backchannel_read_token
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_util_read_post_params_reject_dup
    - oidc_error
    - apr_table_make
    - apr_table_get
    linkageType: ''
    returnType: int
    signature: int oidc_logout_backchannel_read_token(request_rec *r, const char **logout_token)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/src/handle/logout.c:337,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/src/handle/logout.c:338,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:338,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:338,1
    - Dst: oidc_alg2keysize
      Src: /src/mod_auth_openidc/src/handle/logout.c:339,1
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/src/handle/logout.c:341,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/src/handle/logout.c:342,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:342,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:344,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/handle/logout.c:344,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/handle/logout.c:345,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/handle/logout.c:349,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/logout.c:351,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - r
    - cfg
    - logout_token
    - jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_jwt_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 356
    functionName: oidc_logout_backchannel_parse_jwt
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_alg2keysize
    - oidc_error
    - oidc_cfg_provider_client_secret_get
    - oidc_proto_jwt_header_peek
    - oidc_cfg_provider_get
    - oidc_cfg_private_keys_get
    - oidc_jwt_parse
    - oidc_jose_e2s
    - oidc_jwk_destroy
    - oidc_util_key_symmetric_merge
    - oidc_util_key_symmetric_create
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: "int oidc_logout_backchannel_parse_jwt(request_rec *r, oidc_cfg_t *cfg,
      const char *logout_token,\n\t\t\t\t\t     oidc_jwt_t **jwt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_get_provider_for_issuer
      Src: /src/mod_auth_openidc/src/handle/logout.c:360,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:362,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:365,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/logout.c:366,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:366,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:367,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - r
    - cfg
    - jwt
    - provider
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_jwt_t*
    - oidc_provider_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 358
    functionDepth: 8
    functionLinenumber: 358
    functionLinenumberEnd: 372
    functionName: oidc_logout_backchannel_get_provider
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_get_provider_for_issuer
    - _oidc_strcmp
    - oidc_error
    - oidc_cfg_provider_id_token_signed_response_alg_get
    linkageType: ''
    returnType: int
    signature: "int oidc_logout_backchannel_get_provider(request_rec *r, oidc_cfg_t
      *cfg, oidc_jwt_t *jwt,\n\t\t\t\t\t\toidc_provider_t **provider)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_jwt_verify
      Src: /src/mod_auth_openidc/src/handle/logout.c:376,1
    - Dst: oidc_cfg_provider_jwks_uri_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:377,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:378,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/src/handle/logout.c:379,1
    - Dst: oidc_cfg_provider_verify_public_keys_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:379,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:380,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:381,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/src/handle/logout.c:385,1
    - Dst: oidc_cfg_provider_validate_issuer_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:386,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:386,1
    - Dst: oidc_cfg_provider_idtoken_iat_slack_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:387,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/src/handle/logout.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - r
    - cfg
    - jwt
    - provider
    - jwk
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_jwt_t*
    - oidc_provider_t*
    - oidc_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: oidc_logout_backchannel_verify_jwt
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_verify_public_keys_get
    - oidc_cfg_provider_jwks_uri_get
    - oidc_error
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_proto_jwt_validate
    - oidc_cfg_provider_issuer_get
    - oidc_cfg_provider_validate_issuer_get
    - oidc_proto_jwt_verify
    - oidc_cfg_provider_id_token_signed_response_alg_get
    - oidc_util_key_symmetric_merge
    - oidc_cfg_provider_idtoken_iat_slack_get
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: int
    signature: "int oidc_logout_backchannel_verify_jwt(request_rec *r, oidc_cfg_t
      *cfg, oidc_jwt_t *jwt,\n\t\t\t\t\t      const oidc_provider_t *provider, const
      oidc_jwk_t *jwk)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/handle/logout.c:401,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:405,1
    - Dst: oidc_cache_get_jti
      Src: /src/mod_auth_openidc/src/handle/logout.c:409,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/logout.c:410,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:415,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/logout.c:424,1
    - Dst: oidc_cfg_provider_idtoken_iat_slack_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:424,1
    - Dst: oidc_cache_set_jti
      Src: /src/mod_auth_openidc/src/handle/logout.c:426,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/logout.c:426,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/logout.c:427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - r
    - provider
    - jwt
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - oidc_jwt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 432
    functionName: oidc_logout_backchannel_check_jti_replay
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_cache_get_jti
    - oidc_warn
    - oidc_error
    - oidc_cfg_provider_idtoken_iat_slack_get
    - oidc_cache_set_jti
    - apr_time_now
    - oidc_json_object_get_string
    - apr_time_from_sec
    linkageType: ''
    returnType: int
    signature: "int oidc_logout_backchannel_check_jti_replay(request_rec *r, const
      oidc_provider_t *provider,\n\t\t\t\t\t\t    const oidc_jwt_t *jwt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:441,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:443,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:446,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/handle/logout.c:447,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:448,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/handle/logout.c:453,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:455,1
    - Dst: oidc_logout_backchannel_check_jti_replay
      Src: /src/mod_auth_openidc/src/handle/logout.c:459,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/handle/logout.c:468,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:472,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - r
    - provider
    - jwt
    - sid
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - oidc_jwt_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 476
    functionName: oidc_logout_backchannel_validate_claims
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_json_is_object
    - oidc_error
    - oidc_json_object_get
    - oidc_logout_backchannel_check_jti_replay
    - oidc_json_object_get_string
    linkageType: ''
    returnType: int
    signature: "int oidc_logout_backchannel_validate_claims(request_rec *r, const
      oidc_provider_t *provider, oidc_jwt_t *jwt,\n\t\t\t\t\t\t   char **sid)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/logout.c:486,1
    - Dst: oidc_logout_backchannel_read_token
      Src: /src/mod_auth_openidc/src/handle/logout.c:488,1
    - Dst: oidc_logout_backchannel_parse_jwt
      Src: /src/mod_auth_openidc/src/handle/logout.c:492,1
    - Dst: oidc_logout_backchannel_get_provider
      Src: /src/mod_auth_openidc/src/handle/logout.c:496,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/src/handle/logout.c:500,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:500,1
    - Dst: oidc_logout_backchannel_verify_jwt
      Src: /src/mod_auth_openidc/src/handle/logout.c:506,1
    - Dst: oidc_logout_backchannel_validate_claims
      Src: /src/mod_auth_openidc/src/handle/logout.c:510,1
    - Dst: oidc_logout_cleanup_by_sid
      Src: /src/mod_auth_openidc/src/handle/logout.c:515,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/logout.c:522,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/logout.c:524,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/handle/logout.c:528,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/handle/logout.c:530,1
    - Dst: oidc_http_set_no_cache_headers
      Src: /src/mod_auth_openidc/src/handle/logout.c:532,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - r
    - cfg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 478
    functionDepth: 11
    functionLinenumber: 478
    functionLinenumberEnd: 535
    functionName: oidc_logout_backchannel
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_http_set_no_cache_headers
    - oidc_cfg_provider_client_secret_get
    - oidc_logout_backchannel_verify_jwt
    - oidc_logout_backchannel_get_provider
    - OIDC_METRICS_COUNTER_INC
    - oidc_logout_backchannel_read_token
    - oidc_debug
    - oidc_jwt_destroy
    - oidc_logout_backchannel_parse_jwt
    - oidc_jwk_destroy
    - oidc_logout_cleanup_by_sid
    - oidc_util_key_symmetric_create
    - oidc_logout_backchannel_validate_claims
    linkageType: ''
    returnType: int
    signature: int oidc_logout_backchannel(request_rec *r, oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/handle/logout.c:544,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/handle/logout.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - url
    - suffix
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: oidc_logout_url_append
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - apr_pstrcat
    - strchr
    linkageType: ''
    returnType: char
    signature: char *oidc_logout_url_append(request_rec *r, const char *url, const
      char *suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/logout.c:557,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/logout.c:558,1
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/src/handle/logout.c:558,1
    - Dst: oidc_cfg_default_slo_url_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:558,1
    - Dst: oidc_validate_redirect_url
      Src: /src/mod_auth_openidc/src/handle/logout.c:563,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/logout.c:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - r
    - c
    - url
    - rv
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 569
    functionName: oidc_logout_validate_url
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_cfg_default_slo_url_get
    - oidc_util_html_send_error
    - oidc_validate_redirect_url
    - oidc_util_url_abs
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_logout_validate_url(request_rec *r, const oidc_cfg_t
      *c, char **url, int *rv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:582,1
    - Dst: oidc_refresh_token_grant
      Src: /src/mod_auth_openidc/src/handle/logout.c:583,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/logout.c:584,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/logout.c:586,1
    - Dst: oidc_session_get_idtoken
      Src: /src/mod_auth_openidc/src/handle/logout.c:586,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/logout.c:589,1
    - Dst: oidc_cfg_provider_end_session_endpoint_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:589,1
    - Dst: oidc_logout_url_append
      Src: /src/mod_auth_openidc/src/handle/logout.c:591,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/logout.c:593,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/logout.c:593,1
    - Dst: oidc_logout_url_append
      Src: /src/mod_auth_openidc/src/handle/logout.c:596,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/logout.c:598,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/logout.c:598,1
    - Dst: oidc_cfg_provider_logout_request_params_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:600,1
    - Dst: oidc_logout_url_append
      Src: /src/mod_auth_openidc/src/handle/logout.c:602,1
    - Dst: oidc_cfg_provider_logout_request_params_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:602,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - r
    - c
    - session
    - provider
    - post_logout_url
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_provider_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 576
    functionDepth: 9
    functionLinenumber: 576
    functionLinenumberEnd: 605
    functionName: oidc_logout_build_op_request
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - apr_pstrdup
    - oidc_session_get_idtoken
    - oidc_logout_url_append
    - oidc_refresh_token_grant
    - oidc_cfg_provider_logout_request_params_get
    - oidc_cfg_provider_end_session_endpoint_get
    - apr_psprintf
    - oidc_http_url_encode
    - apr_table_get
    linkageType: ''
    returnType: char
    signature: "char *oidc_logout_build_op_request(request_rec *r, oidc_cfg_t *c,
      oidc_session_t *session,\n\t\t\t\t\t  const oidc_provider_t *provider, const
      char *post_logout_url)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:617,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/logout.c:619,1
    - Dst: oidc_logout_is_front_channel
      Src: /src/mod_auth_openidc/src/handle/logout.c:621,1
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/src/handle/logout.c:622,1
    - Dst: oidc_logout_is_back_channel
      Src: /src/mod_auth_openidc/src/handle/logout.c:623,1
    - Dst: oidc_logout_backchannel
      Src: /src/mod_auth_openidc/src/handle/logout.c:624,1
    - Dst: oidc_logout_validate_url
      Src: /src/mod_auth_openidc/src/handle/logout.c:626,1
    - Dst: oidc_get_provider_from_session
      Src: /src/mod_auth_openidc/src/handle/logout.c:629,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/logout.c:630,1
    - Dst: oidc_cfg_provider_end_session_endpoint_get
      Src: /src/mod_auth_openidc/src/handle/logout.c:632,1
    - Dst: oidc_logout_build_op_request
      Src: /src/mod_auth_openidc/src/handle/logout.c:633,1
    - Dst: oidc_logout_request
      Src: /src/mod_auth_openidc/src/handle/logout.c:635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 610
    functionDepth: 13
    functionLinenumber: 610
    functionLinenumberEnd: 636
    functionName: oidc_logout
    functionSourceFile: /src/mod_auth_openidc/src/handle/logout.c
    functionUses: 32
    functionsReached:
    - oidc_warn
    - oidc_util_url_parameter_get
    - oidc_debug
    - oidc_get_provider_from_session
    - oidc_logout_is_front_channel
    - oidc_logout_request
    - oidc_logout_validate_url
    - oidc_logout_backchannel
    - oidc_logout_build_op_request
    - oidc_cfg_provider_end_session_endpoint_get
    - oidc_logout_is_back_channel
    linkageType: ''
    returnType: int
    signature: int oidc_logout(request_rec *r, oidc_cfg_t *c, oidc_session_t *session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pool_userdata_get
      Src: /src/mod_auth_openidc/src/handle/content.c:60,1
    - Dst: oidc_session_load
      Src: /src/mod_auth_openidc/src/handle/content.c:64,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/content.c:70,1
    - Dst: oidc_info_request
      Src: /src/mod_auth_openidc/src/handle/content.c:73,1
    - Dst: oidc_session_free
      Src: /src/mod_auth_openidc/src/handle/content.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 12
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: oidc_content_handle_info_request
    functionSourceFile: /src/mod_auth_openidc/src/handle/content.c
    functionUses: 0
    functionsReached:
    - oidc_session_load
    - apr_pool_userdata_get
    - oidc_info_request
    - oidc_request_state_get
    - oidc_session_free
    linkageType: ''
    returnType: int
    signature: int oidc_content_handle_info_request(request_rec *r, oidc_cfg_t *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/content.c:90,1
    - Dst: oidc_util_http_content_send
      Src: /src/mod_auth_openidc/src/handle/content.c:93,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/content.c:95,1
    - Dst: oidc_util_html_content_send
      Src: /src/mod_auth_openidc/src/handle/content.c:98,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/handle/content.c:100,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/content.c:102,1
    - Dst: oidc_content_handle_info_request
      Src: /src/mod_auth_openidc/src/handle/content.c:105,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/handle/content.c:107,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/content.c:109,1
    - Dst: oidc_dpop_request
      Src: /src/mod_auth_openidc/src/handle/content.c:112,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/handle/content.c:114,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/content.c:116,1
    - Dst: oidc_jwks_request
      Src: /src/mod_auth_openidc/src/handle/content.c:119,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/content.c:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 84
    functionDepth: 13
    functionLinenumber: 84
    functionLinenumberEnd: 127
    functionName: oidc_content_handle_redirect_uri_request
    functionSourceFile: /src/mod_auth_openidc/src/handle/content.c
    functionUses: 0
    functionsReached:
    - oidc_util_html_content_send
    - OIDC_METRICS_COUNTER_INC
    - oidc_util_url_has_parameter
    - oidc_dpop_request
    - oidc_request_state_get
    - oidc_content_handle_info_request
    - oidc_jwks_request
    - oidc_util_http_content_send
    linkageType: ''
    returnType: int
    signature: int oidc_content_handle_redirect_uri_request(request_rec *r, oidc_cfg_t
      *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/handle/content.c:133,1
    - Dst: oidc_cfg_metrics_path_get
      Src: /src/mod_auth_openidc/src/handle/content.c:136,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/content.c:137,1
    - Dst: oidc_cfg_metrics_path_get
      Src: /src/mod_auth_openidc/src/handle/content.c:137,1
    - Dst: oidc_metrics_handle_request
      Src: /src/mod_auth_openidc/src/handle/content.c:138,1
    - Dst: oidc_enabled
      Src: /src/mod_auth_openidc/src/handle/content.c:140,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/content.c:141,1
    - Dst: oidc_util_url_matches_redirect_uri
      Src: /src/mod_auth_openidc/src/handle/content.c:145,1
    - Dst: oidc_content_handle_redirect_uri_request
      Src: /src/mod_auth_openidc/src/handle/content.c:147,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/content.c:149,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/content.c:151,1
    - Dst: oidc_discovery_request
      Src: /src/mod_auth_openidc/src/handle/content.c:154,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/content.c:156,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/content.c:159,1
    - Dst: oidc_util_html_content_send
      Src: /src/mod_auth_openidc/src/handle/content.c:162,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/content.c:164,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/content.c:167,1
    - Dst: oidc_util_html_content_send
      Src: /src/mod_auth_openidc/src/handle/content.c:170,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/content.c:172,1
    - Dst: oidc_util_http_content_send
      Src: /src/mod_auth_openidc/src/handle/content.c:175,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/content.c:177,1
    - Dst: oidc_util_html_content_send
      Src: /src/mod_auth_openidc/src/handle/content.c:180,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 132
    functionDepth: 14
    functionLinenumber: 132
    functionLinenumberEnd: 185
    functionName: oidc_content_handler
    functionSourceFile: /src/mod_auth_openidc/src/handle/content.c
    functionUses: 13
    functionsReached:
    - oidc_metrics_handle_request
    - oidc_util_http_content_send
    - ap_get_module_config
    - oidc_util_html_content_send
    - OIDC_METRICS_COUNTER_INC
    - oidc_cfg_metrics_path_get
    - oidc_enabled
    - oidc_request_state_get
    - oidc_discovery_request
    - oidc_content_handle_redirect_uri_request
    - oidc_util_url_matches_redirect_uri
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: int oidc_content_handler(request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/handle/request_uri.c:55,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/request_uri.c:57,1
    - Dst: oidc_cache_get_request_uri
      Src: /src/mod_auth_openidc/src/handle/request_uri.c:62,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/request_uri.c:64,1
    - Dst: oidc_cache_set_request_uri
      Src: /src/mod_auth_openidc/src/handle/request_uri.c:69,1
    - Dst: oidc_util_http_content_prep
      Src: /src/mod_auth_openidc/src/handle/request_uri.c:71,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/request_uri.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: oidc_request_uri
    functionSourceFile: /src/mod_auth_openidc/src/handle/request_uri.c
    functionUses: 4
    functionsReached:
    - _oidc_strlen
    - oidc_error
    - oidc_cache_get_request_uri
    - oidc_util_url_parameter_get
    - oidc_cache_set_request_uri
    - oidc_util_http_content_prep
    linkageType: ''
    returnType: int
    signature: int oidc_request_uri(request_rec *r, oidc_cfg_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/authz.c:55,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/handle/authz.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - spec
    - val
    - key
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: oidc_authz_match_json_string
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_json_string(request_rec *r, const char
      *spec, oidc_json_t *val, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/mod_auth_openidc/src/handle/authz.c:62,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/authz.c:63,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/handle/authz.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - r
    - spec
    - val
    - key
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: oidc_authz_match_json_integer
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_json_integer_value
    - sscanf
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_json_integer(request_rec *r, const char
      *spec, oidc_json_t *val, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/mod_auth_openidc/src/handle/authz.c:73,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/authz.c:74,1
    - Dst: oidc_json_real_value
      Src: /src/mod_auth_openidc/src/handle/authz.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - r
    - spec
    - val
    - key
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: oidc_authz_match_json_real
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_json_real_value
    - sscanf
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_json_real(request_rec *r, const char *spec,
      oidc_json_t *val, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/authz.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - r
    - spec
    - val
    - key
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: oidc_authz_match_json_true
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_json_true(request_rec *r, const char *spec,
      oidc_json_t *val, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/authz.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - r
    - spec
    - val
    - key
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: oidc_authz_match_json_false
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_json_false(request_rec *r, const char *spec,
      oidc_json_t *val, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/authz.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - r
    - spec
    - val
    - key
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: oidc_authz_match_json_null
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_json_null(request_rec *r, const char *spec,
      oidc_json_t *val, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/handle/authz.c:122,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/handle/authz.c:125,1
    - Dst: oidc_authz_json_handler_t*::handler
      Src: /src/mod_auth_openidc/src/handle/authz.c:127,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/authz.c:129,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/handle/authz.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - r
    - spec
    - e
    - key
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: oidc_authz_match_json_array_elem
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_authz_json_handler_t*::handler
    - oidc_json_typeof
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_json_array_elem(request_rec *r, const char
      *spec, oidc_json_t *e, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/handle/authz.c:140,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:141,1
    - Dst: oidc_authz_match_json_array_elem
      Src: /src/mod_auth_openidc/src/handle/authz.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - r
    - spec
    - val
    - key
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: oidc_authz_match_json_array
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_authz_match_json_array_elem
    - oidc_json_array_size
    - oidc_json_array_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_json_array(request_rec *r, const char *spec,
      oidc_json_t *val, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:152,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/handle/authz.c:155,1
    - Dst: oidc_authz_json_handler_t*::handler
      Src: /src/mod_auth_openidc/src/handle/authz.c:156,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/authz.c:159,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/handle/authz.c:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - r
    - spec
    - val
    - key
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: oidc_authz_match_value
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_authz_json_handler_t*::handler
    - oidc_debug
    - oidc_json_typeof
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_value(request_rec *r, const char *spec,
      oidc_json_t *val, const char *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/handle/authz.c:175,1
    - Dst: oidc_pcre_exec
      Src: /src/mod_auth_openidc/src/handle/authz.c:180,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/authz.c:180,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:182,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 5
    argNames:
    - r
    - spec
    - val
    - key
    - preg
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    - struct oidc_pcre*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: oidc_authz_match_pcre_string
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_json_string_value
    - oidc_debug
    - _oidc_strlen
    - oidc_pcre_exec
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_authz_match_pcre_string(request_rec *r, const char
      *spec, const oidc_json_t *val,\n\t\t\t\t\t       const char *key, struct oidc_pcre
      *preg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/handle/authz.c:211,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:212,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/handle/authz.c:214,1
    - Dst: oidc_authz_match_pcre_string
      Src: /src/mod_auth_openidc/src/handle/authz.c:216,1
    - Dst: oidc_pcre_free_match
      Src: /src/mod_auth_openidc/src/handle/authz.c:220,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/authz.c:225,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/handle/authz.c:225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 5
    argNames:
    - r
    - spec
    - val
    - key
    - preg
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    - struct oidc_pcre*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 230
    functionName: oidc_authz_match_pcre_array
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_authz_match_pcre_string
    - oidc_json_typeof
    - oidc_json_array_get
    - oidc_pcre_free_match
    - oidc_json_array_size
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_authz_match_pcre_array(request_rec *r, const char
      *spec, const oidc_json_t *val, const char *key,\n\t\t\t\t\t      struct oidc_pcre
      *preg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_pcre_compile
      Src: /src/mod_auth_openidc/src/handle/authz.c:241,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/authz.c:243,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/handle/authz.c:249,1
    - Dst: oidc_authz_pcre_handler_t*::handler
      Src: /src/mod_auth_openidc/src/handle/authz.c:252,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/authz.c:258,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/handle/authz.c:258,1
    - Dst: oidc_pcre_free
      Src: /src/mod_auth_openidc/src/handle/authz.c:260,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - r
    - spec
    - val
    - key
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 263
    functionName: oidc_authz_match_pcre
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_error
    - oidc_json_typeof
    - oidc_pcre_free
    - oidc_pcre_compile
    - oidc_authz_pcre_handler_t*::handler
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_pcre(request_rec *r, const char *spec,
      oidc_json_t *val, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/handle/authz.c:268,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:269,1
    - Dst: oidc_authz_match_claim
      Src: /src/mod_auth_openidc/src/handle/authz.c:270,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/authz.c:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - r
    - spec
    - val
    - key
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: oidc_authz_separator_dot
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_debug
    - oidc_json_is_object
    - oidc_authz_match_claim
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_separator_dot(request_rec *r, const char *spec,
      oidc_json_t *val, const char *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_authz_separator_handler_t*::handler
      Src: /src/mod_auth_openidc/src/handle/authz.c:304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 4
    argNames:
    - r
    - key
    - val
    - spec
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 308
    functionName: oidc_auth_handle_separator
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_authz_separator_handler_t*::handler
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_auth_handle_separator(request_rec *r, const char *key,
      oidc_json_t *val, const char *spec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/handle/authz.c:325,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/handle/authz.c:328,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/handle/authz.c:329,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:331,1
    - Dst: oidc_auth_handle_separator
      Src: /src/mod_auth_openidc/src/handle/authz.c:343,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/handle/authz.c:346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - r
    - attr_spec
    - claims
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 350
    functionName: oidc_authz_match_claim
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 1
    functionsReached:
    - oidc_json_object_iter_next
    - oidc_json_object_iter_key
    - oidc_debug
    - oidc_json_object_iter_value
    - oidc_json_object_iter
    - oidc_auth_handle_separator
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_claim(request_rec *r, const char *const
      attr_spec, oidc_json_t *claims)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:361,1
    - Dst: oidc_util_jq_filter
      Src: /src/mod_auth_openidc/src/handle/authz.c:363,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/authz.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - r
    - attr_spec
    - claims
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 367
    functionName: oidc_authz_match_claims_expr
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_util_jq_filter
    - oidc_debug
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_match_claims_expr(request_rec *r, const char
      *const attr_spec, oidc_json_t *claims)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:376,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:377,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/handle/authz.c:378,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/authz.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - msg
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 381
    functionName: oidc_authz_error_add
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - apr_table_set
    - oidc_debug
    - apr_psprintf
    - apr_table_get
    linkageType: ''
    returnType: void
    signature: void oidc_authz_error_add(request_rec *r, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state_json_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:388,1
    - Dst: oidc_request_state_json_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:389,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - r
    - claims
    - id_token
    - scope
    argTypes:
    - request_rec*
    - oidc_json_t**
    - oidc_json_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 391
    functionName: oidc_authz_get_claims_idtoken_scope
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_request_state_get
    - oidc_request_state_json_get
    linkageType: ''
    returnType: void
    signature: "void oidc_authz_get_claims_idtoken_scope(request_rec *r, oidc_json_t
      **claims, oidc_json_t **id_token,\n\t\t\t\t\t\tconst char **scope)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/handle/authz.c:398,1
    - Dst: oidc_authz_get_claims_idtoken_scope
      Src: /src/mod_auth_openidc/src/handle/authz.c:404,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/handle/authz.c:408,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/handle/authz.c:408,1
    - Dst: oidc_json_merge
      Src: /src/mod_auth_openidc/src/handle/authz.c:412,1
    - Dst: oidc_json_merge
      Src: /src/mod_auth_openidc/src/handle/authz.c:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 420
    functionName: oidc_authz_merge_claims
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_json_merge
    - oidc_json_object
    - oidc_json_string
    - oidc_authz_get_claims_idtoken_scope
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_authz_merge_claims(request_rec *r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:426,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:428,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:430,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:432,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 437
    functionName: oidc_authz_skip_to_content_handler
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - oidc_request_state_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_authz_skip_to_content_handler(request_rec *r)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/handle/authz.c:445,1
    - Dst: ap_expr_str_exec
      Src: /src/mod_auth_openidc/src/handle/authz.c:461,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/authz.c:463,1
    - Dst: ap_getword_conf
      Src: /src/mod_auth_openidc/src/handle/authz.c:471,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:475,1
    - Dst: match_claim_fn
      Src: /src/mod_auth_openidc/src/handle/authz.c:478,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/src/handle/authz.c:480,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:482,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/authz.c:489,1
    - Dst: OIDC_METRICS_COUNTER_INC_VALUE
      Src: /src/mod_auth_openidc/src/handle/authz.c:492,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:494,1
    - Dst: oidc_authz_error_add
      Src: /src/mod_auth_openidc/src/handle/authz.c:495,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - r
    - claims
    - require_args
    - parsed_require_args
    - match_claim_fn
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    - void*
    - oidc_authz_match_claim_fn_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 498
    functionName: oidc_authz_24_worker
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 1
    functionsReached:
    - oidc_warn
    - ap_get_module_config
    - oidc_error
    - ap_expr_str_exec
    - oidc_debug
    - ap_getword_conf
    - OIDC_METRICS_COUNTER_INC_VALUE
    - oidc_authz_error_add
    - match_claim_fn
    linkageType: ''
    returnType: authz_status
    signature: "authz_status oidc_authz_24_worker(request_rec *r, oidc_json_t *claims,
      const char *require_args,\n\t\t\t\t  const void *parsed_require_args, oidc_authz_match_claim_fn_type
      match_claim_fn)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:511,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/handle/authz.c:513,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/handle/authz.c:515,1
    - Dst: ap_auth_type
      Src: /src/mod_auth_openidc/src/handle/authz.c:515,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/authz.c:516,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:517,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/handle/authz.c:519,1
    - Dst: oidc_cfg_dir_unautz_action_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:524,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/authz.c:527,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/authz.c:528,1
    - Dst: oidc_cfg_dir_unauthz_arg_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:528,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/authz.c:531,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/authz.c:532,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/authz.c:533,1
    - Dst: oidc_cfg_dir_unauthz_arg_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:533,1
    - Dst: oidc_util_html_send
      Src: /src/mod_auth_openidc/src/handle/authz.c:534,1
    - Dst: oidc_cfg_dir_unauth_expr_is_set
      Src: /src/mod_auth_openidc/src/handle/authz.c:539,1
    - Dst: oidc_cfg_dir_unauth_action_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:540,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/authz.c:541,1
    - Dst: oidc_is_auth_capable_request
      Src: /src/mod_auth_openidc/src/handle/authz.c:544,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/authz.c:545,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/authz.c:549,1
    - Dst: oidc_request_authenticate_user
      Src: /src/mod_auth_openidc/src/handle/authz.c:554,1
    - Dst: oidc_util_url_cur
      Src: /src/mod_auth_openidc/src/handle/authz.c:554,1
    - Dst: oidc_cfg_x_forwarded_headers_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:554,1
    - Dst: oidc_cfg_dir_path_auth_request_params_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:555,1
    - Dst: oidc_cfg_dir_path_scope_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:556,1
    - Dst: oidc_http_hdr_out_location_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:558,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:560,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:564,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/src/handle/authz.c:565,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/authz.c:566,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/authz.c:567,1
    - Dst: oidc_util_html_send
      Src: /src/mod_auth_openidc/src/handle/authz.c:568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 507
    functionDepth: 5
    functionLinenumber: 507
    functionLinenumberEnd: 573
    functionName: oidc_authz_24_unauthorized_user
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - ap_auth_type
    - ap_get_module_config
    - oidc_debug
    - oidc_cfg_dir_unautz_action_get
    - apr_table_set
    - oidc_is_auth_capable_request
    - oidc_cfg_dir_unauth_expr_is_set
    - oidc_cfg_dir_path_scope_get
    - oidc_request_authenticate_user
    - oidc_cfg_dir_unauth_action_get
    - oidc_util_url_cur
    - oidc_cfg_dir_path_auth_request_params_get
    - oidc_http_hdr_out_location_set
    - _oidc_strnatcasecmp
    - oidc_request_state_get
    - oidc_cfg_dir_unauthz_arg_get
    - oidc_cfg_x_forwarded_headers_get
    - oidc_util_html_send
    - OIDC_METRICS_COUNTER_INC
    - oidc_util_html_send_error
    - apr_psprintf
    - oidc_util_html_escape
    - oidc_http_hdr_out_location_get
    linkageType: ''
    returnType: authz_status
    signature: authz_status oidc_authz_24_unauthorized_user(request_rec *r)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/authz.c:582,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/authz.c:585,1
    - Dst: oidc_cfg_dir_unauth_action_get
      Src: /src/mod_auth_openidc/src/handle/authz.c:586,1
    - Dst: oidc_authz_skip_to_content_handler
      Src: /src/mod_auth_openidc/src/handle/authz.c:588,1
    - Dst: oidc_authz_merge_claims
      Src: /src/mod_auth_openidc/src/handle/authz.c:595,1
    - Dst: oidc_authz_24_worker
      Src: /src/mod_auth_openidc/src/handle/authz.c:598,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/handle/authz.c:602,1
    - Dst: ap_auth_type
      Src: /src/mod_auth_openidc/src/handle/authz.c:604,1
    - Dst: oidc_authz_24_unauthorized_user
      Src: /src/mod_auth_openidc/src/handle/authz.c:605,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - r
    - require_args
    - parsed_require_args
    - match_claim_fn
    argTypes:
    - request_rec*
    - char*
    - void*
    - oidc_authz_match_claim_fn_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 579
    functionDepth: 6
    functionLinenumber: 579
    functionLinenumberEnd: 608
    functionName: oidc_authz_24_checker
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 0
    functionsReached:
    - ap_auth_type
    - _oidc_strlen
    - oidc_json_decref
    - oidc_debug
    - oidc_authz_skip_to_content_handler
    - oidc_authz_24_unauthorized_user
    - oidc_cfg_dir_unauth_action_get
    - oidc_authz_24_worker
    - oidc_authz_merge_claims
    linkageType: ''
    returnType: authz_status
    signature: "authz_status oidc_authz_24_checker(request_rec *r, const char *require_args,
      const void *parsed_require_args,\n\t\t\t\t   oidc_authz_match_claim_fn_type
      match_claim_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_authz_24_checker
      Src: /src/mod_auth_openidc/src/handle/authz.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - require_args
    - parsed_require_args
    argTypes:
    - request_rec*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 7
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: oidc_authz_24_checker_claim
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 11
    functionsReached:
    - oidc_authz_24_checker
    linkageType: ''
    returnType: authz_status
    signature: authz_status oidc_authz_24_checker_claim(request_rec *r, const char
      *require_args, const void *parsed_require_args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_authz_24_checker
      Src: /src/mod_auth_openidc/src/handle/authz.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - require_args
    - parsed_require_args
    argTypes:
    - request_rec*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 615
    functionDepth: 7
    functionLinenumber: 615
    functionLinenumberEnd: 618
    functionName: oidc_authz_24_checker_claims_expr
    functionSourceFile: /src/mod_auth_openidc/src/handle/authz.c
    functionUses: 2
    functionsReached:
    - oidc_authz_24_checker
    linkageType: ''
    returnType: authz_status
    signature: "authz_status oidc_authz_24_checker_claims_expr(request_rec *r, const
      char *require_args,\n\t\t\t\t\t       const void *parsed_require_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:57,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/response.c:60,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/src/handle/response.c:64,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/handle/response.c:64,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/src/handle/response.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: oidc_response_redirect_parent_window_to_logout
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 0
    functionsReached:
    - oidc_debug
    - oidc_util_url_redirect_uri
    - oidc_util_html_javascript_escape
    - apr_psprintf
    - oidc_util_html_content_prep
    linkageType: ''
    returnType: int
    signature: int oidc_response_redirect_parent_window_to_logout(request_rec *r,
      const oidc_cfg_t *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_prompt
      Src: /src/mod_auth_openidc/src/handle/response.c:74,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/response.c:76,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/response.c:77,1
    - Dst: oidc_response_redirect_parent_window_to_logout
      Src: /src/mod_auth_openidc/src/handle/response.c:78,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/response.c:80,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/response.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - r
    - c
    - proto_state
    - error
    - error_description
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_proto_state_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: oidc_response_authorization_error
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_response_redirect_parent_window_to_logout
    - oidc_util_html_send_error
    - oidc_proto_state_get_prompt
    - apr_psprintf
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: "int oidc_response_authorization_error(request_rec *r, const oidc_cfg_t
      *c, const oidc_proto_state_t *proto_state,\n\t\t\t\t\t     const char *error,
      const char *error_description)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_session_get_request_state
      Src: /src/mod_auth_openidc/src/handle/response.c:94,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/response.c:95,1
    - Dst: oidc_session_get_original_url
      Src: /src/mod_auth_openidc/src/handle/response.c:101,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/response.c:103,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/src/handle/response.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - r
    - r_state
    - session
    argTypes:
    - request_rec*
    - char*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 109
    functionName: oidc_response_browser_back
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_http_hdr_out_location_set
    - oidc_session_get_request_state
    - oidc_session_get_original_url
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_response_browser_back(request_rec *r, const char *r_state,
      const oidc_session_t *session)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_preserve_post_get
      Src: /src/mod_auth_openidc/src/handle/response.c:119,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:122,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/handle/response.c:124,1
    - Dst: oidc_original_request_method
      Src: /src/mod_auth_openidc/src/handle/response.c:126,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/response.c:128,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/handle/response.c:132,1
    - Dst: oidc_util_read_post_params
      Src: /src/mod_auth_openidc/src/handle/response.c:133,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:134,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/src/handle/response.c:140,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/handle/response.c:142,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/response.c:144,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/response.c:145,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/handle/response.c:145,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/response.c:147,1
    - Dst: apr_array_pstrcat
      Src: /src/mod_auth_openidc/src/handle/response.c:147,1
    - Dst: oidc_cfg_post_preserve_template_get
      Src: /src/mod_auth_openidc/src/handle/response.c:149,1
    - Dst: oidc_util_html_send_in_template
      Src: /src/mod_auth_openidc/src/handle/response.c:150,1
    - Dst: oidc_cfg_post_preserve_template_get
      Src: /src/mod_auth_openidc/src/handle/response.c:151,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/response.c:156,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/response.c:166,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/src/handle/response.c:166,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/response.c:170,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/response.c:172,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - r
    - location
    - javascript
    - javascript_method
    argTypes:
    - request_rec*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 175
    functionName: oidc_response_post_preserve_javascript
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 6
    functionsReached:
    - apr_pstrdup
    - ap_get_module_config
    - oidc_error
    - oidc_original_request_method
    - oidc_cfg_dir_preserve_post_get
    - oidc_cfg_post_preserve_template_get
    - oidc_debug
    - apr_table_make
    - oidc_util_html_javascript_escape
    - apr_psprintf
    - oidc_http_url_encode
    - apr_array_make
    - apr_array_pstrcat
    - oidc_util_read_post_params
    - oidc_util_html_send_in_template
    - apr_table_elts
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_response_post_preserve_javascript(request_rec *r,
      const char *location, char **javascript,\n\t\t\t\t\t\t  char **javascript_method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:182,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/response.c:186,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/src/handle/response.c:211,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/src/handle/response.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - original_url
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 217
    functionName: oidc_response_post_preserved_restore
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 0
    functionsReached:
    - oidc_util_html_content_prep
    - oidc_util_html_javascript_escape
    - oidc_debug
    - apr_psprintf
    linkageType: ''
    returnType: int
    signature: int oidc_response_post_preserved_restore(request_rec *r, const char
      *original_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/response.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - sid
    - issuer
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: oidc_response_make_sid_iss_unique
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 7
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_response_make_sid_iss_unique(request_rec *r, const char
      *sid, const char *issuer)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/response.c:235,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/response.c:238,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/response.c:238,1
    - Dst: oidc_cfg_session_inactivity_timeout_get
      Src: /src/mod_auth_openidc/src/handle/response.c:238,1
    - Dst: oidc_session_set_idtoken_claims
      Src: /src/mod_auth_openidc/src/handle/response.c:241,1
    - Dst: oidc_cfg_store_id_token_get
      Src: /src/mod_auth_openidc/src/handle/response.c:243,1
    - Dst: oidc_session_set_idtoken
      Src: /src/mod_auth_openidc/src/handle/response.c:245,1
    - Dst: oidc_session_set_issuer
      Src: /src/mod_auth_openidc/src/handle/response.c:249,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/response.c:249,1
    - Dst: oidc_session_set_request_state
      Src: /src/mod_auth_openidc/src/handle/response.c:252,1
    - Dst: oidc_session_set_original_url
      Src: /src/mod_auth_openidc/src/handle/response.c:253,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/src/handle/response.c:255,1
    - Dst: oidc_session_set_session_state
      Src: /src/mod_auth_openidc/src/handle/response.c:257,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:258,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/src/handle/response.c:261,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/handle/response.c:262,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/src/handle/response.c:263,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:264,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:267,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/src/handle/response.c:270,1
    - Dst: oidc_session_set_userinfo_refresh_interval
      Src: /src/mod_auth_openidc/src/handle/response.c:274,1
    - Dst: oidc_cfg_provider_userinfo_refresh_interval_get
      Src: /src/mod_auth_openidc/src/handle/response.c:275,1
    - Dst: oidc_userinfo_store_claims
      Src: /src/mod_auth_openidc/src/handle/response.c:278,1
    - Dst: oidc_session_set_access_token
      Src: /src/mod_auth_openidc/src/handle/response.c:283,1
    - Dst: oidc_session_set_access_token_type
      Src: /src/mod_auth_openidc/src/handle/response.c:285,1
    - Dst: oidc_session_set_access_token_expires
      Src: /src/mod_auth_openidc/src/handle/response.c:287,1
    - Dst: oidc_session_set_access_token_last_refresh
      Src: /src/mod_auth_openidc/src/handle/response.c:289,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/response.c:289,1
    - Dst: oidc_session_set_refresh_token
      Src: /src/mod_auth_openidc/src/handle/response.c:295,1
    - Dst: oidc_session_set_scope
      Src: /src/mod_auth_openidc/src/handle/response.c:301,1
    - Dst: oidc_cfg_provider_session_max_duration_get
      Src: /src/mod_auth_openidc/src/handle/response.c:306,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/response.c:307,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/response.c:308,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/response.c:308,1
    - Dst: oidc_cfg_provider_session_max_duration_get
      Src: /src/mod_auth_openidc/src/handle/response.c:308,1
    - Dst: oidc_session_set_session_expires
      Src: /src/mod_auth_openidc/src/handle/response.c:309,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:311,1
    - Dst: oidc_cfg_provider_session_max_duration_get
      Src: /src/mod_auth_openidc/src/handle/response.c:312,1
    - Dst: oidc_log_session_expires
      Src: /src/mod_auth_openidc/src/handle/response.c:315,1
    - Dst: oidc_session_set_cookie_domain
      Src: /src/mod_auth_openidc/src/handle/response.c:318,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/handle/response.c:319,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/handle/response.c:320,1
    - Dst: oidc_util_url_cur_host
      Src: /src/mod_auth_openidc/src/handle/response.c:321,1
    - Dst: oidc_cfg_x_forwarded_headers_get
      Src: /src/mod_auth_openidc/src/handle/response.c:321,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:325,1
    - Dst: oidc_cfg_provider_backchannel_logout_supported_get
      Src: /src/mod_auth_openidc/src/handle/response.c:326,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/src/handle/response.c:328,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/src/handle/response.c:331,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/response.c:331,1
    - Dst: oidc_cfg_provider_backchannel_logout_supported_get
      Src: /src/mod_auth_openidc/src/handle/response.c:334,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/response.c:335,1
    - Dst: oidc_response_make_sid_iss_unique
      Src: /src/mod_auth_openidc/src/handle/response.c:336,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/response.c:336,1
    - Dst: oidc_session_set_session_new
      Src: /src/mod_auth_openidc/src/handle/response.c:339,1
    - Dst: oidc_session_save
      Src: /src/mod_auth_openidc/src/handle/response.c:342,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 18
    argNames:
    - r
    - c
    - session
    - provider
    - remoteUser
    - id_token
    - id_token_jwt
    - s_userinfo_claims
    - userinfo_claims
    - access_token
    - access_token_type
    - expires_in
    - refresh_token
    - scope
    - session_state
    - state
    - original_url
    - userinfo_jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - oidc_provider_t*
    - char*
    - char*
    - oidc_jwt_t*
    - char*
    - oidc_json_t*
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 226
    functionDepth: 9
    functionLinenumber: 226
    functionLinenumberEnd: 343
    functionName: oidc_response_save_in_session
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 5
    functionsReached:
    - oidc_userinfo_store_claims
    - oidc_jose_get_string
    - oidc_cfg_provider_session_max_duration_get
    - apr_time_now
    - oidc_session_set_access_token_type
    - oidc_debug
    - oidc_cfg_cookie_domain_get
    - oidc_util_url_cur_host
    - oidc_cfg_provider_check_session_iframe_get
    - oidc_session_set_refresh_token
    - oidc_util_apr_time_from_sec
    - oidc_log_session_expires
    - oidc_session_set_access_token
    - oidc_session_set_userinfo_refresh_interval
    - oidc_session_set_session_new
    - oidc_session_set_session_state
    - oidc_session_set_request_state
    - oidc_session_save
    - oidc_session_set_access_token_expires
    - oidc_cfg_store_id_token_get
    - oidc_session_set_scope
    - oidc_session_set_idtoken_claims
    - oidc_cfg_session_inactivity_timeout_get
    - oidc_session_set_session_expires
    - oidc_cfg_provider_issuer_get
    - oidc_session_set_cookie_domain
    - oidc_response_make_sid_iss_unique
    - oidc_cfg_provider_client_id_get
    - oidc_session_set_original_url
    - oidc_cfg_x_forwarded_headers_get
    - apr_pstrdup
    - oidc_session_set_access_token_last_refresh
    - oidc_session_set_issuer
    - oidc_session_set_idtoken
    - oidc_cfg_provider_userinfo_refresh_interval_get
    - oidc_cfg_provider_backchannel_logout_supported_get
    - apr_time_from_sec
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_response_save_in_session(request_rec *r, const oidc_cfg_t
      *c, oidc_session_t *session,\n\t\t\t\t\t const oidc_provider_t *provider, const
      char *remoteUser, const char *id_token,\n\t\t\t\t\t oidc_jwt_t *id_token_jwt,
      const char *s_userinfo_claims,\n\t\t\t\t\t oidc_json_t *userinfo_claims, const
      char *access_token,\n\t\t\t\t\t const char *access_token_type, const int expires_in,
      const char *refresh_token,\n\t\t\t\t\t const char *scope, const char *session_state,
      const char *state,\n\t\t\t\t\t const char *original_url, const char *userinfo_jwt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:351,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/src/handle/response.c:353,1
    - Dst: oidc_state_cookies_clean_expired
      Src: /src/mod_auth_openidc/src/handle/response.c:356,1
    - Dst: oidc_http_get_cookie
      Src: /src/mod_auth_openidc/src/handle/response.c:359,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:361,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/handle/response.c:366,1
    - Dst: OIDC_HTTP_COOKIE_SAMESITE_NONE
      Src: /src/mod_auth_openidc/src/handle/response.c:366,1
    - Dst: oidc_proto_state_from_cookie
      Src: /src/mod_auth_openidc/src/handle/response.c:368,1
    - Dst: oidc_proto_state_get_nonce
      Src: /src/mod_auth_openidc/src/handle/response.c:372,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/src/handle/response.c:375,1
    - Dst: oidc_util_strcmp_const_time
      Src: /src/mod_auth_openidc/src/handle/response.c:377,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:378,1
    - Dst: oidc_proto_state_get_timestamp
      Src: /src/mod_auth_openidc/src/handle/response.c:385,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/handle/response.c:388,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/handle/response.c:388,1
    - Dst: oidc_cfg_state_timeout_get
      Src: /src/mod_auth_openidc/src/handle/response.c:388,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:389,1
    - Dst: oidc_cfg_default_sso_url_get
      Src: /src/mod_auth_openidc/src/handle/response.c:390,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:391,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/response.c:392,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/response.c:394,1
    - Dst: oidc_proto_state_get_original_url
      Src: /src/mod_auth_openidc/src/handle/response.c:397,1
    - Dst: oidc_proto_state_set_state
      Src: /src/mod_auth_openidc/src/handle/response.c:404,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:407,1
    - Dst: oidc_proto_state_to_string
      Src: /src/mod_auth_openidc/src/handle/response.c:407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - r
    - c
    - state
    - proto_state
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_proto_state_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 348
    functionDepth: 7
    functionLinenumber: 348
    functionLinenumberEnd: 411
    functionName: oidc_response_proto_state_restore
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 0
    functionsReached:
    - apr_time_now
    - OIDC_HTTP_COOKIE_SAMESITE_NONE
    - oidc_debug
    - oidc_cfg_default_sso_url_get
    - oidc_http_get_cookie
    - oidc_proto_state_get_original_url
    - apr_table_get
    - oidc_proto_state_get_timestamp
    - oidc_proto_state_from_cookie
    - oidc_error
    - oidc_state_browser_fingerprint
    - oidc_state_cookies_clean_expired
    - oidc_proto_state_get_nonce
    - oidc_util_strcmp_const_time
    - oidc_cfg_state_timeout_get
    - oidc_state_cookie_name
    - oidc_proto_state_set_state
    - oidc_http_set_cookie
    - oidc_util_html_send_error
    - apr_psprintf
    - oidc_proto_state_to_string
    - apr_time_from_sec
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_response_proto_state_restore(request_rec *r, const
      oidc_cfg_t *c, const char *state,\n\t\t\t\t\t\t    oidc_proto_state_t **proto_state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:421,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/response.c:423,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:424,1
    - Dst: oidc_response_proto_state_restore
      Src: /src/mod_auth_openidc/src/handle/response.c:429,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:430,1
    - Dst: oidc_get_provider_for_issuer
      Src: /src/mod_auth_openidc/src/handle/response.c:434,1
    - Dst: oidc_proto_state_get_issuer
      Src: /src/mod_auth_openidc/src/handle/response.c:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - r
    - c
    - state
    - provider
    - proto_state
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - struct oidc_provider_t**
    - oidc_proto_state_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 418
    functionDepth: 8
    functionLinenumber: 418
    functionLinenumberEnd: 437
    functionName: oidc_response_match_state
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 0
    functionsReached:
    - oidc_get_provider_for_issuer
    - oidc_error
    - oidc_debug
    - oidc_proto_state_get_issuer
    - oidc_response_proto_state_restore
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_response_match_state(request_rec *r, oidc_cfg_t *c,
      const char *state,\n\t\t\t\t\t    struct oidc_provider_t **provider, oidc_proto_state_t
      **proto_state)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_response_type
      Src: /src/mod_auth_openidc/src/handle/response.c:448,1
    - Dst: oidc_util_spaced_string_equals
      Src: /src/mod_auth_openidc/src/handle/response.c:451,1
    - Dst: oidc_proto_response_code_idtoken_token
      Src: /src/mod_auth_openidc/src/handle/response.c:453,1
    - Dst: oidc_util_spaced_string_equals
      Src: /src/mod_auth_openidc/src/handle/response.c:454,1
    - Dst: oidc_proto_response_code_idtoken
      Src: /src/mod_auth_openidc/src/handle/response.c:456,1
    - Dst: oidc_util_spaced_string_equals
      Src: /src/mod_auth_openidc/src/handle/response.c:457,1
    - Dst: oidc_proto_response_code_token
      Src: /src/mod_auth_openidc/src/handle/response.c:459,1
    - Dst: oidc_util_spaced_string_equals
      Src: /src/mod_auth_openidc/src/handle/response.c:460,1
    - Dst: oidc_proto_response_code
      Src: /src/mod_auth_openidc/src/handle/response.c:461,1
    - Dst: oidc_util_spaced_string_equals
      Src: /src/mod_auth_openidc/src/handle/response.c:462,1
    - Dst: oidc_proto_response_idtoken_token
      Src: /src/mod_auth_openidc/src/handle/response.c:464,1
    - Dst: oidc_util_spaced_string_equals
      Src: /src/mod_auth_openidc/src/handle/response.c:465,1
    - Dst: oidc_proto_response_idtoken
      Src: /src/mod_auth_openidc/src/handle/response.c:466,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:468,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/handle/response.c:472,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 7
    argNames:
    - r
    - c
    - proto_state
    - provider
    - params
    - response_mode
    - jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_proto_state_t*
    - oidc_provider_t*
    - apr_table_t*
    - char*
    - oidc_jwt_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 477
    functionName: oidc_response_flows
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 0
    functionsReached:
    - oidc_proto_response_idtoken_token
    - oidc_error
    - oidc_util_spaced_string_equals
    - oidc_jwt_destroy
    - oidc_proto_state_get_response_type
    - oidc_proto_response_idtoken
    - oidc_proto_response_code_idtoken
    - oidc_proto_response_code_token
    - oidc_proto_response_code
    - oidc_proto_response_code_idtoken_token
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_response_flows(request_rec *r, oidc_cfg_t *c, const
      oidc_proto_state_t *proto_state,\n\t\t\t\t      oidc_provider_t *provider, apr_table_t
      *params, const char *response_mode,\n\t\t\t\t      oidc_jwt_t **jwt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/response.c:485,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/response.c:486,1
    - Dst: oidc_cfg_remote_user_claim_name_get
      Src: /src/mod_auth_openidc/src/handle/response.c:486,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/response.c:487,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/handle/response.c:491,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/response.c:492,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/response.c:493,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/handle/response.c:493,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/src/handle/response.c:500,1
    - Dst: oidc_cfg_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/handle/response.c:500,1
    - Dst: oidc_cfg_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/handle/response.c:501,1
    - Dst: oidc_json_copy
      Src: /src/mod_auth_openidc/src/handle/response.c:504,1
    - Dst: oidc_json_merge
      Src: /src/mod_auth_openidc/src/handle/response.c:505,1
    - Dst: oidc_get_remote_user
      Src: /src/mod_auth_openidc/src/handle/response.c:506,1
    - Dst: oidc_cfg_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/handle/response.c:506,1
    - Dst: oidc_cfg_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/handle/response.c:507,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/handle/response.c:508,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:512,1
    - Dst: oidc_cfg_remote_user_claim_name_get
      Src: /src/mod_auth_openidc/src/handle/response.c:515,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/response.c:520,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/response.c:522,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:524,1
    - Dst: oidc_cfg_remote_user_claim_name_get
      Src: /src/mod_auth_openidc/src/handle/response.c:525,1
    - Dst: oidc_cfg_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/handle/response.c:526,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/response.c:527,1
    - Dst: oidc_cfg_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/handle/response.c:528,1
    - Dst: oidc_cfg_remote_user_claim_get
      Src: /src/mod_auth_openidc/src/handle/response.c:528,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - r
    - c
    - provider
    - jwt
    - userinfo_claims
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - oidc_jwt_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 532
    functionName: oidc_response_set_request_user
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_pstrdup
    - oidc_error
    - oidc_json_decref
    - oidc_json_copy
    - oidc_cfg_remote_user_claim_get
    - oidc_debug
    - oidc_json_merge
    - oidc_cfg_provider_issuer_get
    - oidc_cfg_remote_user_claim_name_get
    - apr_psprintf
    - _oidc_strstr
    - oidc_get_remote_user
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_response_set_request_user(request_rec *r, const oidc_cfg_t
      *c, const oidc_provider_t *provider,\n\t\t\t\t\t\t oidc_jwt_t *jwt, const oidc_json_t
      *userinfo_claims)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_default_sso_url_get
      Src: /src/mod_auth_openidc/src/handle/response.c:540,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/response.c:541,1
    - Dst: oidc_cfg_default_sso_url_get
      Src: /src/mod_auth_openidc/src/handle/response.c:543,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/src/handle/response.c:544,1
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/src/handle/response.c:544,1
    - Dst: oidc_cfg_default_sso_url_get
      Src: /src/mod_auth_openidc/src/handle/response.c:544,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/response.c:545,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:549,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:552,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/response.c:553,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/response.c:557,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/response.c:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 539
    functionDepth: 4
    functionLinenumber: 539
    functionLinenumberEnd: 563
    functionName: oidc_response_handle_state_mismatch
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_http_hdr_out_location_set
    - oidc_error
    - OIDC_METRICS_COUNTER_INC
    - oidc_util_html_send_error
    - oidc_cfg_default_sso_url_get
    - oidc_util_url_abs
    - apr_table_get
    linkageType: ''
    returnType: int
    signature: int oidc_response_handle_state_mismatch(request_rec *r, const oidc_cfg_t
      *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:571,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/response.c:575,1
    - Dst: oidc_cfg_post_restore_template_get
      Src: /src/mod_auth_openidc/src/handle/response.c:576,1
    - Dst: oidc_util_html_send_in_template
      Src: /src/mod_auth_openidc/src/handle/response.c:577,1
    - Dst: oidc_cfg_post_restore_template_get
      Src: /src/mod_auth_openidc/src/handle/response.c:578,1
    - Dst: oidc_response_post_preserved_restore
      Src: /src/mod_auth_openidc/src/handle/response.c:580,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/src/handle/response.c:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - r
    - c
    - original_url
    - original_method
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 588
    functionName: oidc_response_finish_success
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 0
    functionsReached:
    - oidc_http_hdr_out_location_set
    - oidc_cfg_post_restore_template_get
    - oidc_debug
    - oidc_response_post_preserved_restore
    - oidc_util_html_send_in_template
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: "int oidc_response_finish_success(request_rec *r, const oidc_cfg_t
      *c, const char *original_url,\n\t\t\t\t\tconst char *original_method)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:608,1
    - Dst: oidc_response_browser_back
      Src: /src/mod_auth_openidc/src/handle/response.c:611,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:611,1
    - Dst: oidc_response_match_state
      Src: /src/mod_auth_openidc/src/handle/response.c:617,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:617,1
    - Dst: oidc_response_handle_state_mismatch
      Src: /src/mod_auth_openidc/src/handle/response.c:619,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:624,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/response.c:625,1
    - Dst: oidc_response_authorization_error
      Src: /src/mod_auth_openidc/src/handle/response.c:626,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:626,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:627,1
    - Dst: oidc_response_flows
      Src: /src/mod_auth_openidc/src/handle/response.c:632,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/response.c:633,1
    - Dst: oidc_response_authorization_error
      Src: /src/mod_auth_openidc/src/handle/response.c:634,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:639,1
    - Dst: oidc_response_authorization_error
      Src: /src/mod_auth_openidc/src/handle/response.c:640,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/src/handle/response.c:644,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:644,1
    - Dst: oidc_userinfo_retrieve_claims
      Src: /src/mod_auth_openidc/src/handle/response.c:650,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:651,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:652,1
    - Dst: oidc_proto_state_get_original_url
      Src: /src/mod_auth_openidc/src/handle/response.c:655,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/response.c:657,1
    - Dst: oidc_proto_state_get_original_method
      Src: /src/mod_auth_openidc/src/handle/response.c:658,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/handle/response.c:660,1
    - Dst: oidc_proto_state_get_prompt
      Src: /src/mod_auth_openidc/src/handle/response.c:661,1
    - Dst: oidc_response_set_request_user
      Src: /src/mod_auth_openidc/src/handle/response.c:664,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:665,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/response.c:666,1
    - Dst: oidc_response_authorization_error
      Src: /src/mod_auth_openidc/src/handle/response.c:667,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:672,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/response.c:675,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/response.c:676,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/response.c:677,1
    - Dst: oidc_response_authorization_error
      Src: /src/mod_auth_openidc/src/handle/response.c:678,1
    - Dst: oidc_session_reset
      Src: /src/mod_auth_openidc/src/handle/response.c:683,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/src/handle/response.c:686,1
    - Dst: oidc_session_set_path_auth_request_params
      Src: /src/mod_auth_openidc/src/handle/response.c:687,1
    - Dst: oidc_proto_state_get_auth_request_params
      Src: /src/mod_auth_openidc/src/handle/response.c:688,1
    - Dst: oidc_session_set_path_scope
      Src: /src/mod_auth_openidc/src/handle/response.c:689,1
    - Dst: oidc_proto_state_get_path_scope
      Src: /src/mod_auth_openidc/src/handle/response.c:689,1
    - Dst: oidc_response_save_in_session
      Src: /src/mod_auth_openidc/src/handle/response.c:693,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:694,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:695,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:696,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:697,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:697,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:698,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:698,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/response.c:706,1
    - Dst: oidc_response_finish_success
      Src: /src/mod_auth_openidc/src/handle/response.c:711,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/src/handle/response.c:716,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/handle/response.c:718,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/handle/response.c:720,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 79
    argCount: 5
    argNames:
    - r
    - c
    - session
    - params
    - response_mode
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    - apr_table_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 594
    functionDepth: 10
    functionLinenumber: 594
    functionLinenumberEnd: 723
    functionName: oidc_response_process
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 0
    functionsReached:
    - oidc_debug
    - oidc_cfg_provider_check_session_iframe_get
    - oidc_response_flows
    - oidc_proto_state_get_original_url
    - apr_table_get
    - oidc_error
    - oidc_session_reset
    - oidc_response_set_request_user
    - oidc_response_browser_back
    - oidc_response_save_in_session
    - oidc_proto_state_get_original_method
    - _oidc_str_to_int
    - oidc_json_decref
    - oidc_proto_state_destroy
    - oidc_session_set_path_scope
    - oidc_response_handle_state_mismatch
    - oidc_proto_state_get_prompt
    - oidc_response_match_state
    - oidc_proto_state_get_auth_request_params
    - oidc_session_set_path_auth_request_params
    - oidc_warn
    - apr_pstrdup
    - oidc_response_authorization_error
    - oidc_response_finish_success
    - OIDC_METRICS_COUNTER_INC
    - oidc_proto_state_get_path_scope
    - oidc_jwt_destroy
    - oidc_userinfo_retrieve_claims
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: "int oidc_response_process(request_rec *r, oidc_cfg_t *c, oidc_session_t
      *session, apr_table_t *params,\n\t\t\t\t const char *response_mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:734,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/handle/response.c:740,1
    - Dst: oidc_util_read_post_params_reject_dup
      Src: /src/mod_auth_openidc/src/handle/response.c:741,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/response.c:742,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/src/handle/response.c:747,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/src/handle/response.c:748,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:748,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/handle/response.c:749,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:749,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/handle/response.c:750,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/handle/response.c:759,1
    - Dst: oidc_response_process
      Src: /src/mod_auth_openidc/src/handle/response.c:762,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 732
    functionDepth: 11
    functionLinenumber: 732
    functionLinenumberEnd: 764
    functionName: oidc_response_authorization_post
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 10
    functionsReached:
    - oidc_util_read_post_params_reject_dup
    - oidc_error
    - oidc_debug
    - apr_table_make
    - oidc_util_html_send_error
    - oidc_response_process
    - apr_table_elts
    - apr_table_get
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: int oidc_response_authorization_post(request_rec *r, oidc_cfg_t *c,
      oidc_session_t *session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/response.c:771,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/handle/response.c:774,1
    - Dst: oidc_util_read_form_encoded_params_reject_dup
      Src: /src/mod_auth_openidc/src/handle/response.c:775,1
    - Dst: oidc_response_process
      Src: /src/mod_auth_openidc/src/handle/response.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - r
    - c
    - session
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 769
    functionDepth: 11
    functionLinenumber: 769
    functionLinenumberEnd: 780
    functionName: oidc_response_authorization_redirect
    functionSourceFile: /src/mod_auth_openidc/src/handle/response.c
    functionUses: 23
    functionsReached:
    - oidc_debug
    - apr_table_make
    - oidc_response_process
    - oidc_util_read_form_encoded_params_reject_dup
    linkageType: ''
    returnType: int
    signature: int oidc_response_authorization_redirect(request_rec *r, oidc_cfg_t
      *c, oidc_session_t *session)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/handle/request.c:57,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/handle/request.c:59,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/handle/request.c:60,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/handle/request.c:61,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/handle/request.c:61,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/handle/request.c:62,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/handle/request.c:63,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/request.c:64,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/handle/request.c:72,1
    - Dst: oidc_util_hostname_endswith
      Src: /src/mod_auth_openidc/src/handle/request.c:73,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/request.c:74,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/request.c:79,1
    - Dst: oidc_util_cookie_domain_valid
      Src: /src/mod_auth_openidc/src/handle/request.c:83,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/handle/request.c:83,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/request.c:84,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/handle/request.c:88,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/request.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - r
    - c
    - original_url
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 95
    functionName: oidc_request_check_cookie_domain
    functionSourceFile: /src/mod_auth_openidc/src/handle/request.c
    functionUses: 2
    functionsReached:
    - _oidc_memset
    - oidc_error
    - oidc_cfg_cookie_domain_get
    - OIDC_METRICS_COUNTER_INC
    - oidc_util_cookie_domain_valid
    - oidc_util_url_redirect_uri
    - _oidc_strnatcasecmp
    - oidc_util_hostname_endswith
    - apr_uri_parse
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_request_check_cookie_domain(request_rec *r, const oidc_cfg_t
      *c, const char *original_url)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_cookie_same_site_state_get
      Src: /src/mod_auth_openidc/src/handle/request.c:99,1
    - Dst: OIDC_HTTP_COOKIE_SAMESITE_NONE
      Src: /src/mod_auth_openidc/src/handle/request.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - struct oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 112
    functionName: oidc_request_samesite_state_cookie
    functionSourceFile: /src/mod_auth_openidc/src/handle/request.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_cookie_same_site_state_get
    - OIDC_HTTP_COOKIE_SAMESITE_NONE
    linkageType: ''
    returnType: char
    signature: char *oidc_request_samesite_state_cookie(const request_rec *r, const
      struct oidc_cfg_t *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_to_cookie
      Src: /src/mod_auth_openidc/src/handle/request.c:125,1
    - Dst: oidc_state_cookies_clean_expired
      Src: /src/mod_auth_openidc/src/handle/request.c:134,1
    - Dst: oidc_cfg_delete_oldest_state_cookies_get
      Src: /src/mod_auth_openidc/src/handle/request.c:134,1
    - Dst: oidc_cfg_max_number_of_state_cookies_get
      Src: /src/mod_auth_openidc/src/handle/request.c:135,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/handle/request.c:137,1
    - Dst: oidc_state_cookie_name
      Src: /src/mod_auth_openidc/src/handle/request.c:145,1
    - Dst: oidc_http_set_cookie
      Src: /src/mod_auth_openidc/src/handle/request.c:148,1
    - Dst: oidc_request_samesite_state_cookie
      Src: /src/mod_auth_openidc/src/handle/request.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - r
    - c
    - state
    - proto_state
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 118
    functionDepth: 7
    functionLinenumber: 118
    functionLinenumberEnd: 151
    functionName: oidc_request_authorization_set_cookie
    functionSourceFile: /src/mod_auth_openidc/src/handle/request.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_cfg_delete_oldest_state_cookies_get
    - oidc_proto_state_to_cookie
    - oidc_request_samesite_state_cookie
    - oidc_cfg_max_number_of_state_cookies_get
    - oidc_state_cookies_clean_expired
    - oidc_http_set_cookie
    - oidc_state_cookie_name
    linkageType: ''
    returnType: int
    signature: "int oidc_request_authorization_set_cookie(request_rec *r, const oidc_cfg_t
      *c, const char *state,\n\t\t\t\t\t\t const oidc_proto_state_t *proto_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/request.c:166,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/handle/request.c:167,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/request.c:168,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/request.c:169,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/request.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rec
    - key
    - value
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: oidc_request_form_post_param_add
    functionSourceFile: /src/mod_auth_openidc/src/handle/request.c
    functionUses: 0
    functionsReached:
    - APR_ARRAY_PUSH
    - oidc_debug
    - apr_psprintf
    - oidc_util_html_escape
    linkageType: ''
    returnType: int
    signature: int oidc_request_form_post_param_add(void *rec, const char *key, const
      char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/request.c:178,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/handle/request.c:181,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/src/handle/request.c:181,1
    - Dst: apr_table_do
      Src: /src/mod_auth_openidc/src/handle/request.c:182,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/handle/request.c:186,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/handle/request.c:193,1
    - Dst: apr_array_pstrcat
      Src: /src/mod_auth_openidc/src/handle/request.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - r
    - url
    - params
    argTypes:
    - request_rec*
    - char*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 194
    functionName: oidc_request_html_post
    functionSourceFile: /src/mod_auth_openidc/src/handle/request.c
    functionUses: 0
    functionsReached:
    - oidc_debug
    - apr_psprintf
    - oidc_util_html_escape
    - apr_array_make
    - apr_array_pstrcat
    - apr_table_do
    - apr_table_elts
    linkageType: ''
    returnType: char
    signature: char *oidc_request_html_post(request_rec *r, const char *url, const
      apr_table_t *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_html_post
      Src: /src/mod_auth_openidc/src/handle/request.c:202,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_get
      Src: /src/mod_auth_openidc/src/handle/request.c:202,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/src/handle/request.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - provider
    - params
    argTypes:
    - request_rec*
    - struct oidc_provider_t*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: oidc_request_auth_send_post
    functionSourceFile: /src/mod_auth_openidc/src/handle/request.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_authorization_endpoint_url_get
    - oidc_util_html_content_prep
    - oidc_request_html_post
    linkageType: ''
    returnType: int
    signature: "int oidc_request_auth_send_post(request_rec *r, const struct oidc_provider_t
      *provider,\n\t\t\t\t       const apr_table_t *params)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_query_encoded_url
      Src: /src/mod_auth_openidc/src/handle/request.c:217,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_get
      Src: /src/mod_auth_openidc/src/handle/request.c:217,1
    - Dst: oidc_response_post_preserve_javascript
      Src: /src/mod_auth_openidc/src/handle/request.c:222,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/src/handle/request.c:224,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/handle/request.c:231,1
    - Dst: oidc_util_html_content_prep
      Src: /src/mod_auth_openidc/src/handle/request.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - r
    - provider
    - params
    argTypes:
    - request_rec*
    - struct oidc_provider_t*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 237
    functionName: oidc_request_auth_send_get
    functionSourceFile: /src/mod_auth_openidc/src/handle/request.c
    functionUses: 0
    functionsReached:
    - oidc_http_hdr_out_location_set
    - oidc_cfg_provider_authorization_endpoint_url_get
    - oidc_response_post_preserve_javascript
    - oidc_request_state_get
    - oidc_http_query_encoded_url
    - oidc_util_html_content_prep
    linkageType: ''
    returnType: int
    signature: "int oidc_request_auth_send_get(request_rec *r, const struct oidc_provider_t
      *provider,\n\t\t\t\t      const apr_table_t *params)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/request.c:249,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/request.c:252,1
    - Dst: oidc_proto_state_to_string
      Src: /src/mod_auth_openidc/src/handle/request.c:253,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/handle/request.c:255,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/request.c:256,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/handle/request.c:262,1
    - Dst: oidc_proto_request_auth_params_set
      Src: /src/mod_auth_openidc/src/handle/request.c:263,1
    - Dst: oidc_proto_profile_auth_request_method_get
      Src: /src/mod_auth_openidc/src/handle/request.c:267,1
    - Dst: oidc_request_auth_send_post
      Src: /src/mod_auth_openidc/src/handle/request.c:269,1
    - Dst: oidc_proto_request_auth_push
      Src: /src/mod_auth_openidc/src/handle/request.c:272,1
    - Dst: oidc_request_auth_send_get
      Src: /src/mod_auth_openidc/src/handle/request.c:275,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/request.c:278,1
    - Dst: oidc_proto_profile_auth_request_method_get
      Src: /src/mod_auth_openidc/src/handle/request.c:279,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/src/handle/request.c:284,1
    - Dst: oidc_http_hdr_err_out_add
      Src: /src/mod_auth_openidc/src/handle/request.c:287,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/request.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 11
    argNames:
    - r
    - cfg
    - provider
    - login_hint
    - redirect_uri
    - state
    - proto_state
    - id_token_hint
    - code_challenge
    - auth_request_params
    - path_scope
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - struct oidc_provider_t*
    - char*
    - char*
    - char*
    - oidc_proto_state_t*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 242
    functionDepth: 6
    functionLinenumber: 242
    functionLinenumberEnd: 293
    functionName: oidc_request_auth
    functionSourceFile: /src/mod_auth_openidc/src/handle/request.c
    functionUses: 18
    functionsReached:
    - oidc_request_auth_send_post
    - oidc_proto_request_auth_push
    - oidc_error
    - oidc_request_auth_send_get
    - oidc_proto_state_destroy
    - oidc_debug
    - apr_table_make
    - oidc_cfg_provider_issuer_get
    - oidc_cfg_provider_client_id_get
    - oidc_proto_profile_auth_request_method_get
    - oidc_proto_state_to_string
    - oidc_http_hdr_err_out_add
    - oidc_proto_request_auth_params_set
    linkageType: ''
    returnType: int
    signature: "int oidc_request_auth(request_rec *r, oidc_cfg_t *cfg, const struct
      oidc_provider_t *provider, const char *login_hint,\n\t\t      const char *redirect_uri,
      const char *state, oidc_proto_state_t *proto_state,\n\t\t      const char *id_token_hint,
      const char *code_challenge, const char *auth_request_params,\n\t\t      const
      char *path_scope)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/src/handle/request.c:304,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/request.c:306,1
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/handle/request.c:312,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/handle/request.c:317,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/handle/request.c:318,1
    - Dst: oidc_provider_static_config
      Src: /src/mod_auth_openidc/src/handle/request.c:326,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/handle/request.c:327,1
    - Dst: oidc_proto_nonce_gen
      Src: /src/mod_auth_openidc/src/handle/request.c:334,1
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/src/handle/request.c:340,1
    - Dst: oidc_cfg_provider_response_type_get
      Src: /src/mod_auth_openidc/src/handle/request.c:340,1
    - Dst: oidc_proto_profile_pkce_get
      Src: /src/mod_auth_openidc/src/handle/request.c:342,1
    - Dst: oidc_proto_profile_pkce_get
      Src: /src/mod_auth_openidc/src/handle/request.c:345,1
    - Dst: oidc_proto_profile_pkce_get
      Src: /src/mod_auth_openidc/src/handle/request.c:349,1
    - Dst: oidc_proto_state_new
      Src: /src/mod_auth_openidc/src/handle/request.c:354,1
    - Dst: oidc_proto_state_set_original_url
      Src: /src/mod_auth_openidc/src/handle/request.c:355,1
    - Dst: oidc_proto_state_get_original_url
      Src: /src/mod_auth_openidc/src/handle/request.c:357,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/handle/request.c:358,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/src/handle/request.c:361,1
    - Dst: oidc_proto_state_set_original_method
      Src: /src/mod_auth_openidc/src/handle/request.c:365,1
    - Dst: oidc_original_request_method
      Src: /src/mod_auth_openidc/src/handle/request.c:365,1
    - Dst: oidc_proto_state_set_issuer
      Src: /src/mod_auth_openidc/src/handle/request.c:366,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/handle/request.c:366,1
    - Dst: oidc_proto_state_set_response_type
      Src: /src/mod_auth_openidc/src/handle/request.c:367,1
    - Dst: oidc_cfg_provider_response_type_get
      Src: /src/mod_auth_openidc/src/handle/request.c:367,1
    - Dst: oidc_proto_state_set_nonce
      Src: /src/mod_auth_openidc/src/handle/request.c:368,1
    - Dst: oidc_proto_state_set_timestamp_now
      Src: /src/mod_auth_openidc/src/handle/request.c:369,1
    - Dst: oidc_cfg_provider_response_mode_get
      Src: /src/mod_auth_openidc/src/handle/request.c:370,1
    - Dst: oidc_proto_state_set_response_mode
      Src: /src/mod_auth_openidc/src/handle/request.c:371,1
    - Dst: oidc_cfg_provider_response_mode_get
      Src: /src/mod_auth_openidc/src/handle/request.c:371,1
    - Dst: oidc_proto_state_set_prompt
      Src: /src/mod_auth_openidc/src/handle/request.c:373,1
    - Dst: oidc_proto_state_set_pkce_state
      Src: /src/mod_auth_openidc/src/handle/request.c:375,1
    - Dst: oidc_cfg_provider_check_session_iframe_get
      Src: /src/mod_auth_openidc/src/handle/request.c:377,1
    - Dst: oidc_proto_state_set_auth_request_params
      Src: /src/mod_auth_openidc/src/handle/request.c:379,1
    - Dst: oidc_proto_state_set_path_scope
      Src: /src/mod_auth_openidc/src/handle/request.c:381,1
    - Dst: oidc_state_browser_fingerprint
      Src: /src/mod_auth_openidc/src/handle/request.c:385,1
    - Dst: oidc_request_authorization_set_cookie
      Src: /src/mod_auth_openidc/src/handle/request.c:391,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/src/handle/request.c:393,1
    - Dst: oidc_request_check_cookie_domain
      Src: /src/mod_auth_openidc/src/handle/request.c:397,1
    - Dst: oidc_proto_state_destroy
      Src: /src/mod_auth_openidc/src/handle/request.c:398,1
    - Dst: oidc_request_auth
      Src: /src/mod_auth_openidc/src/handle/request.c:403,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/handle/request.c:403,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/src/handle/request.c:406,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 9
    argNames:
    - r
    - c
    - provider
    - original_url
    - login_hint
    - id_token_hint
    - prompt
    - auth_request_params
    - path_scope
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 298
    functionDepth: 8
    functionLinenumber: 298
    functionLinenumberEnd: 409
    functionName: oidc_request_authenticate_user
    functionSourceFile: /src/mod_auth_openidc/src/handle/request.c
    functionUses: 9
    functionsReached:
    - oidc_request_check_cookie_domain
    - oidc_request_auth
    - oidc_debug
    - oidc_cfg_provider_check_session_iframe_get
    - oidc_proto_state_get_original_url
    - oidc_proto_state_set_path_scope
    - oidc_provider_static_config
    - oidc_error
    - oidc_state_browser_fingerprint
    - oidc_cfg_provider_response_type_get
    - oidc_cfg_provider_response_mode_get
    - oidc_request_state_set
    - oidc_proto_state_set_issuer
    - oidc_original_request_method
    - oidc_proto_state_set_nonce
    - oidc_proto_nonce_gen
    - oidc_proto_state_destroy
    - oidc_proto_state_set_original_url
    - oidc_util_spaced_string_contains
    - OIDC_METRICS_TIMING_START
    - oidc_cfg_provider_issuer_get
    - OIDC_METRICS_TIMING_ADD
    - oidc_proto_state_new
    - oidc_cfg_metadata_dir_get
    - oidc_proto_state_set_response_mode
    - oidc_request_authorization_set_cookie
    - oidc_proto_profile_pkce_get
    - oidc_proto_state_set_response_type
    - oidc_proto_state_set_pkce_state
    - oidc_proto_state_set_original_method
    - OIDC_METRICS_COUNTER_INC
    - oidc_proto_state_set_prompt
    - oidc_util_url_redirect_uri
    - oidc_proto_state_set_auth_request_params
    - oidc_proto_state_set_timestamp_now
    linkageType: ''
    returnType: int
    signature: "int oidc_request_authenticate_user(request_rec *r, oidc_cfg_t *c,
      oidc_provider_t *provider, const char *original_url,\n\t\t\t\t   const char
      *login_hint, const char *id_token_hint, const char *prompt,\n\t\t\t\t   const
      char *auth_request_params, const char *path_scope)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/proto/token.c:56,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/proto/token.c:57,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/token.c:58,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/token.c:59,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/token.c:59,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/token.c:60,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/token.c:63,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/proto/token.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - r
    - provider
    - token_type
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: oidc_proto_validate_token_type
    functionSourceFile: /src/mod_auth_openidc/src/proto/token.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_cfg_provider_issuer_get
    - _oidc_strnatcasecmp
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_validate_token_type(request_rec *r, const oidc_provider_t
      *provider,\n\t\t\t\t\t\t const char *token_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/src/proto/token.c:79,1
    - Dst: oidc_http_post_form
      Src: /src/mod_auth_openidc/src/proto/token.c:81,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/token.c:81,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/proto/token.c:82,1
    - Dst: oidc_cfg_http_timeout_long_get
      Src: /src/mod_auth_openidc/src/proto/token.c:83,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/proto/token.c:83,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/proto/token.c:84,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/proto/token.c:85,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/src/proto/token.c:86,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/src/proto/token.c:87,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/token.c:88,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/token.c:89,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/src/proto/token.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 9
    argNames:
    - r
    - cfg
    - provider
    - params
    - basic_auth
    - bearer_auth
    - dpop
    - response
    - response_hdrs
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - apr_table_t*
    - char*
    - char*
    - char*
    - char**
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 74
    functionDepth: 6
    functionLinenumber: 74
    functionLinenumberEnd: 96
    functionName: oidc_proto_token_endpoint_call
    functionSourceFile: /src/mod_auth_openidc/src/proto/token.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
    - oidc_http_post_form
    - oidc_error
    - oidc_cfg_dir_pass_cookies_get
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    - OIDC_METRICS_TIMING_START
    - OIDC_METRICS_TIMING_ADD
    - oidc_cfg_provider_token_endpoint_tls_client_key_get
    - oidc_cfg_http_timeout_long_get
    - oidc_cfg_provider_token_endpoint_url_get
    - oidc_cfg_outgoing_proxy_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_token_endpoint_call(request_rec *r, oidc_cfg_t
      *cfg, const oidc_provider_t *provider,\n\t\t\t\t\t\t const apr_table_t *params,
      const char *basic_auth,\n\t\t\t\t\t\t const char *bearer_auth, const char *dpop,
      char **response,\n\t\t\t\t\t\t apr_hash_t *response_hdrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/src/proto/token.c:105,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/proto/token.c:108,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/proto/token.c:109,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/proto/token.c:110,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/proto/token.c:111,1
    - Dst: oidc_proto_dpop_create
      Src: /src/mod_auth_openidc/src/proto/token.c:113,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/token.c:113,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/src/proto/token.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - r
    - cfg
    - provider
    - response_hdrs
    - dpop
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - apr_hash_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 119
    functionName: oidc_proto_token_endpoint_dpop_prepare
    functionSourceFile: /src/mod_auth_openidc/src/proto/token.c
    functionUses: 0
    functionsReached:
    - apr_hash_set
    - oidc_proto_profile_dpop_mode_get
    - apr_hash_make
    - oidc_cfg_provider_token_endpoint_url_get
    - oidc_proto_dpop_create
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_token_endpoint_dpop_prepare(request_rec *r,
      const oidc_cfg_t *cfg,\n\t\t\t\t\t\t\t const oidc_provider_t *provider, apr_hash_t
      **response_hdrs,\n\t\t\t\t\t\t\t char **dpop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/src/proto/token.c:129,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/src/proto/token.c:130,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_alg_get
      Src: /src/mod_auth_openidc/src/proto/token.c:131,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/token.c:131,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/proto/token.c:132,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/src/proto/token.c:132,1
    - Dst: oidc_proto_profile_token_endpoint_auth_aud
      Src: /src/mod_auth_openidc/src/proto/token.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - r
    - cfg
    - provider
    - params
    - basic_auth
    - bearer_auth
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - apr_table_t*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: oidc_proto_token_endpoint_request_auth
    functionSourceFile: /src/mod_auth_openidc/src/proto/token.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_client_secret_get
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_cfg_provider_client_keys_get
    - oidc_cfg_provider_token_endpoint_auth_alg_get
    - oidc_proto_profile_token_endpoint_auth_aud
    - oidc_cfg_provider_client_id_get
    - oidc_proto_token_endpoint_auth
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_token_endpoint_request_auth(request_rec *r,
      oidc_cfg_t *cfg,\n\t\t\t\t\t\t\t const oidc_provider_t *provider, apr_table_t
      *params,\n\t\t\t\t\t\t\t char **basic_auth, char **bearer_auth)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_dpop_use_nonce
      Src: /src/mod_auth_openidc/src/proto/token.c:151,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/token.c:152,1
    - Dst: oidc_proto_token_endpoint_request_auth
      Src: /src/mod_auth_openidc/src/proto/token.c:157,1
    - Dst: oidc_proto_token_endpoint_call
      Src: /src/mod_auth_openidc/src/proto/token.c:160,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/token.c:164,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/src/proto/token.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 9
    argNames:
    - r
    - cfg
    - provider
    - params
    - basic_auth
    - bearer_auth
    - response_hdrs
    - response
    - j_result
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - apr_table_t*
    - char**
    - char**
    - apr_hash_t*
    - char**
    - oidc_json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 140
    functionDepth: 7
    functionLinenumber: 140
    functionLinenumberEnd: 168
    functionName: oidc_proto_token_endpoint_dpop_retry
    functionSourceFile: /src/mod_auth_openidc/src/proto/token.c
    functionUses: 0
    functionsReached:
    - oidc_proto_token_endpoint_call
    - oidc_json_decref
    - oidc_proto_token_endpoint_request_auth
    - oidc_proto_dpop_use_nonce
    - oidc_cfg_provider_token_endpoint_url_get
    - oidc_json_decode_and_check_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_token_endpoint_dpop_retry(request_rec *r, oidc_cfg_t
      *cfg, const oidc_provider_t *provider,\n\t\t\t\t\t\t       apr_table_t *params,
      char **basic_auth, char **bearer_auth,\n\t\t\t\t\t\t       apr_hash_t *response_hdrs,
      char **response,\n\t\t\t\t\t\t       oidc_json_t **j_result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/proto/token.c:180,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/proto/token.c:181,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/proto/token.c:182,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/src/proto/token.c:185,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/proto/token.c:186,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/token.c:187,1
    - Dst: oidc_proto_validate_token_type
      Src: /src/mod_auth_openidc/src/proto/token.c:193,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/token.c:194,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/token.c:201,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/proto/token.c:202,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/src/proto/token.c:203,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/token.c:203,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/src/proto/token.c:204,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/proto/token.c:207,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/proto/token.c:216,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/proto/token.c:217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 9
    argNames:
    - r
    - provider
    - j_result
    - id_token
    - access_token
    - token_type
    - expires_in
    - refresh_token
    - scope
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - oidc_json_t*
    - char**
    - char**
    - char**
    - int*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 220
    functionName: oidc_proto_token_endpoint_response_parse
    functionSourceFile: /src/mod_auth_openidc/src/proto/token.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - _oidc_str_to_int
    - oidc_proto_profile_dpop_mode_get
    - oidc_error
    - oidc_json_is_integer
    - oidc_json_object_get
    - oidc_proto_validate_token_type
    - oidc_json_integer_value
    - oidc_json_is_string
    - _oidc_strnatcasecmp
    - oidc_json_string_value
    - oidc_json_object_get_string
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_token_endpoint_response_parse(request_rec *r,
      const oidc_provider_t *provider,\n\t\t\t\t\t\t\t   const oidc_json_t *j_result,
      char **id_token,\n\t\t\t\t\t\t\t   char **access_token, char **token_type, int
      *expires_in,\n\t\t\t\t\t\t\t   char **refresh_token, char **scope)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_token_endpoint_request_auth
      Src: /src/mod_auth_openidc/src/proto/token.c:238,1
    - Dst: oidc_util_table_add_query_encoded_params
      Src: /src/mod_auth_openidc/src/proto/token.c:242,1
    - Dst: oidc_cfg_provider_token_endpoint_params_get
      Src: /src/mod_auth_openidc/src/proto/token.c:243,1
    - Dst: oidc_proto_token_endpoint_dpop_prepare
      Src: /src/mod_auth_openidc/src/proto/token.c:246,1
    - Dst: oidc_proto_token_endpoint_call
      Src: /src/mod_auth_openidc/src/proto/token.c:250,1
    - Dst: oidc_json_decode_object_err
      Src: /src/mod_auth_openidc/src/proto/token.c:255,1
    - Dst: oidc_json_check_error
      Src: /src/mod_auth_openidc/src/proto/token.c:259,1
    - Dst: oidc_proto_token_endpoint_dpop_retry
      Src: /src/mod_auth_openidc/src/proto/token.c:260,1
    - Dst: oidc_proto_token_endpoint_response_parse
      Src: /src/mod_auth_openidc/src/proto/token.c:264,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/token.c:273,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 10
    argNames:
    - r
    - cfg
    - provider
    - params
    - id_token
    - access_token
    - token_type
    - expires_in
    - refresh_token
    - scope
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - apr_table_t*
    - char**
    - char**
    - char**
    - int*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 225
    functionDepth: 8
    functionLinenumber: 225
    functionLinenumberEnd: 276
    functionName: oidc_proto_token_endpoint_request
    functionSourceFile: /src/mod_auth_openidc/src/proto/token.c
    functionUses: 6
    functionsReached:
    - oidc_json_check_error
    - oidc_proto_token_endpoint_call
    - oidc_json_decref
    - oidc_proto_token_endpoint_dpop_prepare
    - oidc_proto_token_endpoint_dpop_retry
    - oidc_proto_token_endpoint_response_parse
    - oidc_json_decode_object_err
    - oidc_proto_token_endpoint_request_auth
    - oidc_cfg_provider_token_endpoint_params_get
    - oidc_util_table_add_query_encoded_params
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_token_endpoint_request(request_rec *r, oidc_cfg_t
      *cfg, const oidc_provider_t *provider,\n\t\t\t\t\t     apr_table_t *params,
      char **id_token, char **access_token,\n\t\t\t\t\t     char **token_type, int
      *expires_in, char **refresh_token, char **scope)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/token.c:285,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/proto/token.c:288,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/token.c:289,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/token.c:290,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/token.c:291,1
    - Dst: oidc_cfg_provider_scope_get
      Src: /src/mod_auth_openidc/src/proto/token.c:291,1
    - Dst: oidc_proto_token_endpoint_request
      Src: /src/mod_auth_openidc/src/proto/token.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 10
    argNames:
    - r
    - cfg
    - provider
    - rtoken
    - id_token
    - access_token
    - token_type
    - expires_in
    - refresh_token
    - scope
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - char**
    - char**
    - char**
    - int*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 281
    functionDepth: 9
    functionLinenumber: 281
    functionLinenumberEnd: 295
    functionName: oidc_proto_token_refresh_request
    functionSourceFile: /src/mod_auth_openidc/src/proto/token.c
    functionUses: 2
    functionsReached:
    - oidc_proto_token_endpoint_request
    - oidc_debug
    - apr_table_make
    - apr_table_setn
    - oidc_cfg_provider_scope_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_token_refresh_request(request_rec *r, oidc_cfg_t
      *cfg, const oidc_provider_t *provider,\n\t\t\t\t\t    const char *rtoken, char
      **id_token, char **access_token, char **token_type,\n\t\t\t\t\t    int *expires_in,
      char **refresh_token, char **scope)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/src/proto/discovery.c:58,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/discovery.c:64,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/proto/discovery.c:65,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/discovery.c:66,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/proto/discovery.c:71,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/proto/discovery.c:72,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/discovery.c:73,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/discovery.c:80,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/proto/discovery.c:81,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/discovery.c:82,1
    - Dst: oidc_cfg_parse_is_valid_url
      Src: /src/mod_auth_openidc/src/proto/discovery.c:88,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/discovery.c:88,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/discovery.c:89,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/discovery.c:90,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/discovery.c:94,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/discovery.c:94,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/discovery.c:98,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - r
    - response
    - issuer
    argTypes:
    - request_rec*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 100
    functionName: oidc_proto_webfinger_response_get_issuer
    functionSourceFile: /src/mod_auth_openidc/src/proto/discovery.c
    functionUses: 7
    functionsReached:
    - oidc_json_string_value
    - apr_pstrdup
    - oidc_error
    - oidc_json_is_object
    - oidc_json_array_get
    - oidc_json_decref
    - oidc_json_object_get
    - oidc_json_is_string
    - oidc_json_is_array
    - oidc_cfg_parse_is_valid_url
    - oidc_json_decode_and_check_error
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_webfinger_response_get_issuer(request_rec *r,
      const char *response, char **issuer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/discovery.c:109,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/proto/discovery.c:111,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/discovery.c:112,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/discovery.c:113,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/src/proto/discovery.c:116,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/proto/discovery.c:117,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/proto/discovery.c:117,1
    - Dst: oidc_cfg_http_timeout_short_get
      Src: /src/mod_auth_openidc/src/proto/discovery.c:118,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/proto/discovery.c:118,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/proto/discovery.c:119,1
    - Dst: oidc_proto_webfinger_response_get_issuer
      Src: /src/mod_auth_openidc/src/proto/discovery.c:124,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/discovery.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - r
    - cfg
    - resource
    - domain
    - issuer
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 106
    functionDepth: 7
    functionLinenumber: 106
    functionLinenumberEnd: 131
    functionName: oidc_proto_webfinger_discovery
    functionSourceFile: /src/mod_auth_openidc/src/proto/discovery.c
    functionUses: 0
    functionsReached:
    - oidc_http_get
    - oidc_cfg_http_timeout_short_get
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_cfg_provider_get
    - oidc_cfg_dir_pass_cookies_get
    - oidc_debug
    - apr_table_make
    - apr_table_setn
    - apr_psprintf
    - oidc_proto_webfinger_response_get_issuer
    - oidc_cfg_outgoing_proxy_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_webfinger_discovery(request_rec *r, oidc_cfg_t
      *cfg, const char *resource,\n\t\t\t\t\t\t const char *domain, char **issuer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/discovery.c:139,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/discovery.c:141,1
    - Dst: strrchr
      Src: /src/mod_auth_openidc/src/proto/discovery.c:142,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/discovery.c:144,1
    - Dst: oidc_proto_webfinger_discovery
      Src: /src/mod_auth_openidc/src/proto/discovery.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - r
    - cfg
    - acct
    - issuer
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 8
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: oidc_proto_discovery_account_based
    functionSourceFile: /src/mod_auth_openidc/src/proto/discovery.c
    functionUses: 3
    functionsReached:
    - oidc_error
    - oidc_debug
    - apr_psprintf
    - oidc_proto_webfinger_discovery
    - strrchr
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_discovery_account_based(request_rec *r, oidc_cfg_t
      *cfg, const char *acct, char **issuer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/discovery.c:158,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/proto/discovery.c:161,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/discovery.c:165,1
    - Dst: oidc_proto_webfinger_discovery
      Src: /src/mod_auth_openidc/src/proto/discovery.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - r
    - cfg
    - url
    - issuer
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 156
    functionDepth: 8
    functionLinenumber: 156
    functionLinenumberEnd: 168
    functionName: oidc_proto_discovery_url_based
    functionSourceFile: /src/mod_auth_openidc/src/proto/discovery.c
    functionUses: 2
    functionsReached:
    - apr_psprintf
    - oidc_proto_webfinger_discovery
    - oidc_debug
    - apr_uri_parse
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_discovery_url_based(request_rec *r, oidc_cfg_t
      *cfg, const char *url, char **issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/state.c:64,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - name
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: oidc_proto_state_get_string_value
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_get
    - oidc_json_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_string_value(const oidc_proto_state_t *proto_state,
      const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/state.c:72,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/state.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - proto_state
    - name
    - value
    argTypes:
    - oidc_proto_state_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: oidc_proto_state_set_string_value
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_json_string
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_string_value(oidc_proto_state_t *proto_state,
      const char *name, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/proto/state.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: oidc_proto_state_new
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 25
    functionsReached:
    - oidc_json_object
    linkageType: ''
    returnType: oidc_proto_state_t
    signature: oidc_proto_state_t *oidc_proto_state_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/state.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: oidc_proto_state_destroy
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 35
    functionsReached:
    - oidc_json_decref
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_destroy(oidc_proto_state_t *proto_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_deep_copy
      Src: /src/mod_auth_openidc/src/proto/state.c:95,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/state.c:98,1
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:99,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/state.c:100,1
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:101,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/proto/state.c:103,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/state.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - proto_state
    argTypes:
    - request_rec*
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: oidc_proto_state_to_string
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 4
    functionsReached:
    - oidc_json_decref
    - oidc_json_object_get
    - oidc_json_deep_copy
    - oidc_json_encode
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_to_string(request_rec *r, const oidc_proto_state_t
      *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: oidc_proto_state_get_issuer
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 4
    functionsReached:
    - oidc_proto_state_get_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_issuer(const oidc_proto_state_t *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: oidc_proto_state_get_nonce
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 4
    functionsReached:
    - oidc_proto_state_get_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_nonce(const oidc_proto_state_t *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/state.c:127,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/proto/state.c:128,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/proto/state.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: oidc_proto_state_get_timestamp
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 5
    functionsReached:
    - oidc_json_object_get
    - oidc_json_integer_value
    - apr_time_from_sec
    linkageType: ''
    returnType: apr_time_t
    signature: apr_time_t oidc_proto_state_get_timestamp(const oidc_proto_state_t
      *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: oidc_proto_state_get_prompt
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 4
    functionsReached:
    - oidc_proto_state_get_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_prompt(const oidc_proto_state_t *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: oidc_proto_state_get_response_type
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 3
    functionsReached:
    - oidc_proto_state_get_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_response_type(const oidc_proto_state_t *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: oidc_proto_state_get_response_mode
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 2
    functionsReached:
    - oidc_proto_state_get_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_response_mode(const oidc_proto_state_t *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: oidc_proto_state_get_original_url
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 6
    functionsReached:
    - oidc_proto_state_get_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_original_url(const oidc_proto_state_t *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: oidc_proto_state_get_original_method
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 3
    functionsReached:
    - oidc_proto_state_get_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_original_method(const oidc_proto_state_t
      *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: oidc_proto_state_get_state
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 3
    functionsReached:
    - oidc_proto_state_get_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_state(const oidc_proto_state_t *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: oidc_proto_state_get_pkce_state
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 2
    functionsReached:
    - oidc_proto_state_get_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_pkce_state(const oidc_proto_state_t *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: oidc_proto_state_get_auth_request_params
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 3
    functionsReached:
    - oidc_proto_state_get_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_auth_request_params(const oidc_proto_state_t
      *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: oidc_proto_state_get_path_scope
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 3
    functionsReached:
    - oidc_proto_state_get_string_value
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_get_path_scope(const oidc_proto_state_t *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - state
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: oidc_proto_state_set_state
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 13
    functionsReached:
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_state(oidc_proto_state_t *proto_state, const
      char *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - issuer
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: oidc_proto_state_set_issuer
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 16
    functionsReached:
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_issuer(oidc_proto_state_t *proto_state, const
      char *issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - original_url
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: oidc_proto_state_set_original_url
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 15
    functionsReached:
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_original_url(oidc_proto_state_t *proto_state,
      const char *original_url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - original_method
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: oidc_proto_state_set_original_method
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 15
    functionsReached:
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_original_method(oidc_proto_state_t *proto_state,
      const char *original_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - response_mode
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: oidc_proto_state_set_response_mode
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 9
    functionsReached:
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_response_mode(oidc_proto_state_t *proto_state,
      const char *response_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - response_type
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: oidc_proto_state_set_response_type
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 16
    functionsReached:
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_response_type(oidc_proto_state_t *proto_state,
      const char *response_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - nonce
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: oidc_proto_state_set_nonce
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 17
    functionsReached:
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_nonce(oidc_proto_state_t *proto_state, const
      char *nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - prompt
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: oidc_proto_state_set_prompt
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 5
    functionsReached:
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_prompt(oidc_proto_state_t *proto_state, const
      char *prompt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - pkce_state
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: oidc_proto_state_set_pkce_state
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 4
    functionsReached:
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_pkce_state(oidc_proto_state_t *proto_state,
      const char *pkce_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - auth_request_params
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: oidc_proto_state_set_auth_request_params
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 3
    functionsReached:
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_auth_request_params(oidc_proto_state_t *proto_state,
      const char *auth_request_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_set_string_value
      Src: /src/mod_auth_openidc/src/proto/state.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - proto_state
    - path_scope
    argTypes:
    - oidc_proto_state_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: oidc_proto_state_set_path_scope
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 3
    functionsReached:
    - oidc_proto_state_set_string_value
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_path_scope(oidc_proto_state_t *proto_state,
      const char *path_scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/state.c:275,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/proto/state.c:276,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/state.c:276,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/state.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto_state
    argTypes:
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: oidc_proto_state_set_timestamp_now
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 16
    functionsReached:
    - oidc_json_integer
    - oidc_json_object_set_new
    - apr_time_now
    - apr_time_sec
    linkageType: ''
    returnType: void
    signature: void oidc_proto_state_set_timestamp_now(oidc_proto_state_t *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/src/proto/state.c:285,1
    - Dst: oidc_cfg_crypto_passphrase_get
      Src: /src/mod_auth_openidc/src/proto/state.c:285,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/proto/state.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - r
    - c
    - cookieValue
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 282
    functionDepth: 5
    functionLinenumber: 282
    functionLinenumberEnd: 288
    functionName: oidc_proto_state_from_cookie
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 5
    functionsReached:
    - oidc_json_decode_object
    - oidc_util_jwt_verify
    - oidc_cfg_crypto_passphrase_get
    linkageType: ''
    returnType: oidc_proto_state_t
    signature: oidc_proto_state_t *oidc_proto_state_from_cookie(request_rec *r, const
      oidc_cfg_t *c, const char *cookieValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/src/proto/state.c:295,1
    - Dst: oidc_cfg_crypto_passphrase_get
      Src: /src/mod_auth_openidc/src/proto/state.c:295,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/proto/state.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - c
    - proto_state
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: oidc_proto_state_to_cookie
    functionSourceFile: /src/mod_auth_openidc/src/proto/state.c
    functionUses: 12
    functionsReached:
    - oidc_json_encode
    - oidc_cfg_crypto_passphrase_get
    - oidc_util_jwt_create
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_state_to_cookie(request_rec *r, const oidc_cfg_t *c,
      const oidc_proto_state_t *proto_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: oidc_profile_oidc10_token_endpoint_auth_aud
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_url_get
    linkageType: ''
    returnType: char
    signature: char *oidc_profile_oidc10_token_endpoint_auth_aud(const oidc_provider_t
      *provider)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_revocation_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:72,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/profile.c:74,1
    - Dst: oidc_cfg_provider_token_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - provider
    - val
    argTypes:
    - oidc_provider_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: oidc_profile_oidc10_revocation_endpoint_auth_aud
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    - oidc_cfg_provider_token_endpoint_url_get
    - oidc_cfg_provider_revocation_endpoint_url_get
    linkageType: ''
    returnType: char
    signature: char *oidc_profile_oidc10_revocation_endpoint_auth_aud(const oidc_provider_t
      *provider, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_auth_request_method_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: oidc_profile_oidc10_auth_request_method
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_auth_request_method_get
    linkageType: ''
    returnType: oidc_auth_request_method_t
    signature: oidc_auth_request_method_t oidc_profile_oidc10_auth_request_method(const
      oidc_provider_t *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_id_token_aud_values_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - provider
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: oidc_profile_oidc10_id_token_aud_values
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_id_token_aud_values_get
    linkageType: ''
    returnType: apr_array_header_t
    signature: "apr_array_header_t *oidc_profile_oidc10_id_token_aud_values(apr_pool_t
      *pool,\n\t\t\t\t\t\t\t\t\t const oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_pkce_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: oidc_profile_oidc10_pkce
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_pkce_get
    linkageType: ''
    returnType: oidc_proto_pkce_t
    signature: oidc_proto_pkce_t *oidc_profile_oidc10_pkce(const oidc_provider_t *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_dpop_mode_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: oidc_profile_oidc10_dpop_mode
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_dpop_mode_get
    linkageType: ''
    returnType: oidc_dpop_mode_t
    signature: oidc_dpop_mode_t oidc_profile_oidc10_dpop_mode(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: oidc_profile_oidc10_cert_bound_tokens
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_cert_bound_tokens_get
    linkageType: ''
    returnType: oidc_cert_bound_tokens_t
    signature: oidc_cert_bound_tokens_t oidc_profile_oidc10_cert_bound_tokens(const
      oidc_provider_t *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_response_require_iss_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: oidc_profile_oidc10_response_require_iss
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_response_require_iss_get
    linkageType: ''
    returnType: int
    signature: int oidc_profile_oidc10_response_require_iss(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: oidc_profile_oidc10_request_uri_scope
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_profile_oidc10_request_uri_scope(const oidc_provider_t *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: oidc_profile_fapi20_token_endpoint_auth_aud
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_issuer_get
    linkageType: ''
    returnType: char
    signature: char *oidc_profile_fapi20_token_endpoint_auth_aud(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - provider
    - val
    argTypes:
    - oidc_provider_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: oidc_profile_fapi20_revocation_endpoint_auth_aud
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_issuer_get
    linkageType: ''
    returnType: char
    signature: char *oidc_profile_fapi20_revocation_endpoint_auth_aud(const oidc_provider_t
      *provider, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: oidc_profile_fapi20_auth_request_method
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: oidc_auth_request_method_t
    signature: oidc_auth_request_method_t oidc_profile_fapi20_auth_request_method(const
      oidc_provider_t *provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_id_token_aud_values_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:147,1
    - Dst: oidc_cfg_string_list_add
      Src: /src/mod_auth_openidc/src/proto/profile.c:150,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - provider
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: oidc_profile_fapi20_id_token_aud_values
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_id_token_aud_values_get
    - oidc_cfg_provider_client_id_get
    - oidc_cfg_string_list_add
    linkageType: ''
    returnType: apr_array_header_t
    signature: "apr_array_header_t *oidc_profile_fapi20_id_token_aud_values(apr_pool_t
      *pool,\n\t\t\t\t\t\t\t\t\t const oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: oidc_profile_fapi20_pkce
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: oidc_proto_pkce_t
    signature: oidc_proto_pkce_t *oidc_profile_fapi20_pkce(const oidc_provider_t *provider)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_cert_bound_tokens_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:167,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:174,1
    - Dst: oidc_cfg_provider_dpop_supported_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:180,1
    - Dst: oidc_cfg_provider_dpop_mode_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: oidc_profile_fapi20_dpop_mode
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_dpop_mode_get
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    - oidc_cfg_provider_dpop_supported_get
    - oidc_cfg_provider_cert_bound_tokens_get
    linkageType: ''
    returnType: oidc_dpop_mode_t
    signature: oidc_dpop_mode_t oidc_profile_fapi20_dpop_mode(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: oidc_profile_fapi20_cert_bound_tokens
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: oidc_cert_bound_tokens_t
    signature: oidc_cert_bound_tokens_t oidc_profile_fapi20_cert_bound_tokens(const
      oidc_provider_t *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: oidc_profile_fapi20_response_require_iss
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int oidc_profile_fapi20_response_require_iss(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: oidc_profile_fapi20_request_uri_scope
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_profile_fapi20_request_uri_scope(const oidc_provider_t *provider)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_profile_get
      Src: /src/mod_auth_openidc/src/proto/profile.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 226
    functionName: oidc_proto_profile_ops
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_profile_get
    linkageType: ''
    returnType: oidc_proto_profile_ops_t
    signature: oidc_proto_profile_ops_t *oidc_proto_profile_ops(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_profile_ops
      Src: /src/mod_auth_openidc/src/proto/profile.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: oidc_proto_profile_token_endpoint_auth_aud
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 2
    functionsReached:
    - oidc_proto_profile_ops
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_profile_token_endpoint_auth_aud(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_profile_ops
      Src: /src/mod_auth_openidc/src/proto/profile.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - provider
    - val
    argTypes:
    - oidc_provider_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: oidc_proto_profile_revocation_endpoint_auth_aud
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 3
    functionsReached:
    - oidc_proto_profile_ops
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_profile_revocation_endpoint_auth_aud(const oidc_provider_t
      *provider, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_profile_ops
      Src: /src/mod_auth_openidc/src/proto/profile.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: oidc_proto_profile_auth_request_method_get
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 3
    functionsReached:
    - oidc_proto_profile_ops
    linkageType: ''
    returnType: oidc_auth_request_method_t
    signature: oidc_auth_request_method_t oidc_proto_profile_auth_request_method_get(const
      oidc_provider_t *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_profile_ops
      Src: /src/mod_auth_openidc/src/proto/profile.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - provider
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: oidc_proto_profile_id_token_aud_values_get
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 2
    functionsReached:
    - oidc_proto_profile_ops
    linkageType: ''
    returnType: apr_array_header_t
    signature: "apr_array_header_t *oidc_proto_profile_id_token_aud_values_get(apr_pool_t
      *pool,\n\t\t\t\t\t\t\t\t     const oidc_provider_t *provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_profile_ops
      Src: /src/mod_auth_openidc/src/proto/profile.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: oidc_proto_profile_pkce_get
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 3
    functionsReached:
    - oidc_proto_profile_ops
    linkageType: ''
    returnType: oidc_proto_pkce_t
    signature: oidc_proto_pkce_t *oidc_proto_profile_pkce_get(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_profile_ops
      Src: /src/mod_auth_openidc/src/proto/profile.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: oidc_proto_profile_dpop_mode_get
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 6
    functionsReached:
    - oidc_proto_profile_ops
    linkageType: ''
    returnType: oidc_dpop_mode_t
    signature: oidc_dpop_mode_t oidc_proto_profile_dpop_mode_get(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_profile_ops
      Src: /src/mod_auth_openidc/src/proto/profile.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: oidc_proto_profile_cert_bound_tokens_get
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 3
    functionsReached:
    - oidc_proto_profile_ops
    linkageType: ''
    returnType: oidc_cert_bound_tokens_t
    signature: oidc_cert_bound_tokens_t oidc_proto_profile_cert_bound_tokens_get(const
      oidc_provider_t *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_profile_ops
      Src: /src/mod_auth_openidc/src/proto/profile.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: oidc_proto_profile_response_require_iss_get
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 2
    functionsReached:
    - oidc_proto_profile_ops
    linkageType: ''
    returnType: int
    signature: int oidc_proto_profile_response_require_iss_get(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_profile_ops
      Src: /src/mod_auth_openidc/src/proto/profile.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: oidc_proto_profile_request_uri_scope_get
    functionSourceFile: /src/mod_auth_openidc/src/proto/profile.c
    functionUses: 1
    functionsReached:
    - oidc_proto_profile_ops
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_profile_request_uri_scope_get(const oidc_provider_t
      *provider)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/dpop.c:56,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/proto/dpop.c:57,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/dpop.c:58,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/dpop.c:58,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/proto/dpop.c:62,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/dpop.c:64,1
    - Dst: oidc_proto_dpop_create
      Src: /src/mod_auth_openidc/src/proto/dpop.c:69,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/proto/dpop.c:72,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/dpop.c:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 8
    argNames:
    - r
    - cfg
    - j_result
    - response_hdrs
    - url
    - method
    - access_token
    - dpop
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - apr_hash_t*
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 79
    functionName: oidc_proto_dpop_use_nonce
    functionSourceFile: /src/mod_auth_openidc/src/proto/dpop.c
    functionUses: 4
    functionsReached:
    - oidc_error
    - oidc_json_object_get
    - OIDC_METRICS_COUNTER_INC
    - oidc_debug
    - oidc_json_is_string
    - _oidc_strcmp
    - oidc_json_string_value
    - oidc_proto_dpop_create
    - apr_hash_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_dpop_use_nonce(request_rec *r, const oidc_cfg_t
      *cfg, const oidc_json_t *j_result,\n\t\t\t\t     apr_hash_t *response_hdrs,
      const char *url, const char *method,\n\t\t\t\t     const char *access_token,
      char **dpop)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/dpop.c:93,1
    - Dst: oidc_proto_jwt_create_from_first_pkey
      Src: /src/mod_auth_openidc/src/proto/dpop.c:95,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/dpop.c:98,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/dpop.c:98,1
    - Dst: oidc_jwk_to_public_json
      Src: /src/mod_auth_openidc/src/proto/dpop.c:99,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/dpop.c:100,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/dpop.c:100,1
    - Dst: oidc_jwt_hdr_set_json
      Src: /src/mod_auth_openidc/src/proto/dpop.c:103,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/dpop.c:104,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/dpop.c:104,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/dpop.c:108,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/dpop.c:108,1
    - Dst: oidc_proto_jti_gen
      Src: /src/mod_auth_openidc/src/proto/dpop.c:108,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/dpop.c:109,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/dpop.c:109,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/dpop.c:110,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/dpop.c:110,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/dpop.c:111,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/proto/dpop.c:112,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/dpop.c:112,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/dpop.c:112,1
    - Dst: oidc_jose_hash_and_base64url_encode
      Src: /src/mod_auth_openidc/src/proto/dpop.c:115,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/proto/dpop.c:116,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/dpop.c:117,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/dpop.c:117,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/dpop.c:120,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/dpop.c:120,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/dpop.c:124,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/dpop.c:124,1
    - Dst: oidc_proto_jwt_sign_and_serialize
      Src: /src/mod_auth_openidc/src/proto/dpop.c:126,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/dpop.c:134,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 7
    argNames:
    - r
    - cfg
    - url
    - method
    - access_token
    - nonce
    - dpop
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 137
    functionName: oidc_proto_dpop_create
    functionSourceFile: /src/mod_auth_openidc/src/proto/dpop.c
    functionUses: 7
    functionsReached:
    - oidc_json_object_set_new
    - _oidc_strlen
    - oidc_error
    - apr_time_sec
    - oidc_jwt_hdr_set_json
    - oidc_proto_jwt_create_from_first_pkey
    - apr_time_now
    - oidc_debug
    - oidc_proto_jti_gen
    - oidc_jwt_destroy
    - oidc_jose_hash_and_base64url_encode
    - oidc_proto_jwt_sign_and_serialize
    - oidc_jose_e2s
    - oidc_json_string
    - oidc_json_integer
    - oidc_jwk_to_public_json
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_dpop_create(request_rec *r, const oidc_cfg_t
      *cfg, const char *url, const char *method,\n\t\t\t\t  const char *access_token,
      const char *nonce, char **dpop)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:63,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:66,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:70,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:73,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_alg_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:74,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_enc_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:75,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:77,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:77,1
    - Dst: oidc_alg2keysize
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:77,1
    - Dst: oidc_cfg_provider_userinfo_encrypted_response_alg_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:81,1
    - Dst: oidc_jwe_decrypt
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:82,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:83,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:83,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:85,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:85,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:88,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:92,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:93,1
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:98,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:99,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:99,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:101,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:101,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:104,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:108,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:111,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:111,1
    - Dst: oidc_proto_jwt_verify
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:115,1
    - Dst: oidc_cfg_provider_jwks_uri_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:115,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:116,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:117,1
    - Dst: oidc_cfg_provider_userinfo_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:118,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:120,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:123,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:125,1
    - Dst: oidc_json_copy
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:126,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:127,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:134,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:136,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 6
    argNames:
    - r
    - cfg
    - provider
    - response
    - claims
    - userinfo_jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char**
    - oidc_json_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 139
    functionName: oidc_proto_userinfo_response_jwt_parse
    functionSourceFile: /src/mod_auth_openidc/src/proto/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_jwks_uri_get
    - oidc_debug
    - oidc_proto_jwt_verify
    - oidc_util_key_symmetric_merge
    - oidc_cfg_provider_userinfo_signed_response_alg_get
    - oidc_error
    - oidc_proto_jwt_header_peek
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_jwk_destroy
    - oidc_jose_e2s
    - oidc_jwt_parse
    - oidc_util_key_symmetric_create
    - oidc_alg2keysize
    - apr_pstrdup
    - oidc_cfg_provider_client_secret_get
    - oidc_cfg_provider_userinfo_encrypted_response_enc_get
    - oidc_json_copy
    - oidc_cfg_private_keys_get
    - oidc_jwt_destroy
    - oidc_jwe_decrypt
    - oidc_cfg_provider_userinfo_encrypted_response_alg_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_userinfo_response_jwt_parse(request_rec *r,
      oidc_cfg_t *cfg,\n\t\t\t\t\t\t\t const oidc_provider_t *provider, char **response,\n\t\t\t\t\t\t\t
      oidc_json_t **claims, char **userinfo_jwt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:153,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:154,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:155,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:155,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:158,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:158,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:159,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:159,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:164,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:165,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:165,1
    - Dst: oidc_cfg_http_timeout_long_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:166,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:166,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:167,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:167,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:168,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - r
    - cfg
    - value
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 151
    functionDepth: 6
    functionLinenumber: 151
    functionLinenumberEnd: 171
    functionName: oidc_proto_userinfo_composite_source_payload
    functionSourceFile: /src/mod_auth_openidc/src/proto/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
    - oidc_http_get
    - apr_pstrdup
    - oidc_json_object_get
    - oidc_cfg_provider_get
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_cfg_dir_pass_cookies_get
    - oidc_cfg_http_timeout_long_get
    - oidc_json_is_string
    - oidc_cfg_provider_token_endpoint_tls_client_key_get
    - oidc_json_string_value
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    - oidc_cfg_outgoing_proxy_get
    linkageType: ''
    returnType: char
    signature: "char *oidc_proto_userinfo_composite_source_payload(request_rec *r,
      oidc_cfg_t *cfg,\n\t\t\t\t\t\t\t\tconst oidc_json_t *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:181,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:182,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:182,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:184,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:184,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:186,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:188,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:189,1
    - Dst: oidc_json_merge
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:191,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - r
    - cfg
    - key
    - s_json
    - decoded
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 194
    functionName: oidc_proto_userinfo_composite_decode_source
    functionSourceFile: /src/mod_auth_openidc/src/proto/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - oidc_error
    - oidc_json_object_get
    - oidc_cfg_private_keys_get
    - oidc_json_merge
    - oidc_json_object
    - oidc_jwt_destroy
    - oidc_jose_e2s
    - oidc_jwt_parse
    - oidc_util_key_symmetric_merge
    linkageType: ''
    returnType: void
    signature: "void oidc_proto_userinfo_composite_decode_source(request_rec *r, const
      oidc_cfg_t *cfg, const char *key,\n\t\t\t\t\t\t\tconst char *s_json, oidc_json_t
      *decoded)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:201,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:203,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:204,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:205,1
    - Dst: oidc_proto_userinfo_composite_source_payload
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:206,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:207,1
    - Dst: oidc_proto_userinfo_composite_decode_source
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:208,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - r
    - cfg
    - sources
    - decoded
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 7
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: oidc_proto_userinfo_composite_decode_sources
    functionSourceFile: /src/mod_auth_openidc/src/proto/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_iter_next
    - oidc_json_is_object
    - oidc_proto_userinfo_composite_source_payload
    - oidc_json_object_iter_key
    - oidc_json_object_iter_value
    - oidc_proto_userinfo_composite_decode_source
    - oidc_json_object_iter
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: "void oidc_proto_userinfo_composite_decode_sources(request_rec *r,
      oidc_cfg_t *cfg, oidc_json_t *sources,\n\t\t\t\t\t\t\t oidc_json_t *decoded)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:219,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:221,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:222,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:222,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:224,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:226,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:227,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:229,1
    - Dst: oidc_json_object_set
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:231,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:231,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - r
    - names
    - decoded
    - claims
    argTypes:
    - request_rec*
    - oidc_json_t*
    - oidc_json_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 235
    functionName: oidc_proto_userinfo_composite_apply_names
    functionSourceFile: /src/mod_auth_openidc/src/proto/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_json_object_iter_next
    - oidc_json_object_get
    - oidc_json_object_iter_key
    - oidc_json_object_iter_value
    - oidc_debug
    - oidc_json_string_value
    - oidc_json_object_iter
    - oidc_json_object_set
    linkageType: ''
    returnType: void
    signature: "void oidc_proto_userinfo_composite_apply_names(request_rec *r, oidc_json_t
      *names, const oidc_json_t *decoded,\n\t\t\t\t\t\t      oidc_json_t *claims)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:245,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:247,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:248,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:251,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:252,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:253,1
    - Dst: oidc_json_object
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:257,1
    - Dst: oidc_proto_userinfo_composite_decode_sources
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:259,1
    - Dst: oidc_proto_userinfo_composite_apply_names
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:260,1
    - Dst: oidc_json_object_del
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:262,1
    - Dst: oidc_json_object_del
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:263,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - r
    - cfg
    - claims
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 240
    functionDepth: 8
    functionLinenumber: 240
    functionLinenumberEnd: 267
    functionName: oidc_proto_userinfo_request_composite_claims
    functionSourceFile: /src/mod_auth_openidc/src/proto/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_proto_userinfo_composite_decode_sources
    - oidc_json_is_object
    - oidc_json_decref
    - oidc_json_object_get
    - oidc_debug
    - oidc_json_object
    - oidc_json_object_del
    - oidc_proto_userinfo_composite_apply_names
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_userinfo_request_composite_claims(request_rec
      *r, oidc_cfg_t *cfg, oidc_json_t *claims)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:276,1
    - Dst: oidc_cfg_provider_userinfo_token_method_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:279,1
    - Dst: oidc_http_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:280,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:280,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:281,1
    - Dst: oidc_cfg_http_timeout_long_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:282,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:282,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:283,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:284,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:285,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:286,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:287,1
    - Dst: oidc_cfg_provider_userinfo_token_method_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:290,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:291,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:292,1
    - Dst: oidc_http_post_form
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:293,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:293,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:294,1
    - Dst: oidc_cfg_http_timeout_long_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:295,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:296,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:296,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:297,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:298,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:299,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:300,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:304,1
    - Dst: oidc_cfg_provider_userinfo_token_method_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:305,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 8
    argNames:
    - r
    - cfg
    - provider
    - access_token
    - dpop
    - response
    - response_code
    - response_hdrs
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - char*
    - char**
    - long*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 272
    functionDepth: 6
    functionLinenumber: 272
    functionLinenumberEnd: 312
    functionName: oidc_proto_userinfo_endpoint_call
    functionSourceFile: /src/mod_auth_openidc/src/proto/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
    - oidc_cfg_provider_userinfo_token_method_get
    - oidc_http_get
    - oidc_http_post_form
    - oidc_error
    - oidc_cfg_dir_pass_cookies_get
    - oidc_cfg_provider_ssl_validate_server_get
    - OIDC_METRICS_COUNTER_INC
    - apr_table_make
    - OIDC_METRICS_TIMING_START
    - OIDC_METRICS_TIMING_ADD
    - oidc_cfg_provider_token_endpoint_tls_client_key_get
    - apr_table_setn
    - oidc_cfg_http_timeout_long_get
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    - oidc_cfg_outgoing_proxy_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_userinfo_endpoint_call(request_rec *r, oidc_cfg_t
      *cfg, const oidc_provider_t *provider,\n\t\t\t\t\t\t    const char *access_token,
      const char *dpop, char **response,\n\t\t\t\t\t\t    long *response_code, apr_hash_t
      *response_hdrs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:322,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:323,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:324,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:325,1
    - Dst: oidc_proto_dpop_create
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:326,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - r
    - cfg
    - provider
    - method
    - access_token
    - dpop
    - response_hdrs
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - char*
    - char**
    - apr_hash_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 328
    functionName: oidc_proto_userinfo_request_dpop_init
    functionSourceFile: /src/mod_auth_openidc/src/proto/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - apr_hash_set
    - oidc_proto_dpop_create
    - apr_hash_make
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_userinfo_request_dpop_init(request_rec *r, const
      oidc_cfg_t *cfg,\n\t\t\t\t\t\t\tconst oidc_provider_t *provider, const char
      *method,\n\t\t\t\t\t\t\tconst char *access_token, char **dpop,\n\t\t\t\t\t\t\tapr_hash_t
      **response_hdrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_userinfo_endpoint_call
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:338,1
    - Dst: oidc_json_decode_object_err
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:342,1
    - Dst: oidc_proto_userinfo_response_jwt_parse
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 10
    argNames:
    - r
    - cfg
    - provider
    - access_token
    - dpop
    - response_hdrs
    - s_userinfo
    - response_code
    - userinfo_claims
    - userinfo_jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - char*
    - apr_hash_t*
    - char**
    - long*
    - oidc_json_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 7
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: oidc_proto_userinfo_response_resolve
    functionSourceFile: /src/mod_auth_openidc/src/proto/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_proto_userinfo_response_jwt_parse
    - oidc_json_decode_object_err
    - oidc_proto_userinfo_endpoint_call
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_userinfo_response_resolve(request_rec *r, oidc_cfg_t
      *cfg, const oidc_provider_t *provider,\n\t\t\t\t\t\t       const char *access_token,
      const char *dpop,\n\t\t\t\t\t\t       apr_hash_t *response_hdrs, char **s_userinfo,\n\t\t\t\t\t\t
      \      long *response_code, oidc_json_t **userinfo_claims,\n\t\t\t\t\t\t       char
      **userinfo_jwt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:355,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:357,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:359,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:360,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:367,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - r
    - id_token_sub
    - userinfo_claims
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 376
    functionName: oidc_proto_userinfo_request_validate_sub
    functionSourceFile: /src/mod_auth_openidc/src/proto/userinfo.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_jose_get_string
    - oidc_debug
    - apr_table_get
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_userinfo_request_validate_sub(request_rec *r,
      const char *id_token_sub,\n\t\t\t\t\t\t\t   const oidc_json_t *userinfo_claims)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_userinfo_token_method_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:389,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:391,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:392,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:392,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:395,1
    - Dst: oidc_proto_userinfo_request_dpop_init
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:396,1
    - Dst: oidc_proto_userinfo_response_resolve
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:400,1
    - Dst: oidc_json_check_error
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:406,1
    - Dst: oidc_proto_dpop_use_nonce
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:408,1
    - Dst: oidc_cfg_provider_userinfo_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:409,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:414,1
    - Dst: oidc_proto_userinfo_response_resolve
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:417,1
    - Dst: oidc_json_check_error
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:422,1
    - Dst: oidc_proto_userinfo_request_composite_claims
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:426,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:427,1
    - Dst: oidc_proto_userinfo_request_validate_sub
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:429,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/userinfo.c:437,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 10
    argNames:
    - r
    - cfg
    - provider
    - id_token_sub
    - access_token
    - access_token_type
    - s_userinfo
    - userinfo_jwt
    - userinfo_claims
    - response_code
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - char*
    - char*
    - char**
    - char**
    - oidc_json_t**
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 381
    functionDepth: 9
    functionLinenumber: 381
    functionLinenumberEnd: 442
    functionName: oidc_proto_userinfo_request
    functionSourceFile: /src/mod_auth_openidc/src/proto/userinfo.c
    functionUses: 26
    functionsReached:
    - oidc_util_mask_value
    - oidc_cfg_provider_userinfo_token_method_get
    - oidc_proto_userinfo_response_resolve
    - oidc_json_check_error
    - oidc_proto_userinfo_request_composite_claims
    - oidc_json_decref
    - oidc_proto_userinfo_request_dpop_init
    - oidc_debug
    - oidc_json_encode
    - _oidc_strnatcasecmp
    - oidc_proto_userinfo_request_validate_sub
    - oidc_cfg_provider_userinfo_endpoint_url_get
    - oidc_proto_dpop_use_nonce
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_userinfo_request(request_rec *r, oidc_cfg_t
      *cfg, const oidc_provider_t *provider,\n\t\t\t\t       const char *id_token_sub,
      const char *access_token,\n\t\t\t\t       const char *access_token_type, char
      **s_userinfo, char **userinfo_jwt,\n\t\t\t\t       oidc_json_t **userinfo_claims,
      long *response_code)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/jwt.c:53,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/jwt.c:53,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:58,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:64,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwt.c:70,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/jwt.c:76,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/src/proto/jwt.c:76,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:80,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - r
    - jwt
    - is_mandatory
    - slack
    argTypes:
    - request_rec*
    - oidc_jwt_t*
    - apr_byte_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 94
    functionName: oidc_proto_validate_iat
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwt.c
    functionUses: 0
    functionsReached:
    - apr_time_sec
    - oidc_error
    - apr_time_now
    - oidc_debug
    - oidc_util_apr_time_from_sec
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_validate_iat(request_rec *r, const oidc_jwt_t
      *jwt, apr_byte_t is_mandatory, int slack)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/jwt.c:102,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/jwt.c:102,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:107,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:114,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/jwt.c:120,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/src/proto/jwt.c:120,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - r
    - jwt
    - is_mandatory
    argTypes:
    - request_rec*
    - oidc_jwt_t*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 129
    functionName: oidc_proto_validate_exp
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwt.c
    functionUses: 0
    functionsReached:
    - apr_time_now
    - apr_time_sec
    - oidc_util_apr_time_from_sec
    - oidc_error
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_validate_exp(request_rec *r, const oidc_jwt_t
      *jwt, apr_byte_t is_mandatory)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:141,1
    - Dst: oidc_util_issuer_match
      Src: /src/mod_auth_openidc/src/proto/jwt.c:147,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:148,1
    - Dst: oidc_proto_validate_exp
      Src: /src/mod_auth_openidc/src/proto/jwt.c:155,1
    - Dst: oidc_proto_validate_iat
      Src: /src/mod_auth_openidc/src/proto/jwt.c:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - r
    - jwt
    - iss
    - exp_is_mandatory
    - iat_is_mandatory
    - iat_slack
    argTypes:
    - request_rec*
    - oidc_jwt_t*
    - char*
    - apr_byte_t
    - apr_byte_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 163
    functionName: oidc_proto_jwt_validate
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwt.c
    functionUses: 5
    functionsReached:
    - oidc_proto_validate_exp
    - oidc_proto_validate_iat
    - oidc_error
    - oidc_util_issuer_match
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_jwt_validate(request_rec *r, oidc_jwt_t *jwt,
      const char *iss, apr_byte_t exp_is_mandatory,\n\t\t\t\t   apr_byte_t iat_is_mandatory,
      int iat_slack)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/proto/jwt.c:168,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/proto/jwt.c:168,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/proto/jwt.c:170,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/proto/jwt.c:171,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/jwt.c:172,1
    - Dst: oidc_util_key_sets_hash_merge
      Src: /src/mod_auth_openidc/src/proto/jwt.c:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - r
    - static_keys
    - dynamic_keys
    argTypes:
    - request_rec*
    - apr_hash_t*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 180
    functionName: oidc_proto_jwt_verify_keys_merge
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwt.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - apr_hash_first
    - apr_hash_this
    - apr_hash_next
    - oidc_util_key_sets_hash_merge
    - apr_hash_get
    linkageType: ''
    returnType: apr_hash_t
    signature: apr_hash_t *oidc_proto_jwt_verify_keys_merge(request_rec *r, apr_hash_t
      *static_keys, apr_hash_t *dynamic_keys)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/jwt.c:195,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:196,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/jwt.c:200,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:204,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/proto/jwt.c:208,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwt.c:212,1
    - Dst: oidc_jwt_alg2kty
      Src: /src/mod_auth_openidc/src/proto/jwt.c:216,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwt.c:217,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/src/proto/jwt.c:224,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/src/proto/jwt.c:226,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/src/proto/jwt.c:232,1
    - Dst: oidc_proto_jwt_verify_keys_merge
      Src: /src/mod_auth_openidc/src/proto/jwt.c:232,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/jwt.c:241,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/jwt.c:243,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/src/proto/jwt.c:246,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/src/proto/jwt.c:247,1
    - Dst: oidc_jwt_verify
      Src: /src/mod_auth_openidc/src/proto/jwt.c:249,1
    - Dst: oidc_proto_jwt_verify_keys_merge
      Src: /src/mod_auth_openidc/src/proto/jwt.c:249,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:253,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/jwt.c:253,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/src/proto/jwt.c:254,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwt.c:258,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/src/proto/jwt.c:260,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 7
    argNames:
    - r
    - cfg
    - jwt
    - jwks_uri
    - ssl_validate_server
    - static_keys
    - alg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_jwt_t*
    - oidc_jwks_uri_t*
    - int
    - apr_hash_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 262
    functionName: oidc_proto_jwt_verify
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwt.c
    functionUses: 5
    functionsReached:
    - oidc_warn
    - oidc_error
    - oidc_jwt_verify
    - apr_hash_make
    - oidc_jwk_list_destroy_hash
    - oidc_jwt_alg2kty
    - oidc_debug
    - oidc_proto_jwks_uri_keys
    - oidc_jose_e2s
    - oidc_proto_jwt_verify_keys_merge
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_jwt_verify(request_rec *r, oidc_cfg_t *cfg,
      oidc_jwt_t *jwt, const oidc_jwks_uri_t *jwks_uri,\n\t\t\t\t int ssl_validate_server,
      apr_hash_t *static_keys, const char *alg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/proto/jwt.c:270,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/jwt.c:272,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/src/proto/jwt.c:275,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/proto/jwt.c:275,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/proto/jwt.c:275,1
    - Dst: oidc_util_base64url_decode
      Src: /src/mod_auth_openidc/src/proto/jwt.c:276,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/jwt.c:277,1
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/proto/jwt.c:283,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/jwt.c:286,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/jwt.c:287,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/jwt.c:287,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/jwt.c:289,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/jwt.c:290,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/jwt.c:290,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/jwt.c:292,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/jwt.c:293,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/jwt.c:293,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/jwt.c:295,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - r
    - compact_encoded_jwt
    - alg
    - enc
    - kid
    argTypes:
    - request_rec*
    - char*
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 298
    functionName: oidc_proto_jwt_header_peek
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwt.c
    functionUses: 12
    functionsReached:
    - oidc_warn
    - oidc_json_string_value
    - _oidc_strlen
    - apr_pstrdup
    - oidc_json_decref
    - oidc_json_decode_object
    - oidc_json_object_get
    - oidc_util_base64url_decode
    - _oidc_strstr
    - apr_pstrmemdup
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_jwt_header_peek(request_rec *r, const char *compact_encoded_jwt,
      char **alg, char **enc, char **kid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwt.c:304,1
    - Dst: oidc_util_key_list_first
      Src: /src/mod_auth_openidc/src/proto/jwt.c:306,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/proto/jwt.c:306,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:308,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/src/proto/jwt.c:312,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/jwt.c:316,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/jwt.c:320,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/jwt.c:322,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:324,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - r
    - cfg
    - jwk
    - jwt
    - use_psa_for_rsa
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_jwk_t**
    - oidc_jwt_t**
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 334
    functionName: oidc_proto_jwt_create_from_first_pkey
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwt.c
    functionUses: 2
    functionsReached:
    - oidc_jwt_new
    - apr_pstrdup
    - oidc_error
    - oidc_cfg_private_keys_get
    - oidc_debug
    - oidc_util_key_list_first
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_jwt_create_from_first_pkey(request_rec *r, const
      oidc_cfg_t *cfg, oidc_jwk_t **jwk,\n\t\t\t\t\t\t oidc_jwt_t **jwt, apr_byte_t
      use_psa_for_rsa)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/src/proto/jwt.c:340,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:341,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/jwt.c:341,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/src/proto/jwt.c:345,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwt.c:347,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/jwt.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - r
    - jwk
    - jwt
    - cser
    argTypes:
    - request_rec*
    - oidc_jwk_t*
    - oidc_jwt_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 356
    functionName: oidc_proto_jwt_sign_and_serialize
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwt.c
    functionUses: 3
    functionsReached:
    - oidc_error
    - oidc_jwt_sign
    - oidc_jose_e2s
    - oidc_jose_jwt_serialize
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_jwt_sign_and_serialize(request_rec *r, const
      oidc_jwk_t *jwk, oidc_jwt_t *jwt, char **cser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/jwks.c:53,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/jwks.c:53,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/jwks.c:54,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwks.c:55,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/jwks.c:56,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/src/proto/jwks.c:62,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwks.c:63,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/proto/jwks.c:65,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/proto/jwks.c:68,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/jwks.c:68,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/proto/jwks.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - r
    - jwk
    - elem
    - result
    argTypes:
    - request_rec*
    - oidc_jwk_t*
    - oidc_json_t*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 69
    functionName: oidc_proto_jwks_key_include_any
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwks.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_to_json
    - apr_hash_set
    - oidc_json_object_get
    - oidc_debug
    - apr_hash_count
    - apr_psprintf
    - oidc_json_string_value
    - oidc_jwk_destroy
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: "void oidc_proto_jwks_key_include_any(request_rec *r, oidc_jwk_t *jwk,
      const oidc_json_t *elem,\n\t\t\t\t\t    apr_hash_t *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_parse_json
      Src: /src/mod_auth_openidc/src/proto/jwks.c:82,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/jwks.c:83,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/jwks.c:83,1
    - Dst: oidc_jwt_alg2kty
      Src: /src/mod_auth_openidc/src/proto/jwks.c:88,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwks.c:89,1
    - Dst: oidc_jwt_alg2kty
      Src: /src/mod_auth_openidc/src/proto/jwks.c:91,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/jwks.c:92,1
    - Dst: oidc_proto_jwks_key_include_any
      Src: /src/mod_auth_openidc/src/proto/jwks.c:98,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/jwks.c:103,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/src/proto/jwks.c:104,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwks.c:105,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/proto/jwks.c:106,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/proto/jwks.c:111,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/jwks.c:112,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/src/proto/jwks.c:113,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwks.c:114,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/proto/jwks.c:115,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/jwks.c:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - r
    - jwt
    - elem
    - x5t
    - result
    argTypes:
    - request_rec*
    - oidc_jwt_t*
    - oidc_json_t*
    - char*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 122
    functionName: oidc_proto_jwks_key_apply
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwks.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_jwk_to_json
    - apr_hash_set
    - oidc_jwt_alg2kty
    - oidc_debug
    - oidc_jwk_parse_json
    - oidc_jose_e2s
    - oidc_json_object_get_string
    - oidc_proto_jwks_key_include_any
    - oidc_jwk_destroy
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_jwks_key_apply(request_rec *r, oidc_jwt_t *jwt,
      const oidc_json_t *elem, const char *x5t,\n\t\t\t\t\t    apr_hash_t *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwt_hdr_get
      Src: /src/mod_auth_openidc/src/proto/jwks.c:131,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwks.c:132,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/jwks.c:135,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/proto/jwks.c:136,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwks.c:137,1
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/proto/jwks.c:141,1
    - Dst: oidc_proto_jwks_key_apply
      Src: /src/mod_auth_openidc/src/proto/jwks.c:142,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/proto/jwks.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - r
    - jwt
    - j_jwks
    - result
    argTypes:
    - request_rec*
    - oidc_jwt_t*
    - oidc_json_t*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: oidc_proto_jwks_key_get
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwks.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_json_array_get
    - oidc_jwt_hdr_get
    - oidc_json_object_get
    - oidc_proto_jwks_key_apply
    - oidc_debug
    - oidc_json_is_array
    - oidc_json_array_size
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_jwks_key_get(request_rec *r, oidc_jwt_t *jwt,
      const oidc_json_t *j_jwks,\n\t\t\t\t\t  apr_hash_t *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/src/proto/jwks.c:160,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/jwks.c:162,1
    - Dst: oidc_proto_jwks_key_get
      Src: /src/mod_auth_openidc/src/proto/jwks.c:167,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/jwks.c:170,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/proto/jwks.c:173,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/jwks.c:176,1
    - Dst: oidc_proto_jwks_uri_keys
      Src: /src/mod_auth_openidc/src/proto/jwks.c:180,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/jwks.c:183,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/proto/jwks.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - r
    - cfg
    - jwt
    - jwks_uri
    - ssl_validate_server
    - keys
    - force_refresh
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_jwt_t*
    - oidc_jwks_uri_t*
    - int
    - apr_hash_t*
    - apr_byte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 153
    functionDepth: 8
    functionLinenumber: 153
    functionLinenumberEnd: 186
    functionName: oidc_proto_jwks_uri_keys
    functionSourceFile: /src/mod_auth_openidc/src/proto/jwks.c
    functionUses: 11
    functionsReached:
    - oidc_warn
    - oidc_error
    - oidc_json_decref
    - apr_hash_count
    - oidc_debug
    - oidc_proto_jwks_uri_keys
    - oidc_proto_jwks_key_get
    - oidc_metadata_jwks_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_jwks_uri_keys(request_rec *r, oidc_cfg_t *cfg,
      oidc_jwt_t *jwt, const oidc_jwks_uri_t *jwks_uri,\n\t\t\t\t    int ssl_validate_server,
      apr_hash_t *keys, apr_byte_t *force_refresh)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:57,1
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/proto/request_object.c:59,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:60,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/proto/request_object.c:61,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/request_object.c:62,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/request_object.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - request_object_config
    - parameter_name
    - action
    argTypes:
    - oidc_json_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: oidc_proto_request_object_param_needs_action
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - oidc_json_array_get
    - oidc_json_object_get
    - oidc_json_is_string
    - oidc_json_string_value
    - oidc_json_array_size
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_request_object_param_needs_action(const oidc_json_t
      *request_object_config,\n\t\t\t\t\t\t\t       const char *parameter_name, const
      char *action)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/request_object.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 102
    functionName: oidc_proto_request_object_param_is_spec_string
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_request_object_param_is_spec_string(const char
      *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/request_object.c:119,1
    - Dst: oidc_proto_request_object_param_needs_action
      Src: /src/mod_auth_openidc/src/proto/request_object.c:121,1
    - Dst: oidc_proto_request_object_param_needs_action
      Src: /src/mod_auth_openidc/src/proto/request_object.c:123,1
    - Dst: oidc_proto_request_object_param_is_spec_string
      Src: /src/mod_auth_openidc/src/proto/request_object.c:128,1
    - Dst: oidc_json_parse
      Src: /src/mod_auth_openidc/src/proto/request_object.c:129,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/request_object.c:132,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/request_object.c:134,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/request_object.c:136,1
    - Dst: oidc_proto_request_object_param_needs_action
      Src: /src/mod_auth_openidc/src/proto/request_object.c:138,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/request_object.c:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - rec
    - name
    - value
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 145
    functionName: oidc_proto_request_object_copy_from_request
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_json_object_set_new
    - oidc_proto_request_object_param_needs_action
    - oidc_debug
    - oidc_proto_request_object_param_is_spec_string
    - apr_table_set
    - oidc_json_string
    - oidc_json_parse
    linkageType: ''
    returnType: int
    signature: int oidc_proto_request_object_copy_from_request(void *rec, const char
      *name, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/request_object.c:153,1
    - Dst: oidc_proto_request_object_param_needs_action
      Src: /src/mod_auth_openidc/src/proto/request_object.c:155,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/src/proto/request_object.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rec
    - name
    - value
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: oidc_proto_request_object_delete_from_request
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - apr_table_unset
    - oidc_debug
    - oidc_proto_request_object_param_needs_action
    linkageType: ''
    returnType: int
    signature: int oidc_proto_request_object_delete_from_request(void *rec, const
      char *name, const char *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_metadata_jwks_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:177,1
    - Dst: oidc_cfg_provider_jwks_uri_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:177,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:178,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request_object.c:181,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:185,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/proto/request_object.c:186,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request_object.c:187,1
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/proto/request_object.c:192,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:194,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/request_object.c:196,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:196,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/request_object.c:197,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/request_object.c:198,1
    - Dst: oidc_jwk_parse_json
      Src: /src/mod_auth_openidc/src/proto/request_object.c:203,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/request_object.c:204,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/request_object.c:204,1
    - Dst: oidc_jwk_to_json
      Src: /src/mod_auth_openidc/src/proto/request_object.c:209,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/request_object.c:210,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/request_object.c:215,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/request_object.c:219,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - r
    - cfg
    - provider
    - key_type
    - jwk
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - struct oidc_provider_t*
    - int
    - oidc_jwk_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 166
    functionDepth: 8
    functionLinenumber: 166
    functionLinenumberEnd: 222
    functionName: oidc_proto_request_object_encryption_jwk_by_type
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_cfg_provider_jwks_uri_get
    - oidc_jwk_to_json
    - oidc_error
    - oidc_json_decref
    - oidc_json_array_get
    - oidc_json_object_get
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_debug
    - oidc_jwk_parse_json
    - oidc_jose_e2s
    - oidc_json_is_array
    - oidc_json_string_value
    - oidc_jwk_destroy
    - oidc_json_array_size
    - oidc_metadata_jwks_get
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_request_object_encryption_jwk_by_type(request_rec
      *r, oidc_cfg_t *cfg,\n\t\t\t\t\t\t\t\t   const struct oidc_provider_t *provider,
      int key_type,\n\t\t\t\t\t\t\t\t   oidc_jwk_t **jwk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/request_object.c:230,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/request_object.c:231,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:231,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/request_object.c:232,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/request_object.c:233,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:233,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/request_object.c:234,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/proto/request_object.c:235,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/request_object.c:235,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/request_object.c:235,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/request_object.c:236,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/proto/request_object.c:237,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/request_object.c:237,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/request_object.c:237,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/request_object.c:238,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/proto/request_object.c:239,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/request_object.c:239,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/request_object.c:239,1
    - Dst: oidc_json_merge
      Src: /src/mod_auth_openidc/src/proto/request_object.c:242,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - r
    - provider
    - request_object_config
    - request_object
    - ttl
    argTypes:
    - request_rec*
    - struct oidc_provider_t*
    - oidc_json_t*
    - oidc_jwt_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 244
    functionName: oidc_proto_request_object_claims_set
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - oidc_json_object_set_new
    - apr_time_sec
    - oidc_json_object_get
    - apr_time_now
    - oidc_json_merge
    - oidc_cfg_provider_issuer_get
    - oidc_cfg_provider_client_id_get
    - oidc_json_string
    - oidc_json_integer
    linkageType: ''
    returnType: void
    signature: "void oidc_proto_request_object_claims_set(request_rec *r, const struct
      oidc_provider_t *provider,\n\t\t\t\t\t\t const oidc_json_t *request_object_config,
      oidc_jwt_t *request_object,\n\t\t\t\t\t\t int ttl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/proto/request_object.c:251,1
    - Dst: apr_table_do
      Src: /src/mod_auth_openidc/src/proto/request_object.c:254,1
    - Dst: apr_table_do
      Src: /src/mod_auth_openidc/src/proto/request_object.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - r
    - request_object_config
    - request_object
    - params
    argTypes:
    - request_rec*
    - oidc_json_t*
    - oidc_jwt_t*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 258
    functionName: oidc_proto_request_object_params_copy
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - apr_table_do
    - apr_table_make
    linkageType: ''
    returnType: void
    signature: "void oidc_proto_request_object_params_copy(request_rec *r, oidc_json_t
      *request_object_config,\n\t\t\t\t\t\t  oidc_jwt_t *request_object, apr_table_t
      *params)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwt_alg2kty
      Src: /src/mod_auth_openidc/src/proto/request_object.c:267,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:274,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:274,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request_object.c:275,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:279,1
    - Dst: oidc_util_key_list_first
      Src: /src/mod_auth_openidc/src/proto/request_object.c:280,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:280,1
    - Dst: oidc_util_key_list_first
      Src: /src/mod_auth_openidc/src/proto/request_object.c:282,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:282,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/request_object.c:284,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request_object.c:286,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/src/proto/request_object.c:289,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:289,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request_object.c:293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - r
    - cfg
    - provider
    - request_object
    - jwk_needs_destroy
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - struct oidc_provider_t*
    - oidc_jwt_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 297
    functionName: oidc_proto_request_object_signing_jwk_get
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_error
    - oidc_cfg_provider_client_secret_get
    - oidc_cfg_provider_client_keys_get
    - oidc_jwt_alg2kty
    - oidc_cfg_private_keys_get
    - oidc_util_key_list_first
    - oidc_util_key_symmetric_create
    linkageType: ''
    returnType: oidc_jwk_t
    signature: "oidc_jwk_t *oidc_proto_request_object_signing_jwk_get(request_rec
      *r, const oidc_cfg_t *cfg,\n\t\t\t\t\t\t\t     const struct oidc_provider_t
      *provider,\n\t\t\t\t\t\t\t     oidc_jwt_t *request_object, int *jwk_needs_destroy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_request_object_signing_jwk_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:308,1
    - Dst: oidc_jwt_sign
      Src: /src/mod_auth_openidc/src/proto/request_object.c:312,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request_object.c:314,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/request_object.c:314,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/request_object.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - r
    - cfg
    - provider
    - request_object
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - struct oidc_provider_t*
    - oidc_jwt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 320
    functionName: oidc_proto_request_object_sign
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_jose_e2s
    - oidc_proto_request_object_signing_jwk_get
    - oidc_jwk_destroy
    - oidc_jwt_sign
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_request_object_sign(request_rec *r, const oidc_cfg_t
      *cfg,\n\t\t\t\t\t\t const struct oidc_provider_t *provider, oidc_jwt_t *request_object)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwt_alg2kty
      Src: /src/mod_auth_openidc/src/proto/request_object.c:333,1
    - Dst: oidc_proto_request_object_encryption_jwk_by_type
      Src: /src/mod_auth_openidc/src/proto/request_object.c:336,1
    - Dst: oidc_jwt_alg2kty
      Src: /src/mod_auth_openidc/src/proto/request_object.c:336,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/src/proto/request_object.c:339,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:339,1
    - Dst: oidc_alg2keysize
      Src: /src/mod_auth_openidc/src/proto/request_object.c:340,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request_object.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - r
    - cfg
    - provider
    - jwe
    - signing_alg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - struct oidc_provider_t*
    - oidc_jwt_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 328
    functionDepth: 9
    functionLinenumber: 328
    functionLinenumberEnd: 348
    functionName: oidc_proto_request_object_encryption_jwk_get
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - oidc_alg2keysize
    - oidc_error
    - oidc_cfg_provider_client_secret_get
    - oidc_jwt_alg2kty
    - oidc_proto_request_object_encryption_jwk_by_type
    - oidc_util_key_symmetric_create
    linkageType: ''
    returnType: oidc_jwk_t
    signature: "oidc_jwk_t *oidc_proto_request_object_encryption_jwk_get(request_rec
      *r, oidc_cfg_t *cfg,\n\t\t\t\t\t\t\t\tconst struct oidc_provider_t *provider,\n\t\t\t\t\t\t\t\tconst
      oidc_jwt_t *jwe, const char *signing_alg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_request_object_encryption_jwk_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:358,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/request_object.c:363,1
    - Dst: oidc_jwt_encrypt
      Src: /src/mod_auth_openidc/src/proto/request_object.c:371,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/proto/request_object.c:371,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request_object.c:372,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/request_object.c:372,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/request_object.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - r
    - cfg
    - provider
    - jwe
    - cser
    - signing_alg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - struct oidc_provider_t*
    - oidc_jwt_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 353
    functionDepth: 10
    functionLinenumber: 353
    functionLinenumberEnd: 379
    functionName: oidc_proto_request_object_encrypt
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_pstrdup
    - oidc_error
    - oidc_jwt_encrypt
    - oidc_proto_request_object_encryption_jwk_get
    - oidc_jose_e2s
    - oidc_jwk_destroy
    linkageType: ''
    returnType: char
    signature: "char *oidc_proto_request_object_encrypt(request_rec *r, oidc_cfg_t
      *cfg, const struct oidc_provider_t *provider,\n\t\t\t\t\t       oidc_jwt_t *jwe,
      const char *cser, const char *signing_alg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/request_object.c:391,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/src/proto/request_object.c:394,1
    - Dst: oidc_proto_request_object_claims_set
      Src: /src/mod_auth_openidc/src/proto/request_object.c:397,1
    - Dst: oidc_proto_request_object_params_copy
      Src: /src/mod_auth_openidc/src/proto/request_object.c:400,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/request_object.c:403,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/proto/request_object.c:404,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:408,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/proto/request_object.c:409,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/request_object.c:413,1
    - Dst: oidc_proto_request_object_sign
      Src: /src/mod_auth_openidc/src/proto/request_object.c:414,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/src/proto/request_object.c:417,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request_object.c:419,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/proto/request_object.c:423,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/proto/request_object.c:424,1
    - Dst: oidc_jose_jwt_serialize
      Src: /src/mod_auth_openidc/src/proto/request_object.c:426,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/request_object.c:431,1
    - Dst: oidc_proto_request_object_encrypt
      Src: /src/mod_auth_openidc/src/proto/request_object.c:433,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/request_object.c:440,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/request_object.c:441,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/request_object.c:444,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/src/proto/request_object.c:445,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/request_object.c:446,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 6
    argNames:
    - r
    - cfg
    - provider
    - request_object_config
    - params
    - ttl
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - struct oidc_provider_t*
    - oidc_json_t*
    - apr_table_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 384
    functionDepth: 11
    functionLinenumber: 384
    functionLinenumberEnd: 450
    functionName: oidc_proto_request_object_create
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - oidc_proto_request_object_sign
    - oidc_proto_request_object_claims_set
    - oidc_jwt_new
    - apr_pstrdup
    - oidc_error
    - oidc_proto_jwt_header_peek
    - oidc_json_object_get
    - oidc_proto_request_object_encrypt
    - oidc_proto_request_object_params_copy
    - oidc_debug
    - oidc_json_encode
    - oidc_jose_jwt_serialize
    - oidc_jwt_destroy
    - oidc_json_object_get_string
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: "char *oidc_proto_request_object_create(request_rec *r, oidc_cfg_t
      *cfg, const struct oidc_provider_t *provider,\n\t\t\t\t\t      oidc_json_t *request_object_config,
      apr_table_t *params, int ttl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/request_object.c:461,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:465,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/request_object.c:466,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/request_object.c:466,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:466,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/request_object.c:469,1
    - Dst: oidc_proto_request_object_create
      Src: /src/mod_auth_openidc/src/proto/request_object.c:472,1
    - Dst: oidc_util_rand_str
      Src: /src/mod_auth_openidc/src/proto/request_object.c:479,1
    - Dst: oidc_cache_set_request_uri
      Src: /src/mod_auth_openidc/src/proto/request_object.c:480,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/request_object.c:481,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/proto/request_object.c:481,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/request_object.c:482,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/proto/request_object.c:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - r
    - cfg
    - provider
    - request_object_config
    - redirect_uri
    - params
    - ttl
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - struct oidc_provider_t*
    - oidc_json_t*
    - char*
    - apr_table_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 457
    functionDepth: 12
    functionLinenumber: 457
    functionLinenumberEnd: 488
    functionName: oidc_proto_request_uri_create
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_util_rand_str
    - oidc_json_object_get
    - apr_time_now
    - oidc_debug
    - oidc_cache_set_request_uri
    - apr_psprintf
    - apr_time_from_sec
    - oidc_http_url_encode
    - oidc_json_string_value
    - oidc_proto_request_object_create
    linkageType: ''
    returnType: char
    signature: "char *oidc_proto_request_uri_create(request_rec *r, oidc_cfg_t *cfg,
      const struct oidc_provider_t *provider,\n\t\t\t\t\t   oidc_json_t *request_object_config,
      const char *redirect_uri,\n\t\t\t\t\t   apr_table_t *params, int ttl)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decode_object
      Src: /src/mod_auth_openidc/src/proto/request_object.c:498,1
    - Dst: oidc_cfg_provider_request_object_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:498,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/request_object.c:506,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/request_object.c:508,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request_object.c:510,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/request_object.c:515,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/request_object.c:517,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request_object.c:518,1
    - Dst: oidc_json_object_get_int
      Src: /src/mod_auth_openidc/src/proto/request_object.c:525,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/request_object.c:526,1
    - Dst: oidc_proto_request_uri_create
      Src: /src/mod_auth_openidc/src/proto/request_object.c:529,1
    - Dst: oidc_proto_request_object_create
      Src: /src/mod_auth_openidc/src/proto/request_object.c:532,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/request_object.c:537,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/request_object.c:539,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/request_object.c:545,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - r
    - cfg
    - provider
    - redirect_uri
    - params
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - struct oidc_provider_t*
    - char*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 493
    functionDepth: 13
    functionLinenumber: 493
    functionLinenumberEnd: 546
    functionName: oidc_proto_request_object_param_add
    functionSourceFile: /src/mod_auth_openidc/src/proto/request_object.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_cfg_provider_request_object_get
    - oidc_error
    - oidc_json_object_get_int
    - oidc_json_decref
    - oidc_json_decode_object
    - oidc_json_object_get
    - apr_table_set
    - oidc_json_string_value
    - oidc_proto_request_uri_create
    - oidc_proto_request_object_create
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: "void oidc_proto_request_object_param_add(request_rec *r, oidc_cfg_t
      *cfg, const struct oidc_provider_t *provider,\n\t\t\t\t\t const char *redirect_uri,
      apr_table_t *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - cfg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: oidc_proto_response_is_post
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_response_is_post(const request_rec *r, oidc_cfg_t
      *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/proto/response.c:64,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/proto/response.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - r
    - cfg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: oidc_proto_response_is_redirect
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 1
    functionsReached:
    - oidc_util_url_has_parameter
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_response_is_redirect(request_rec *r, oidc_cfg_t
      *cfg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/response.c:74,1
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/src/proto/response.c:79,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:81,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/response.c:87,1
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/src/proto/response.c:97,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:99,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:104,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/response.c:110,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/response.c:117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - r
    - response_type
    - id_token
    - access_token
    - token_type
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 125
    functionName: oidc_proto_validate_code_response
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_error
    - oidc_debug
    - oidc_util_spaced_string_contains
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_validate_code_response(request_rec *r, const
      char *response_type, const char *id_token,\n\t\t\t\t\t\t    const char *access_token,
      const char *token_type)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/src/proto/response.c:133,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:135,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:142,1
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/src/proto/response.c:147,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:149,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:156,1
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/src/proto/response.c:161,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:163,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:170,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 5
    argNames:
    - r
    - requested_response_type
    - code
    - id_token
    - access_token
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 176
    functionName: oidc_proto_validate_response_type
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_util_spaced_string_contains
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_validate_response_type(request_rec *r, const
      char *requested_response_type,\n\t\t\t\t\t\t    const char *code, const char
      *id_token, const char *access_token)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_state_get_response_mode
      Src: /src/mod_auth_openidc/src/proto/response.c:184,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/response.c:188,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - r
    - proto_state
    - response_mode
    - default_response_mode
    argTypes:
    - request_rec*
    - oidc_proto_state_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: oidc_proto_validate_response_mode
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 0
    functionsReached:
    - oidc_proto_state_get_response_mode
    - oidc_error
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_validate_response_mode(request_rec *r, const
      oidc_proto_state_t *proto_state,\n\t\t\t\t\t\t    const char *response_mode,
      const char *default_response_mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/response.c:207,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:208,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:215,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/response.c:219,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:220,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/response.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 6
    argNames:
    - r
    - configured_issuer
    - response_issuer
    - require_issuer
    - configured_client_id
    - response_client_id
    argTypes:
    - request_rec*
    - char*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 231
    functionName: oidc_proto_validate_issuer_client_id
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 0
    functionsReached:
    - oidc_debug
    - oidc_error
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_validate_issuer_client_id(request_rec *r, const
      char *configured_issuer,\n\t\t\t\t\t\t       const char *response_issuer, int
      require_issuer,\n\t\t\t\t\t\t       const char *configured_client_id,\n\t\t\t\t\t\t
      \      const char *response_client_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:243,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:244,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:245,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:246,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:247,1
    - Dst: oidc_proto_validate_issuer_client_id
      Src: /src/mod_auth_openidc/src/proto/response.c:249,1
    - Dst: oidc_proto_validate_response_type
      Src: /src/mod_auth_openidc/src/proto/response.c:252,1
    - Dst: oidc_proto_validate_response_mode
      Src: /src/mod_auth_openidc/src/proto/response.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 9
    argNames:
    - r
    - requested_response_type
    - params
    - proto_state
    - response_mode
    - default_response_mode
    - issuer
    - require_issuer
    - c_client_id
    argTypes:
    - request_rec*
    - char*
    - apr_table_t*
    - oidc_proto_state_t*
    - char*
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 236
    functionDepth: 5
    functionLinenumber: 236
    functionLinenumberEnd: 259
    functionName: oidc_proto_validate_response_type_mode_issuer
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 0
    functionsReached:
    - oidc_proto_validate_issuer_client_id
    - oidc_proto_validate_response_type
    - oidc_proto_validate_response_mode
    - apr_table_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_validate_response_type_mode_issuer(request_rec
      *r, const char *requested_response_type,\n\t\t\t\t\t\t\t\tconst apr_table_t
      *params,\n\t\t\t\t\t\t\t\tconst oidc_proto_state_t *proto_state,\n\t\t\t\t\t\t\t\tconst
      char *response_mode,\n\t\t\t\t\t\t\t\tconst char *default_response_mode, const
      char *issuer,\n\t\t\t\t\t\t\t\tint require_issuer, const char *c_client_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:270,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:271,1
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/src/proto/response.c:274,1
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/src/proto/response.c:275,1
    - Dst: oidc_proto_state_get_nonce
      Src: /src/mod_auth_openidc/src/proto/response.c:277,1
    - Dst: oidc_proto_idtoken_parse
      Src: /src/mod_auth_openidc/src/proto/response.c:278,1
    - Dst: oidc_proto_idtoken_validate_code
      Src: /src/mod_auth_openidc/src/proto/response.c:282,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/response.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 8
    argNames:
    - r
    - c
    - proto_state
    - provider
    - response_type
    - params
    - jwt
    - must_validate_code
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_proto_state_t*
    - oidc_provider_t*
    - char*
    - apr_table_t*
    - oidc_jwt_t**
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 289
    functionName: oidc_proto_parse_idtoken_and_validate_code
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 0
    functionsReached:
    - oidc_util_spaced_string_contains
    - oidc_jwt_destroy
    - oidc_proto_idtoken_validate_code
    - oidc_proto_state_get_nonce
    - oidc_proto_idtoken_parse
    - apr_table_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_parse_idtoken_and_validate_code(request_rec
      *r, oidc_cfg_t *c,\n\t\t\t\t\t\t\t     const oidc_proto_state_t *proto_state,\n\t\t\t\t\t\t\t
      \    oidc_provider_t *provider, const char *response_type,\n\t\t\t\t\t\t\t     const
      apr_table_t *params, oidc_jwt_t **jwt,\n\t\t\t\t\t\t\t     apr_byte_t must_validate_code)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/response.c:299,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/proto/response.c:302,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/response.c:303,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/response.c:304,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/response.c:305,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/proto/response.c:305,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/response.c:308,1
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/proto/response.c:311,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/response.c:312,1
    - Dst: oidc_proto_token_endpoint_request
      Src: /src/mod_auth_openidc/src/proto/response.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 12
    argNames:
    - r
    - cfg
    - provider
    - code
    - code_verifier
    - id_token
    - access_token
    - token_type
    - expires_in
    - refresh_token
    - scope
    - state
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - char*
    - char**
    - char**
    - char**
    - int*
    - char**
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 294
    functionDepth: 9
    functionLinenumber: 294
    functionLinenumberEnd: 316
    functionName: oidc_proto_resolve_code
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 0
    functionsReached:
    - oidc_proto_token_endpoint_request
    - oidc_debug
    - apr_table_make
    - apr_table_set
    - oidc_util_url_redirect_uri
    - oidc_cfg_metadata_dir_get
    - apr_table_setn
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_resolve_code(request_rec *r, oidc_cfg_t *cfg,
      const oidc_provider_t *provider,\n\t\t\t\t\t  const char *code, const char *code_verifier,
      char **id_token,\n\t\t\t\t\t  char **access_token, char **token_type, int *expires_in,
      char **refresh_token,\n\t\t\t\t\t  char **scope, const char *state)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_profile_pkce_get
      Src: /src/mod_auth_openidc/src/proto/response.c:334,1
    - Dst: oidc_proto_profile_pkce_get
      Src: /src/mod_auth_openidc/src/proto/response.c:335,1
    - Dst: oidc_proto_state_get_pkce_state
      Src: /src/mod_auth_openidc/src/proto/response.c:335,1
    - Dst: oidc_proto_state_get_state
      Src: /src/mod_auth_openidc/src/proto/response.c:338,1
    - Dst: oidc_proto_resolve_code
      Src: /src/mod_auth_openidc/src/proto/response.c:340,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:340,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:342,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/proto/response.c:343,1
    - Dst: oidc_proto_validate_code_response
      Src: /src/mod_auth_openidc/src/proto/response.c:347,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/response.c:348,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:353,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/response.c:354,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/response.c:359,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/response.c:361,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/response.c:363,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/response.c:363,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/response.c:368,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/response.c:372,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 6
    argNames:
    - r
    - c
    - provider
    - response_type
    - params
    - proto_state
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - apr_table_t*
    - oidc_proto_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 321
    functionDepth: 10
    functionLinenumber: 321
    functionLinenumberEnd: 376
    functionName: oidc_proto_resolve_code_and_validate_response
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_proto_resolve_code
    - OIDC_METRICS_COUNTER_INC
    - oidc_proto_validate_code_response
    - apr_table_set
    - oidc_proto_state_get_pkce_state
    - oidc_proto_state_get_state
    - apr_table_setn
    - apr_psprintf
    - oidc_proto_profile_pkce_get
    - apr_table_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_resolve_code_and_validate_response(request_rec
      *r, oidc_cfg_t *c,\n\t\t\t\t\t\t\t\tconst oidc_provider_t *provider,\n\t\t\t\t\t\t\t\tconst
      char *response_type, apr_table_t *params,\n\t\t\t\t\t\t\t\tconst oidc_proto_state_t
      *proto_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/response.c:398,1
    - Dst: apr_table_unset
      Src: /src/mod_auth_openidc/src/proto/response.c:402,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/response.c:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - r
    - params
    - response_type
    argTypes:
    - request_rec*
    - apr_table_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 406
    functionName: oidc_proto_response_strip_params
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - apr_table_unset
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: void oidc_proto_response_strip_params(request_rec *r, apr_table_t *params,
      const char *response_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/response.c:415,1
    - Dst: oidc_proto_validate_response_type_mode_issuer
      Src: /src/mod_auth_openidc/src/proto/response.c:419,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/proto/response.c:421,1
    - Dst: oidc_proto_profile_response_require_iss_get
      Src: /src/mod_auth_openidc/src/proto/response.c:421,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/response.c:422,1
    - Dst: oidc_proto_parse_idtoken_and_validate_code
      Src: /src/mod_auth_openidc/src/proto/response.c:425,1
    - Dst: oidc_proto_response_strip_params
      Src: /src/mod_auth_openidc/src/proto/response.c:430,1
    - Dst: oidc_proto_resolve_code_and_validate_response
      Src: /src/mod_auth_openidc/src/proto/response.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - r
    - c
    - proto_state
    - provider
    - params
    - response_mode
    - jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_proto_state_t*
    - oidc_provider_t*
    - apr_table_t*
    - char*
    - oidc_jwt_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 411
    functionDepth: 11
    functionLinenumber: 411
    functionLinenumberEnd: 436
    functionName: oidc_proto_response_code_idtoken
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 3
    functionsReached:
    - oidc_debug
    - oidc_proto_resolve_code_and_validate_response
    - oidc_cfg_provider_issuer_get
    - oidc_proto_response_strip_params
    - oidc_cfg_provider_client_id_get
    - oidc_proto_profile_response_require_iss_get
    - oidc_proto_parse_idtoken_and_validate_code
    - oidc_proto_validate_response_type_mode_issuer
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_response_code_idtoken(request_rec *r, oidc_cfg_t
      *c, const oidc_proto_state_t *proto_state,\n\t\t\t\t\t    oidc_provider_t *provider,
      apr_table_t *params, const char *response_mode,\n\t\t\t\t\t    oidc_jwt_t **jwt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/response.c:445,1
    - Dst: oidc_proto_validate_response_type_mode_issuer
      Src: /src/mod_auth_openidc/src/proto/response.c:449,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/proto/response.c:451,1
    - Dst: oidc_proto_profile_response_require_iss_get
      Src: /src/mod_auth_openidc/src/proto/response.c:451,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/response.c:452,1
    - Dst: oidc_proto_response_strip_params
      Src: /src/mod_auth_openidc/src/proto/response.c:456,1
    - Dst: oidc_proto_resolve_code_and_validate_response
      Src: /src/mod_auth_openidc/src/proto/response.c:458,1
    - Dst: oidc_proto_parse_idtoken_and_validate_code
      Src: /src/mod_auth_openidc/src/proto/response.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - r
    - c
    - proto_state
    - provider
    - params
    - response_mode
    - jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_proto_state_t*
    - oidc_provider_t*
    - apr_table_t*
    - char*
    - oidc_jwt_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 441
    functionDepth: 11
    functionLinenumber: 441
    functionLinenumberEnd: 466
    functionName: oidc_proto_response_code_token
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 5
    functionsReached:
    - oidc_debug
    - oidc_proto_resolve_code_and_validate_response
    - oidc_cfg_provider_issuer_get
    - oidc_proto_response_strip_params
    - oidc_cfg_provider_client_id_get
    - oidc_proto_profile_response_require_iss_get
    - oidc_proto_parse_idtoken_and_validate_code
    - oidc_proto_validate_response_type_mode_issuer
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_response_code_token(request_rec *r, oidc_cfg_t
      *c, const oidc_proto_state_t *proto_state,\n\t\t\t\t\t  oidc_provider_t *provider,
      apr_table_t *params, const char *response_mode,\n\t\t\t\t\t  oidc_jwt_t **jwt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/response.c:475,1
    - Dst: oidc_proto_validate_response_type_mode_issuer
      Src: /src/mod_auth_openidc/src/proto/response.c:479,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/proto/response.c:481,1
    - Dst: oidc_proto_profile_response_require_iss_get
      Src: /src/mod_auth_openidc/src/proto/response.c:481,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/response.c:482,1
    - Dst: oidc_proto_response_strip_params
      Src: /src/mod_auth_openidc/src/proto/response.c:486,1
    - Dst: oidc_proto_resolve_code_and_validate_response
      Src: /src/mod_auth_openidc/src/proto/response.c:488,1
    - Dst: oidc_proto_parse_idtoken_and_validate_code
      Src: /src/mod_auth_openidc/src/proto/response.c:494,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:501,1
    - Dst: oidc_proto_idtoken_validate_access_token
      Src: /src/mod_auth_openidc/src/proto/response.c:502,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:503,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/response.c:504,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 7
    argNames:
    - r
    - c
    - proto_state
    - provider
    - params
    - response_mode
    - jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_proto_state_t*
    - oidc_provider_t*
    - apr_table_t*
    - char*
    - oidc_jwt_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 471
    functionDepth: 11
    functionLinenumber: 471
    functionLinenumberEnd: 510
    functionName: oidc_proto_response_code
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 7
    functionsReached:
    - oidc_proto_idtoken_validate_access_token
    - oidc_debug
    - oidc_proto_resolve_code_and_validate_response
    - oidc_cfg_provider_issuer_get
    - oidc_jwt_destroy
    - oidc_proto_response_strip_params
    - oidc_cfg_provider_client_id_get
    - apr_table_get
    - oidc_proto_profile_response_require_iss_get
    - oidc_proto_parse_idtoken_and_validate_code
    - oidc_proto_validate_response_type_mode_issuer
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_response_code(request_rec *r, oidc_cfg_t *c,
      const oidc_proto_state_t *proto_state,\n\t\t\t\t    oidc_provider_t *provider,
      apr_table_t *params, const char *response_mode,\n\t\t\t\t    oidc_jwt_t **jwt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_validate_response_type_mode_issuer
      Src: /src/mod_auth_openidc/src/proto/response.c:520,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/proto/response.c:522,1
    - Dst: oidc_proto_profile_response_require_iss_get
      Src: /src/mod_auth_openidc/src/proto/response.c:522,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/response.c:523,1
    - Dst: oidc_proto_parse_idtoken_and_validate_code
      Src: /src/mod_auth_openidc/src/proto/response.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 8
    argNames:
    - r
    - c
    - response_type
    - proto_state
    - provider
    - params
    - response_mode
    - jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - oidc_proto_state_t*
    - oidc_provider_t*
    - apr_table_t*
    - char*
    - oidc_jwt_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 515
    functionDepth: 6
    functionLinenumber: 515
    functionLinenumberEnd: 531
    functionName: oidc_proto_handle_implicit_flow
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_issuer_get
    - oidc_cfg_provider_client_id_get
    - oidc_proto_profile_response_require_iss_get
    - oidc_proto_parse_idtoken_and_validate_code
    - oidc_proto_validate_response_type_mode_issuer
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_handle_implicit_flow(request_rec *r, oidc_cfg_t
      *c, const char *response_type,\n\t\t\t\t\t\t  const oidc_proto_state_t *proto_state,
      oidc_provider_t *provider,\n\t\t\t\t\t\t  const apr_table_t *params, const char
      *response_mode,\n\t\t\t\t\t\t  oidc_jwt_t **jwt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/response.c:540,1
    - Dst: oidc_proto_handle_implicit_flow
      Src: /src/mod_auth_openidc/src/proto/response.c:544,1
    - Dst: oidc_proto_idtoken_validate_access_token
      Src: /src/mod_auth_openidc/src/proto/response.c:548,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:549,1
    - Dst: oidc_proto_response_strip_params
      Src: /src/mod_auth_openidc/src/proto/response.c:553,1
    - Dst: oidc_proto_resolve_code_and_validate_response
      Src: /src/mod_auth_openidc/src/proto/response.c:555,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - r
    - c
    - proto_state
    - provider
    - params
    - response_mode
    - jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_proto_state_t*
    - oidc_provider_t*
    - apr_table_t*
    - char*
    - oidc_jwt_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 536
    functionDepth: 11
    functionLinenumber: 536
    functionLinenumberEnd: 559
    functionName: oidc_proto_response_code_idtoken_token
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 3
    functionsReached:
    - oidc_proto_idtoken_validate_access_token
    - oidc_proto_handle_implicit_flow
    - oidc_debug
    - oidc_proto_resolve_code_and_validate_response
    - oidc_proto_response_strip_params
    - apr_table_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_response_code_idtoken_token(request_rec *r,
      oidc_cfg_t *c, const oidc_proto_state_t *proto_state,\n\t\t\t\t\t\t  oidc_provider_t
      *provider, apr_table_t *params,\n\t\t\t\t\t\t  const char *response_mode, oidc_jwt_t
      **jwt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/response.c:568,1
    - Dst: oidc_proto_handle_implicit_flow
      Src: /src/mod_auth_openidc/src/proto/response.c:572,1
    - Dst: oidc_proto_idtoken_validate_access_token
      Src: /src/mod_auth_openidc/src/proto/response.c:576,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/response.c:577,1
    - Dst: oidc_proto_response_strip_params
      Src: /src/mod_auth_openidc/src/proto/response.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - r
    - c
    - proto_state
    - provider
    - params
    - response_mode
    - jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_proto_state_t*
    - oidc_provider_t*
    - apr_table_t*
    - char*
    - oidc_jwt_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 564
    functionDepth: 7
    functionLinenumber: 564
    functionLinenumberEnd: 584
    functionName: oidc_proto_response_idtoken_token
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 3
    functionsReached:
    - oidc_proto_idtoken_validate_access_token
    - oidc_proto_handle_implicit_flow
    - oidc_debug
    - oidc_proto_response_strip_params
    - apr_table_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_response_idtoken_token(request_rec *r, oidc_cfg_t
      *c, const oidc_proto_state_t *proto_state,\n\t\t\t\t\t     oidc_provider_t *provider,
      apr_table_t *params, const char *response_mode,\n\t\t\t\t\t     oidc_jwt_t **jwt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/response.c:593,1
    - Dst: oidc_proto_handle_implicit_flow
      Src: /src/mod_auth_openidc/src/proto/response.c:597,1
    - Dst: oidc_proto_response_strip_params
      Src: /src/mod_auth_openidc/src/proto/response.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - r
    - c
    - proto_state
    - provider
    - params
    - response_mode
    - jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_proto_state_t*
    - oidc_provider_t*
    - apr_table_t*
    - char*
    - oidc_jwt_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 7
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: oidc_proto_response_idtoken
    functionSourceFile: /src/mod_auth_openidc/src/proto/response.c
    functionUses: 1
    functionsReached:
    - oidc_proto_response_strip_params
    - oidc_debug
    - oidc_proto_handle_implicit_flow
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_response_idtoken(request_rec *r, oidc_cfg_t
      *c, const oidc_proto_state_t *proto_state,\n\t\t\t\t       oidc_provider_t *provider,
      apr_table_t *params, const char *response_mode,\n\t\t\t\t       oidc_jwt_t **jwt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_rand_str
      Src: /src/mod_auth_openidc/src/proto/pkce.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - code_verifier
    argTypes:
    - request_rec*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: oidc_proto_pkce_code_verifier_gen
    functionSourceFile: /src/mod_auth_openidc/src/proto/pkce.c
    functionUses: 0
    functionsReached:
    - oidc_util_rand_str
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_pkce_code_verifier_gen(request_rec *r, char **code_verifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_pkce_code_verifier_gen
      Src: /src/mod_auth_openidc/src/proto/pkce.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - state
    argTypes:
    - request_rec*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: oidc_proto_pkce_state_plain
    functionSourceFile: /src/mod_auth_openidc/src/proto/pkce.c
    functionUses: 0
    functionsReached:
    - oidc_proto_pkce_code_verifier_gen
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_pkce_state_plain(request_rec *r, char **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/pkce.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - state
    - code_challenge
    argTypes:
    - request_rec*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: oidc_proto_pkce_challenge_plain
    functionSourceFile: /src/mod_auth_openidc/src/proto/pkce.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_pkce_challenge_plain(request_rec *r, const char
      *state, char **code_challenge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/pkce.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - state
    - code_verifier
    argTypes:
    - request_rec*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: oidc_proto_pkce_verifier_plain
    functionSourceFile: /src/mod_auth_openidc/src/proto/pkce.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_pkce_verifier_plain(request_rec *r, const char
      *state, char **code_verifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_pkce_code_verifier_gen
      Src: /src/mod_auth_openidc/src/proto/pkce.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - state
    argTypes:
    - request_rec*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: oidc_proto_pkce_state_s256
    functionSourceFile: /src/mod_auth_openidc/src/proto/pkce.c
    functionUses: 0
    functionsReached:
    - oidc_proto_pkce_code_verifier_gen
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_pkce_state_s256(request_rec *r, char **state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_hash_string_and_base64url_encode
      Src: /src/mod_auth_openidc/src/proto/pkce.c:83,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/pkce.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - r
    - state
    - code_challenge
    argTypes:
    - request_rec*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: oidc_proto_pkce_challenge_s256
    functionSourceFile: /src/mod_auth_openidc/src/proto/pkce.c
    functionUses: 0
    functionsReached:
    - oidc_util_hash_string_and_base64url_encode
    - oidc_error
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_pkce_challenge_s256(request_rec *r, const char
      *state, char **code_challenge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/pkce.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - state
    - code_verifier
    argTypes:
    - request_rec*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: oidc_proto_pkce_verifier_s256
    functionSourceFile: /src/mod_auth_openidc/src/proto/pkce.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_pkce_verifier_s256(request_rec *r, const char
      *state, char **code_verifier)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_get_nonce
      Src: /src/mod_auth_openidc/src/proto/id_token.c:61,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/id_token.c:62,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:65,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/src/proto/id_token.c:74,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:75,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/id_token.c:76,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/id_token.c:81,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:82,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/proto/id_token.c:92,1
    - Dst: oidc_cfg_provider_idtoken_iat_slack_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:92,1
    - Dst: oidc_cache_set_nonce
      Src: /src/mod_auth_openidc/src/proto/id_token.c:95,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/id_token.c:95,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/id_token.c:96,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/id_token.c:99,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/id_token.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - r
    - cfg
    - provider
    - nonce
    - jwt
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - oidc_jwt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 103
    functionName: oidc_proto_idtoken_validate_nonce
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 2
    functionsReached:
    - oidc_warn
    - oidc_error
    - oidc_jose_get_string
    - apr_time_sec
    - oidc_cfg_provider_idtoken_iat_slack_get
    - oidc_cache_set_nonce
    - apr_time_now
    - oidc_debug
    - oidc_jose_e2s
    - oidc_cache_get_nonce
    - apr_time_from_sec
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_idtoken_validate_nonce(request_rec *r, oidc_cfg_t
      *cfg, const oidc_provider_t *provider,\n\t\t\t\t\t     const char *nonce, const
      oidc_jwt_t *jwt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/id_token.c:116,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:116,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:118,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - r
    - provider
    - azp
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: oidc_proto_idtoken_validate_azp
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_cfg_provider_client_id_get
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_idtoken_validate_azp(request_rec *r, const oidc_provider_t
      *provider, const char *azp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/id_token.c:129,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - provider
    - s_aud
    argTypes:
    - oidc_provider_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: oidc_proto_idtoken_aud_resolve
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_client_id_get
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_idtoken_aud_resolve(const oidc_provider_t *provider,
      const char *s_aud)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/id_token.c:142,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:142,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:144,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:145,1
    - Dst: oidc_proto_idtoken_aud_resolve
      Src: /src/mod_auth_openidc/src/proto/id_token.c:150,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/proto/id_token.c:150,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/id_token.c:151,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - r
    - provider
    - arr
    - aud_value
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - apr_array_header_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 157
    functionName: oidc_proto_idtoken_validate_aud_string
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_proto_idtoken_aud_resolve
    - APR_ARRAY_IDX
    - oidc_cfg_provider_client_id_get
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_idtoken_validate_aud_string(request_rec *r,
      const oidc_provider_t *provider,\n\t\t\t\t\t\t\t const apr_array_header_t *arr,
      const char *aud_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/proto/id_token.c:168,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/id_token.c:169,1
    - Dst: oidc_json_array_has_value
      Src: /src/mod_auth_openidc/src/proto/id_token.c:174,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:174,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:175,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:178,1
    - Dst: oidc_proto_idtoken_aud_resolve
      Src: /src/mod_auth_openidc/src/proto/id_token.c:186,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/proto/id_token.c:186,1
    - Dst: oidc_json_array_has_value
      Src: /src/mod_auth_openidc/src/proto/id_token.c:187,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:188,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/proto/id_token.c:191,1
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/proto/id_token.c:196,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:197,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - r
    - provider
    - arr
    - aud
    - azp
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - apr_array_header_t*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 205
    functionName: oidc_proto_idtoken_validate_aud_array
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_error
    - oidc_proto_idtoken_aud_resolve
    - APR_ARRAY_IDX
    - oidc_cfg_provider_client_id_get
    - oidc_json_array_size
    - oidc_json_array_has_value
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_idtoken_validate_aud_array(request_rec *r, const
      oidc_provider_t *provider,\n\t\t\t\t\t\t\tconst apr_array_header_t *arr, const
      oidc_json_t *aud,\n\t\t\t\t\t\t\tconst char *azp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/src/proto/id_token.c:216,1
    - Dst: oidc_proto_idtoken_validate_azp
      Src: /src/mod_auth_openidc/src/proto/id_token.c:218,1
    - Dst: oidc_json_object_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:222,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:224,1
    - Dst: oidc_proto_profile_id_token_aud_values_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:228,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/proto/id_token.c:230,1
    - Dst: oidc_proto_idtoken_validate_aud_string
      Src: /src/mod_auth_openidc/src/proto/id_token.c:231,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/proto/id_token.c:231,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/proto/id_token.c:233,1
    - Dst: oidc_proto_idtoken_validate_aud_array
      Src: /src/mod_auth_openidc/src/proto/id_token.c:234,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - r
    - cfg
    - provider
    - id_token_payload
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - oidc_jwt_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 238
    functionName: oidc_proto_idtoken_validate_aud_and_azp
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 13
    functionsReached:
    - oidc_proto_idtoken_validate_azp
    - oidc_error
    - oidc_jose_get_string
    - oidc_json_object_get
    - oidc_proto_idtoken_validate_aud_array
    - oidc_proto_profile_id_token_aud_values_get
    - oidc_json_is_string
    - oidc_json_is_array
    - oidc_json_string_value
    - oidc_proto_idtoken_validate_aud_string
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_idtoken_validate_aud_and_azp(request_rec *r,
      oidc_cfg_t *cfg, const oidc_provider_t *provider,\n\t\t\t\t\t\t   const oidc_jwt_payload_t
      *id_token_payload)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_hash_length
      Src: /src/mod_auth_openidc/src/proto/id_token.c:249,1
    - Dst: oidc_jose_hash_string
      Src: /src/mod_auth_openidc/src/proto/id_token.c:253,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:254,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/id_token.c:254,1
    - Dst: oidc_util_base64url_decode
      Src: /src/mod_auth_openidc/src/proto/id_token.c:260,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:262,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/id_token.c:266,1
    - Dst: CRYPTO_memcmp
      Src: /src/mod_auth_openidc/src/proto/id_token.c:272,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:273,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/id_token.c:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - r
    - alg
    - hash
    - value
    - type
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 244
    functionDepth: 4
    functionLinenumber: 244
    functionLinenumberEnd: 281
    functionName: oidc_proto_validate_hash
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_debug
    - oidc_jose_hash_length
    - oidc_util_base64url_decode
    - oidc_jose_e2s
    - CRYPTO_memcmp
    - oidc_jose_hash_string
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_validate_hash(request_rec *r, const char *alg,
      const char *hash, const char *value,\n\t\t\t\t\t   const char *type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/src/proto/id_token.c:294,1
    - Dst: oidc_util_spaced_string_equals
      Src: /src/mod_auth_openidc/src/proto/id_token.c:303,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/proto/id_token.c:304,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/id_token.c:305,1
    - Dst: oidc_proto_validate_hash
      Src: /src/mod_auth_openidc/src/proto/id_token.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - r
    - provider
    - jwt
    - response_type
    - value
    - key
    - required_for_flows
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - oidc_jwt_t*
    - char*
    - char*
    - char*
    - apr_array_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 318
    functionName: oidc_proto_validate_hash_value
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_jose_get_string
    - APR_ARRAY_IDX
    - oidc_proto_validate_hash
    - oidc_util_spaced_string_equals
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_validate_hash_value(request_rec *r, oidc_provider_t
      *provider, const oidc_jwt_t *jwt,\n\t\t\t\t\t\t const char *response_type, const
      char *value, const char *key,\n\t\t\t\t\t\t apr_array_header_t *required_for_flows)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/proto/id_token.c:325,1
    - Dst: oidc_proto_validate_hash_value
      Src: /src/mod_auth_openidc/src/proto/id_token.c:328,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - r
    - provider
    - jwt
    - response_type
    - access_token
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - oidc_jwt_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 323
    functionDepth: 6
    functionLinenumber: 323
    functionLinenumberEnd: 334
    functionName: oidc_proto_idtoken_validate_access_token
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 5
    functionsReached:
    - oidc_proto_validate_hash_value
    - oidc_error
    - apr_array_make
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_idtoken_validate_access_token(request_rec *r,
      oidc_provider_t *provider, const oidc_jwt_t *jwt,\n\t\t\t\t\t\t    const char
      *response_type, const char *access_token)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/proto/id_token.c:341,1
    - Dst: oidc_proto_validate_hash_value
      Src: /src/mod_auth_openidc/src/proto/id_token.c:344,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - r
    - provider
    - jwt
    - response_type
    - code
    argTypes:
    - request_rec*
    - oidc_provider_t*
    - oidc_jwt_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 339
    functionDepth: 6
    functionLinenumber: 339
    functionLinenumberEnd: 350
    functionName: oidc_proto_idtoken_validate_code
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 3
    functionsReached:
    - oidc_proto_validate_hash_value
    - oidc_error
    - apr_array_make
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_idtoken_validate_code(request_rec *r, oidc_provider_t
      *provider, const oidc_jwt_t *jwt,\n\t\t\t\t\t    const char *response_type,
      const char *code)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/id_token.c:358,1
    - Dst: oidc_proto_idtoken_validate_nonce
      Src: /src/mod_auth_openidc/src/proto/id_token.c:362,1
    - Dst: oidc_proto_jwt_validate
      Src: /src/mod_auth_openidc/src/proto/id_token.c:366,1
    - Dst: oidc_cfg_provider_validate_issuer_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:367,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:367,1
    - Dst: oidc_cfg_provider_idtoken_iat_slack_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:368,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:373,1
    - Dst: oidc_proto_idtoken_validate_aud_and_azp
      Src: /src/mod_auth_openidc/src/proto/id_token.c:379,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - r
    - cfg
    - provider
    - jwt
    - nonce
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - oidc_jwt_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 355
    functionDepth: 5
    functionLinenumber: 355
    functionLinenumberEnd: 383
    functionName: oidc_proto_validate_idtoken
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_proto_jwt_validate
    - oidc_debug
    - oidc_cfg_provider_issuer_get
    - oidc_cfg_provider_validate_issuer_get
    - oidc_proto_idtoken_validate_nonce
    - oidc_cfg_provider_idtoken_iat_slack_get
    - oidc_proto_idtoken_validate_aud_and_azp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_validate_idtoken(request_rec *r, oidc_cfg_t
      *cfg, const oidc_provider_t *provider,\n\t\t\t\t\t      oidc_jwt_t *jwt, const
      char *nonce)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/id_token.c:393,1
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/src/proto/id_token.c:393,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/src/proto/id_token.c:399,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:399,1
    - Dst: oidc_alg2keysize
      Src: /src/mod_auth_openidc/src/proto/id_token.c:399,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/src/proto/id_token.c:403,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:403,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:404,1
    - Dst: oidc_util_key_sets_merge
      Src: /src/mod_auth_openidc/src/proto/id_token.c:406,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:406,1
    - Dst: oidc_jwt_parse
      Src: /src/mod_auth_openidc/src/proto/id_token.c:408,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:409,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/id_token.c:409,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/id_token.c:410,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/id_token.c:412,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/id_token.c:416,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/id_token.c:417,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:427,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/id_token.c:428,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/id_token.c:429,1
    - Dst: oidc_util_key_symmetric_create
      Src: /src/mod_auth_openidc/src/proto/id_token.c:432,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:432,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/id_token.c:434,1
    - Dst: oidc_proto_jwt_verify
      Src: /src/mod_auth_openidc/src/proto/id_token.c:439,1
    - Dst: oidc_cfg_provider_jwks_uri_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:440,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:441,1
    - Dst: oidc_util_key_symmetric_merge
      Src: /src/mod_auth_openidc/src/proto/id_token.c:442,1
    - Dst: oidc_cfg_provider_verify_public_keys_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:442,1
    - Dst: oidc_cfg_provider_id_token_signed_response_alg_get
      Src: /src/mod_auth_openidc/src/proto/id_token.c:443,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:445,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/id_token.c:446,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/id_token.c:448,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/id_token.c:451,1
    - Dst: oidc_proto_validate_idtoken
      Src: /src/mod_auth_openidc/src/proto/id_token.c:455,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/id_token.c:456,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/id_token.c:457,1
    - Dst: oidc_util_apr_time_from_sec
      Src: /src/mod_auth_openidc/src/proto/id_token.c:464,1
    - Dst: apr_rfc822_date
      Src: /src/mod_auth_openidc/src/proto/id_token.c:465,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/id_token.c:466,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/id_token.c:467,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/id_token.c:467,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/id_token.c:467,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 7
    argNames:
    - r
    - cfg
    - provider
    - id_token
    - nonce
    - jwt
    - is_code_flow
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    - char*
    - oidc_jwt_t**
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 388
    functionDepth: 6
    functionLinenumber: 388
    functionLinenumberEnd: 471
    functionName: oidc_proto_idtoken_parse
    functionSourceFile: /src/mod_auth_openidc/src/proto/id_token.c
    functionUses: 4
    functionsReached:
    - oidc_cfg_provider_verify_public_keys_get
    - oidc_cfg_provider_jwks_uri_get
    - apr_time_sec
    - apr_time_now
    - oidc_debug
    - oidc_util_apr_time_from_sec
    - oidc_proto_jwt_verify
    - oidc_util_key_symmetric_merge
    - oidc_error
    - oidc_proto_jwt_header_peek
    - oidc_cfg_provider_ssl_validate_server_get
    - apr_rfc822_date
    - oidc_cfg_provider_id_token_signed_response_alg_get
    - oidc_jwk_destroy
    - oidc_cfg_provider_client_keys_get
    - oidc_util_key_sets_merge
    - oidc_jwt_parse
    - oidc_jose_e2s
    - oidc_util_key_symmetric_create
    - oidc_alg2keysize
    - oidc_cfg_provider_client_secret_get
    - oidc_cfg_private_keys_get
    - oidc_jwt_destroy
    - oidc_proto_validate_idtoken
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_idtoken_parse(request_rec *r, oidc_cfg_t *cfg,
      const oidc_provider_t *provider,\n\t\t\t\t    const char *id_token, const char
      *nonce, oidc_jwt_t **jwt,\n\t\t\t\t    apr_byte_t is_code_flow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/auth.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - client_id
    - params
    argTypes:
    - char*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: oidc_proto_endpoint_auth_none
    functionSourceFile: /src/mod_auth_openidc/src/proto/auth.c
    functionUses: 0
    functionsReached:
    - apr_table_set
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_endpoint_auth_none(const char *client_id, apr_table_t
      *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/auth.c:61,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/auth.c:63,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/auth.c:67,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/proto/auth.c:67,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/proto/auth.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - r
    - client_id
    - client_secret
    - basic_auth_str
    argTypes:
    - request_rec*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: oidc_proto_endpoint_client_secret_basic
    functionSourceFile: /src/mod_auth_openidc/src/proto/auth.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_debug
    - apr_psprintf
    - oidc_http_url_encode
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_endpoint_client_secret_basic(request_rec *r,
      const char *client_id,\n\t\t\t\t\t\t\t  const char *client_secret, char **basic_auth_str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/auth.c:77,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/auth.c:79,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/auth.c:82,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/auth.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - r
    - client_id
    - client_secret
    - params
    argTypes:
    - request_rec*
    - char*
    - char*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: oidc_proto_endpoint_client_secret_post
    functionSourceFile: /src/mod_auth_openidc/src/proto/auth.c
    functionUses: 0
    functionsReached:
    - apr_table_set
    - oidc_error
    - oidc_debug
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_endpoint_client_secret_post(request_rec *r,
      const char *client_id,\n\t\t\t\t\t\t\t const char *client_secret, apr_table_t
      *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/src/proto/auth.c:92,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/auth.c:95,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/auth.c:95,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/auth.c:96,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/auth.c:96,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/auth.c:97,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/auth.c:97,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/auth.c:98,1
    - Dst: oidc_json_string
      Src: /src/mod_auth_openidc/src/proto/auth.c:98,1
    - Dst: oidc_proto_jti_gen
      Src: /src/mod_auth_openidc/src/proto/auth.c:98,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/auth.c:99,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/proto/auth.c:100,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/auth.c:100,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/auth.c:100,1
    - Dst: oidc_json_object_set_new
      Src: /src/mod_auth_openidc/src/proto/auth.c:101,1
    - Dst: oidc_json_integer
      Src: /src/mod_auth_openidc/src/proto/auth.c:102,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/proto/auth.c:102,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/proto/auth.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - r
    - client_id
    - audience
    - out
    argTypes:
    - request_rec*
    - char*
    - char*
    - oidc_jwt_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: oidc_proto_jwt_create
    functionSourceFile: /src/mod_auth_openidc/src/proto/auth.c
    functionUses: 0
    functionsReached:
    - oidc_jwt_new
    - oidc_json_object_set_new
    - apr_time_sec
    - apr_time_now
    - oidc_proto_jti_gen
    - oidc_json_string
    - oidc_json_integer
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_jwt_create(request_rec *r, const char *client_id,
      const char *audience, oidc_jwt_t **out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_jwt_sign_and_serialize
      Src: /src/mod_auth_openidc/src/proto/auth.c:114,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/auth.c:117,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/auth.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - r
    - params
    - jwt
    - jwk
    argTypes:
    - request_rec*
    - apr_table_t*
    - oidc_jwt_t*
    - oidc_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: oidc_proto_jwt_sign_and_add
    functionSourceFile: /src/mod_auth_openidc/src/proto/auth.c
    functionUses: 0
    functionsReached:
    - apr_table_set
    - apr_table_setn
    - oidc_proto_jwt_sign_and_serialize
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_jwt_sign_and_add(request_rec *r, apr_table_t
      *params, oidc_jwt_t *jwt,\n\t\t\t\t\t      const oidc_jwk_t *jwk)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/auth.c:134,1
    - Dst: oidc_proto_jwt_create
      Src: /src/mod_auth_openidc/src/proto/auth.c:136,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/src/proto/auth.c:139,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/proto/auth.c:140,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/auth.c:142,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/proto/auth.c:142,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/auth.c:143,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/auth.c:147,1
    - Dst: oidc_proto_jwt_sign_and_add
      Src: /src/mod_auth_openidc/src/proto/auth.c:149,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/auth.c:151,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/proto/auth.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - r
    - client_id
    - client_secret
    - audience
    - params
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: oidc_proto_endpoint_auth_client_secret_jwt
    functionSourceFile: /src/mod_auth_openidc/src/proto/auth.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_pstrdup
    - oidc_error
    - oidc_debug
    - oidc_proto_jwt_sign_and_add
    - oidc_jwt_destroy
    - oidc_jose_e2s
    - oidc_jwk_destroy
    - oidc_proto_jwt_create
    - oidc_jwk_create_symmetric_key
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_endpoint_auth_client_secret_jwt(request_rec
      *r, const char *client_id,\n\t\t\t\t\t\t\t     const char *client_secret, const
      char *audience,\n\t\t\t\t\t\t\t     apr_table_t *params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/auth.c:166,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/auth.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - r
    - cfg
    - bearer_access_token
    - bearer_auth_str
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 173
    functionName: oidc_proto_endpoint_access_token_bearer
    functionSourceFile: /src/mod_auth_openidc/src/proto/auth.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - apr_psprintf
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_endpoint_access_token_bearer(request_rec *r,
      oidc_cfg_t *cfg,\n\t\t\t\t\t\t\t  const char *bearer_access_token, char **bearer_auth_str)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_key_list_first
      Src: /src/mod_auth_openidc/src/proto/auth.c:186,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/proto/auth.c:191,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/proto/auth.c:191,1
    - Dst: oidc_util_key_list_first
      Src: /src/mod_auth_openidc/src/proto/auth.c:192,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/proto/auth.c:192,1
    - Dst: oidc_util_key_list_first
      Src: /src/mod_auth_openidc/src/proto/auth.c:193,1
    - Dst: oidc_cfg_public_keys_get
      Src: /src/mod_auth_openidc/src/proto/auth.c:193,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - cfg
    - client_keys
    - x5t
    argTypes:
    - oidc_cfg_t*
    - apr_array_header_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 199
    functionName: oidc_proto_endpoint_auth_pick_signing_key
    functionSourceFile: /src/mod_auth_openidc/src/proto/auth.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_private_keys_get
    - oidc_util_key_list_first
    - oidc_cfg_public_keys_get
    linkageType: ''
    returnType: oidc_jwk_t
    signature: "oidc_jwk_t *oidc_proto_endpoint_auth_pick_signing_key(const oidc_cfg_t
      *cfg,\n\t\t\t\t\t\t\t     const apr_array_header_t *client_keys, const char
      **x5t)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/auth.c:215,1
    - Dst: oidc_proto_jwt_create
      Src: /src/mod_auth_openidc/src/proto/auth.c:217,1
    - Dst: oidc_proto_endpoint_auth_pick_signing_key
      Src: /src/mod_auth_openidc/src/proto/auth.c:220,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/auth.c:222,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/auth.c:228,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/auth.c:229,1
    - Dst: oidc_jwk_default_jws_alg
      Src: /src/mod_auth_openidc/src/proto/auth.c:235,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/auth.c:237,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/proto/auth.c:242,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/auth.c:244,1
    - Dst: oidc_proto_jwt_sign_and_add
      Src: /src/mod_auth_openidc/src/proto/auth.c:247,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/proto/auth.c:252,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 7
    argNames:
    - r
    - cfg
    - token_endpoint_auth_alg
    - client_id
    - client_keys
    - audience
    - params
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - apr_array_header_t*
    - char*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 255
    functionName: oidc_proto_endpoint_auth_private_key_jwt
    functionSourceFile: /src/mod_auth_openidc/src/proto/auth.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_error
    - oidc_debug
    - oidc_proto_jwt_sign_and_add
    - oidc_jwt_destroy
    - oidc_proto_endpoint_auth_pick_signing_key
    - oidc_proto_jwt_create
    - oidc_jwk_default_jws_alg
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_endpoint_auth_private_key_jwt(request_rec *r,
      const oidc_cfg_t *cfg,\n\t\t\t\t\t\t\t   const char *token_endpoint_auth_alg,
      const char *client_id,\n\t\t\t\t\t\t\t   const apr_array_header_t *client_keys,
      const char *audience,\n\t\t\t\t\t\t\t   apr_table_t *params)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/auth.c:267,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/auth.c:270,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/auth.c:279,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/auth.c:280,1
    - Dst: oidc_proto_endpoint_auth_none
      Src: /src/mod_auth_openidc/src/proto/auth.c:285,1
    - Dst: oidc_cfg_endpoint_auth_is_mtls
      Src: /src/mod_auth_openidc/src/proto/auth.c:290,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/auth.c:291,1
    - Dst: oidc_proto_endpoint_auth_none
      Src: /src/mod_auth_openidc/src/proto/auth.c:294,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/auth.c:299,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/auth.c:300,1
    - Dst: oidc_proto_endpoint_auth_none
      Src: /src/mod_auth_openidc/src/proto/auth.c:301,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/auth.c:304,1
    - Dst: oidc_proto_endpoint_client_secret_basic
      Src: /src/mod_auth_openidc/src/proto/auth.c:305,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/auth.c:307,1
    - Dst: oidc_proto_endpoint_client_secret_post
      Src: /src/mod_auth_openidc/src/proto/auth.c:308,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/auth.c:310,1
    - Dst: oidc_proto_endpoint_auth_client_secret_jwt
      Src: /src/mod_auth_openidc/src/proto/auth.c:311,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/auth.c:313,1
    - Dst: oidc_proto_endpoint_auth_private_key_jwt
      Src: /src/mod_auth_openidc/src/proto/auth.c:314,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/auth.c:317,1
    - Dst: oidc_proto_endpoint_access_token_bearer
      Src: /src/mod_auth_openidc/src/proto/auth.c:318,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/auth.c:321,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 12
    argNames:
    - r
    - cfg
    - token_endpoint_auth
    - token_endpoint_auth_alg
    - client_id
    - client_secret
    - client_keys
    - audience
    - params
    - bearer_access_token
    - basic_auth_str
    - bearer_auth_str
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - char*
    - char*
    - char*
    - apr_array_header_t*
    - char*
    - apr_table_t*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 324
    functionName: oidc_proto_token_endpoint_auth
    functionSourceFile: /src/mod_auth_openidc/src/proto/auth.c
    functionUses: 16
    functionsReached:
    - oidc_error
    - oidc_proto_endpoint_auth_none
    - oidc_proto_endpoint_client_secret_basic
    - oidc_debug
    - oidc_proto_endpoint_auth_client_secret_jwt
    - oidc_proto_endpoint_auth_private_key_jwt
    - oidc_cfg_endpoint_auth_is_mtls
    - oidc_proto_endpoint_client_secret_post
    - oidc_proto_endpoint_access_token_bearer
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_proto_token_endpoint_auth(request_rec *r, oidc_cfg_t
      *cfg, const char *token_endpoint_auth,\n\t\t\t\t\t  const char *token_endpoint_auth_alg,
      const char *client_id,\n\t\t\t\t\t  const char *client_secret, const apr_array_header_t
      *client_keys,\n\t\t\t\t\t  const char *audience, apr_table_t *params, const
      char *bearer_access_token,\n\t\t\t\t\t  char **basic_auth_str, char **bearer_auth_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_rand_str
      Src: /src/mod_auth_openidc/src/proto/proto.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - nonce
    argTypes:
    - request_rec*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: oidc_proto_nonce_gen
    functionSourceFile: /src/mod_auth_openidc/src/proto/proto.c
    functionUses: 3
    functionsReached:
    - oidc_util_rand_str
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_nonce_gen(request_rec *r, char **nonce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_rand_str
      Src: /src/mod_auth_openidc/src/proto/proto.c:71,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/proto.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: oidc_proto_jti_gen
    functionSourceFile: /src/mod_auth_openidc/src/proto/proto.c
    functionUses: 4
    functionsReached:
    - oidc_error
    - oidc_util_rand_str
    linkageType: ''
    returnType: char
    signature: char *oidc_proto_jti_gen(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/proto/proto.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: oidc_proto_supported_flows
    functionSourceFile: /src/mod_auth_openidc/src/proto/proto.c
    functionUses: 2
    functionsReached:
    - apr_array_make
    linkageType: ''
    returnType: apr_array_header_t
    signature: apr_array_header_t *oidc_proto_supported_flows(apr_pool_t *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_supported_flows
      Src: /src/mod_auth_openidc/src/proto/proto.c:95,1
    - Dst: oidc_util_spaced_string_equals
      Src: /src/mod_auth_openidc/src/proto/proto.c:97,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/proto/proto.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - flow
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: oidc_proto_flow_is_supported
    functionSourceFile: /src/mod_auth_openidc/src/proto/proto.c
    functionUses: 3
    functionsReached:
    - oidc_proto_supported_flows
    - APR_ARRAY_IDX
    - oidc_util_spaced_string_equals
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_proto_flow_is_supported(apr_pool_t *pool, const char
      *flow)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_oauth_accept_token_in_get
      Src: /src/mod_auth_openidc/src/proto/proto.c:107,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/proto.c:110,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/proto.c:112,1
    - Dst: ap_auth_name
      Src: /src/mod_auth_openidc/src/proto/proto.c:115,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/proto.c:116,1
    - Dst: ap_auth_name
      Src: /src/mod_auth_openidc/src/proto/proto.c:116,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/proto.c:119,1
    - Dst: ap_auth_name
      Src: /src/mod_auth_openidc/src/proto/proto.c:119,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/proto/proto.c:121,1
    - Dst: oidc_http_hdr_err_out_add
      Src: /src/mod_auth_openidc/src/proto/proto.c:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - r
    - error
    - error_description
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 124
    functionName: oidc_proto_return_www_authenticate
    functionSourceFile: /src/mod_auth_openidc/src/proto/proto.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_dir_oauth_accept_token_in_get
    - ap_auth_name
    - oidc_http_hdr_err_out_add
    - apr_psprintf
    linkageType: ''
    returnType: int
    signature: int oidc_proto_return_www_authenticate(request_rec *r, const char *error,
      const char *error_description)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ap_getword
      Src: /src/mod_auth_openidc/src/proto/request.c:64,1
    - Dst: ap_getword
      Src: /src/mod_auth_openidc/src/proto/request.c:67,1
    - Dst: ap_unescape_url
      Src: /src/mod_auth_openidc/src/proto/request.c:68,1
    - Dst: ap_unescape_url
      Src: /src/mod_auth_openidc/src/proto/request.c:69,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/request.c:70,1
    - Dst: oidc_util_url_has_parameter
      Src: /src/mod_auth_openidc/src/proto/request.c:71,1
    - Dst: oidc_util_url_parameter_get
      Src: /src/mod_auth_openidc/src/proto/request.c:73,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/request.c:76,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/proto/request.c:76,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/request.c:78,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/proto/request.c:84,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:85,1
    - Dst: apr_table_add
      Src: /src/mod_auth_openidc/src/proto/request.c:88,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:89,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - r
    - params
    - added
    - auth_request_params
    - configured
    argTypes:
    - request_rec*
    - apr_table_t*
    - apr_table_t*
    - char*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 91
    functionName: oidc_proto_request_auth_params_add
    functionSourceFile: /src/mod_auth_openidc/src/proto/request.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - ap_getword
    - apr_table_add
    - oidc_util_url_parameter_get
    - oidc_util_url_has_parameter
    - ap_unescape_url
    - apr_table_set
    - apr_table_setn
    - apr_table_get
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: "void oidc_proto_request_auth_params_add(request_rec *r, apr_table_t
      *params, apr_table_t *added,\n\t\t\t\t\t       const char *auth_request_params,
      apr_byte_t configured)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_pushed_authorization_request_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/request.c:107,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/proto/request.c:109,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/proto/request.c:112,1
    - Dst: oidc_util_html_send_error
      Src: /src/mod_auth_openidc/src/proto/request.c:114,1
    - Dst: oidc_proto_token_endpoint_auth
      Src: /src/mod_auth_openidc/src/proto/request.c:122,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_get
      Src: /src/mod_auth_openidc/src/proto/request.c:123,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_alg_get
      Src: /src/mod_auth_openidc/src/proto/request.c:124,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/request.c:124,1
    - Dst: oidc_cfg_provider_client_secret_get
      Src: /src/mod_auth_openidc/src/proto/request.c:125,1
    - Dst: oidc_cfg_provider_client_keys_get
      Src: /src/mod_auth_openidc/src/proto/request.c:125,1
    - Dst: oidc_proto_profile_token_endpoint_auth_aud
      Src: /src/mod_auth_openidc/src/proto/request.c:126,1
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/src/proto/request.c:129,1
    - Dst: oidc_http_post_form
      Src: /src/mod_auth_openidc/src/proto/request.c:131,1
    - Dst: oidc_cfg_provider_ssl_validate_server_get
      Src: /src/mod_auth_openidc/src/proto/request.c:132,1
    - Dst: oidc_cfg_http_timeout_long_get
      Src: /src/mod_auth_openidc/src/proto/request.c:133,1
    - Dst: oidc_cfg_outgoing_proxy_get
      Src: /src/mod_auth_openidc/src/proto/request.c:133,1
    - Dst: oidc_cfg_dir_pass_cookies_get
      Src: /src/mod_auth_openidc/src/proto/request.c:134,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_cert_get
      Src: /src/mod_auth_openidc/src/proto/request.c:135,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_get
      Src: /src/mod_auth_openidc/src/proto/request.c:136,1
    - Dst: oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
      Src: /src/mod_auth_openidc/src/proto/request.c:137,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/proto/request.c:138,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/src/proto/request.c:142,1
    - Dst: oidc_json_decode_and_check_error
      Src: /src/mod_auth_openidc/src/proto/request.c:145,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/proto/request.c:146,1
    - Dst: oidc_json_object_get_string
      Src: /src/mod_auth_openidc/src/proto/request.c:151,1
    - Dst: oidc_json_object_get_int
      Src: /src/mod_auth_openidc/src/proto/request.c:154,1
    - Dst: apr_table_clear
      Src: /src/mod_auth_openidc/src/proto/request.c:157,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:158,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/request.c:158,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:159,1
    - Dst: oidc_proto_profile_request_uri_scope_get
      Src: /src/mod_auth_openidc/src/proto/request.c:164,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:166,1
    - Dst: oidc_http_query_encoded_url
      Src: /src/mod_auth_openidc/src/proto/request.c:168,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_get
      Src: /src/mod_auth_openidc/src/proto/request.c:168,1
    - Dst: oidc_http_hdr_out_location_set
      Src: /src/mod_auth_openidc/src/proto/request.c:169,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/proto/request.c:175,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - r
    - cfg
    - provider
    - params
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - struct oidc_provider_t*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 96
    functionDepth: 6
    functionLinenumber: 96
    functionLinenumberEnd: 178
    functionName: oidc_proto_request_auth_push
    functionSourceFile: /src/mod_auth_openidc/src/proto/request.c
    functionUses: 1
    functionsReached:
    - oidc_debug
    - apr_table_setn
    - oidc_cfg_http_timeout_long_get
    - oidc_proto_token_endpoint_auth
    - oidc_cfg_provider_token_endpoint_tls_client_key_get
    - oidc_http_post_form
    - oidc_error
    - oidc_cfg_provider_ssl_validate_server_get
    - oidc_http_query_encoded_url
    - oidc_cfg_outgoing_proxy_get
    - oidc_http_hdr_out_location_set
    - oidc_cfg_provider_authorization_endpoint_url_get
    - oidc_cfg_provider_token_endpoint_auth_get
    - oidc_json_decref
    - oidc_cfg_provider_client_keys_get
    - oidc_cfg_dir_pass_cookies_get
    - OIDC_METRICS_TIMING_START
    - OIDC_METRICS_TIMING_ADD
    - oidc_proto_profile_request_uri_scope_get
    - oidc_cfg_provider_client_id_get
    - oidc_json_decode_and_check_error
    - oidc_cfg_provider_token_endpoint_tls_client_key_pwd_get
    - oidc_cfg_provider_client_secret_get
    - oidc_json_object_get_int
    - oidc_cfg_provider_token_endpoint_auth_alg_get
    - oidc_proto_profile_token_endpoint_auth_aud
    - OIDC_METRICS_COUNTER_INC
    - oidc_util_html_send_error
    - apr_table_clear
    - oidc_cfg_provider_pushed_authorization_request_endpoint_url_get
    - oidc_json_object_get_string
    - oidc_cfg_provider_token_endpoint_tls_client_cert_get
    linkageType: ''
    returnType: int
    signature: "int oidc_proto_request_auth_push(request_rec *r, oidc_cfg_t *cfg,
      const struct oidc_provider_t *provider,\n\t\t\t\t apr_table_t *params)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_scope_get
      Src: /src/mod_auth_openidc/src/proto/request.c:185,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/proto/request.c:187,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/proto/request.c:188,1
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/src/proto/request.c:194,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/proto/request.c:195,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - r
    - provider
    - path_scope
    - params
    argTypes:
    - request_rec*
    - struct oidc_provider_t*
    - char*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 201
    functionName: oidc_proto_request_auth_scope_set
    functionSourceFile: /src/mod_auth_openidc/src/proto/request.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_util_spaced_string_contains
    - apr_pstrcat
    - apr_table_setn
    - oidc_cfg_provider_scope_get
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: "void oidc_proto_request_auth_scope_set(request_rec *r, const struct
      oidc_provider_t *provider,\n\t\t\t\t\t      const char *path_scope, apr_table_t
      *params)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:213,1
    - Dst: oidc_proto_state_get_response_type
      Src: /src/mod_auth_openidc/src/proto/request.c:213,1
    - Dst: oidc_proto_request_auth_scope_set
      Src: /src/mod_auth_openidc/src/proto/request.c:216,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:219,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/proto/request.c:219,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:222,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:225,1
    - Dst: oidc_proto_state_get_nonce
      Src: /src/mod_auth_openidc/src/proto/request.c:228,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:230,1
    - Dst: oidc_proto_profile_pkce_get
      Src: /src/mod_auth_openidc/src/proto/request.c:233,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:234,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:235,1
    - Dst: oidc_proto_profile_pkce_get
      Src: /src/mod_auth_openidc/src/proto/request.c:235,1
    - Dst: oidc_proto_state_get_response_mode
      Src: /src/mod_auth_openidc/src/proto/request.c:239,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:241,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:245,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:249,1
    - Dst: oidc_proto_state_get_prompt
      Src: /src/mod_auth_openidc/src/proto/request.c:252,1
    - Dst: apr_table_setn
      Src: /src/mod_auth_openidc/src/proto/request.c:254,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/proto/request.c:258,1
    - Dst: oidc_proto_request_auth_params_add
      Src: /src/mod_auth_openidc/src/proto/request.c:261,1
    - Dst: oidc_cfg_provider_auth_request_params_get
      Src: /src/mod_auth_openidc/src/proto/request.c:261,1
    - Dst: oidc_proto_request_auth_params_add
      Src: /src/mod_auth_openidc/src/proto/request.c:264,1
    - Dst: oidc_cfg_provider_request_object_get
      Src: /src/mod_auth_openidc/src/proto/request.c:267,1
    - Dst: oidc_proto_request_object_param_add
      Src: /src/mod_auth_openidc/src/proto/request.c:268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 12
    argNames:
    - r
    - cfg
    - provider
    - login_hint
    - redirect_uri
    - state
    - proto_state
    - id_token_hint
    - code_challenge
    - auth_request_params
    - path_scope
    - params
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - struct oidc_provider_t*
    - char*
    - char*
    - char*
    - oidc_proto_state_t*
    - char*
    - char*
    - char*
    - char*
    - apr_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 206
    functionDepth: 14
    functionLinenumber: 206
    functionLinenumberEnd: 269
    functionName: oidc_proto_request_auth_params_set
    functionSourceFile: /src/mod_auth_openidc/src/proto/request.c
    functionUses: 1
    functionsReached:
    - oidc_proto_request_auth_params_add
    - oidc_cfg_provider_request_object_get
    - oidc_proto_request_object_param_add
    - oidc_cfg_provider_auth_request_params_get
    - apr_table_make
    - oidc_proto_state_get_response_type
    - oidc_proto_state_get_response_mode
    - oidc_proto_state_get_nonce
    - oidc_proto_state_get_prompt
    - oidc_cfg_provider_client_id_get
    - apr_table_setn
    - oidc_proto_profile_pkce_get
    - oidc_proto_request_auth_scope_set
    linkageType: ''
    returnType: void
    signature: "void oidc_proto_request_auth_params_set(request_rec *r, oidc_cfg_t
      *cfg, const struct oidc_provider_t *provider,\n\t\t\t\t\tconst char *login_hint,
      const char *redirect_uri, const char *state,\n\t\t\t\t\tconst oidc_proto_state_t
      *proto_state, const char *id_token_hint,\n\t\t\t\t\tconst char *code_challenge,
      const char *auth_request_params,\n\t\t\t\t\tconst char *path_scope, apr_table_t
      *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PTR
    - ','
    - INT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: OIDC_DIR_CFG_SIMPLE_MEMBERS
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_DIR_CFG_SIMPLE_MEMBERS(PTR, INT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: OIDC_DIR_M_DECL_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_DIR_M_DECL_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: OIDC_DIR_M_DECL_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_DIR_M_DECL_INT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: OIDC_DIR_M_CREATE_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_DIR_M_CREATE_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: OIDC_DIR_M_CREATE_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_DIR_M_CREATE_INT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: OIDC_DIR_M_MERGE_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_DIR_M_MERGE_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: OIDC_DIR_M_MERGE_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_DIR_M_MERGE_INT(name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/dir.c:123,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/dir.c:123,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/dir.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 134
    functionName: oidc_cmd_dir_pass_idtoken_as_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_parse_option
    - OIDC_CONFIG_DIR_RV
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_pass_idtoken_as_set(cmd_parms *cmd, void *m, const
      char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cfg/dir.c:159,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/src/cfg/dir.c:160,1
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/dir.c:163,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/dir.c:163,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cfg/dir.c:167,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/dir.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pool
    - v
    - result
    argTypes:
    - apr_pool_t*
    - char*
    - oidc_pass_user_info_as_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 173
    functionName: oidc_cfg_dir_parse_pass_userinfo_as
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - apr_pstrndup
    - OIDC_CFG_OPTIONS_SIZE
    - apr_pcalloc
    - _oidc_strstr
    - oidc_cfg_parse_option
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_dir_parse_pass_userinfo_as(apr_pool_t *pool, const
      char *v,\n\t\t\t\t\t\t       oidc_pass_user_info_as_t **result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_dir_parse_pass_userinfo_as
      Src: /src/mod_auth_openidc/src/cfg/dir.c:182,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/dir.c:184,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/cfg/dir.c:186,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/cfg/dir.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 189
    functionName: oidc_cmd_dir_pass_userinfo_as_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 11
    functionsReached:
    - oidc_cfg_dir_parse_pass_userinfo_as
    - OIDC_CONFIG_DIR_RV
    - APR_ARRAY_PUSH
    - apr_array_make
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_pass_userinfo_as_set(cmd_parms *cmd, void *m, const
      char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/dir.c:208,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/dir.c:210,1
    - Dst: oidc_cfg_parse_options_flatten
      Src: /src/mod_auth_openidc/src/cfg/dir.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pool
    - v
    argTypes:
    - apr_pool_t*
    - oidc_oauth_accept_token_in_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 217
    functionName: oidc_cfg_dir_accept_oauth_token_in2str
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_parse_options_flatten
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_dir_accept_oauth_token_in2str(apr_pool_t *pool, oidc_oauth_accept_token_in_t
      v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/dir.c:232,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cfg/dir.c:233,1
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/dir.c:242,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/dir.c:243,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/dir.c:245,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/cfg/dir.c:253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 257
    functionName: oidc_cmd_dir_accept_oauth_token_in_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 10
    functionsReached:
    - apr_pstrdup
    - apr_hash_set
    - OIDC_CFG_OPTIONS_SIZE
    - OIDC_CONFIG_DIR_RV
    - _oidc_strstr
    - oidc_cfg_parse_option
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_accept_oauth_token_in_set(cmd_parms *cmd, void *m,
      const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_string_list_add
      Src: /src/mod_auth_openidc/src/cfg/dir.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: oidc_cmd_dir_strip_cookies_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_string_list_add
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_strip_cookies_set(cmd_parms *cmd, void *m, const
      char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_string_list_add
      Src: /src/mod_auth_openidc/src/cfg/dir.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: oidc_cmd_dir_pass_cookies_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_string_list_add
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_pass_cookies_set(cmd_parms *cmd, void *m, const
      char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - def_val
    - ','
    - unset_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 285
    functionName: OIDC_CFG_DIR_MEMBER_FUNC_GET
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_DIR_MEMBER_FUNC_GET(member, type, def_val, unset_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: OIDC_CFG_DIR_MEMBER_FUNC_INT_GET
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_DIR_MEMBER_FUNC_INT_GET(member, type, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - parse
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 299
    functionName: OIDC_CFG_DIR_MEMBER_FUNCS_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_DIR_MEMBER_FUNCS_INT(member, type, parse, def_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/dir.c:329,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/dir.c:329,1
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/dir.c:338,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/dir.c:338,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/dir.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - cmd
    - m
    - arg1
    - arg2
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 342
    functionName: oidc_cmd_dir_pass_claims_as_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_parse_option
    - OIDC_CONFIG_DIR_RV
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_pass_claims_as_set(cmd_parms *cmd, void *m, const
      char *arg1, const char *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/dir.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - action
    argTypes:
    - oidc_unauth_action_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: oidc_cfg_dir_unauth_action2str
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached:
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_dir_unauth_action2str(oidc_unauth_action_t action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/dir.c:371,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/dir.c:371,1
    - Dst: oidc_util_apr_expr_parse
      Src: /src/mod_auth_openidc/src/cfg/dir.c:374,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/dir.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - cmd
    - m
    - arg1
    - arg2
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 376
    functionName: oidc_cmd_dir_unauth_action_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 6
    functionsReached:
    - oidc_cfg_parse_option
    - oidc_util_apr_expr_parse
    - OIDC_CONFIG_DIR_RV
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_unauth_action_set(cmd_parms *cmd, void *m, const
      char *arg1, const char *arg2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/dir.c:393,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/dir.c:393,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/dir.c:395,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/dir.c:398,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/dir.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - cmd
    - m
    - arg1
    - arg2
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 402
    functionName: oidc_cmd_dir_unautz_action_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 6
    functionsReached:
    - apr_pstrdup
    - OIDC_CFG_OPTIONS_SIZE
    - OIDC_CONFIG_DIR_RV
    - apr_psprintf
    - oidc_cfg_parse_option
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_unautz_action_set(cmd_parms *cmd, void *m, const
      char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_apr_expr_parse
      Src: /src/mod_auth_openidc/src/cfg/dir.c:409,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/dir.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: oidc_cmd_dir_userinfo_claims_expr_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 3
    functionsReached:
    - oidc_util_apr_expr_parse
    - OIDC_CONFIG_DIR_RV
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_userinfo_claims_expr_set(cmd_parms *cmd, void *m,
      const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_apr_expr_parse
      Src: /src/mod_auth_openidc/src/cfg/dir.c:418,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/dir.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: oidc_cmd_dir_path_auth_request_params_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - oidc_util_apr_expr_parse
    - OIDC_CONFIG_DIR_RV
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_path_auth_request_params_set(cmd_parms *cmd, void
      *m, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_apr_expr_parse
      Src: /src/mod_auth_openidc/src/cfg/dir.c:425,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/dir.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 427
    functionName: oidc_cmd_dir_path_scope_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - oidc_util_apr_expr_parse
    - OIDC_CONFIG_DIR_RV
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_path_scope_set(cmd_parms *cmd, void *m, const char
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_int_min_max
      Src: /src/mod_auth_openidc/src/cfg/dir.c:440,1
    - Dst: oidc_cfg_parse_action_on_error_refresh_as
      Src: /src/mod_auth_openidc/src/cfg/dir.c:447,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/dir.c:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - cmd
    - m
    - arg1
    - arg2
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 453
    functionName: oidc_cmd_dir_refresh_access_token_before_expiry_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - oidc_cfg_parse_action_on_error_refresh_as
    - oidc_cfg_parse_int_min_max
    linkageType: ''
    returnType: char
    signature: "char *oidc_cmd_dir_refresh_access_token_before_expiry_set(cmd_parms
      *cmd, void *m, const char *arg1,\n\t\t\t\t\t\t\t\tconst char *arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - parse
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: OIDC_CFG_DIR_MEMBER_FUNC_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_DIR_MEMBER_FUNC_PTR(member, type, parse, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 472
    functionName: OIDC_CFG_DIR_MEMBER_FUNC_STR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_DIR_MEMBER_FUNC_STR(member, type, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/dir.c:524,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/cfg/dir.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - key
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: oidc_cfg_dir_accept_token_in_option_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - ap_get_module_config
    - apr_hash_get
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_dir_accept_token_in_option_get(request_rec *r, const
      char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_int_min_max
      Src: /src/mod_auth_openidc/src/cfg/dir.c:536,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/dir.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: oidc_cmd_dir_token_introspection_interval_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 3
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - oidc_cfg_parse_int_min_max
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_dir_token_introspection_interval_set(cmd_parms *cmd,
      void *m, const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/dir.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: oidc_cfg_dir_token_introspection_interval_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 4
    functionsReached:
    - ap_get_module_config
    linkageType: ''
    returnType: int
    signature: int oidc_cfg_dir_token_introspection_interval_get(request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/dir.c:556,1
    - Dst: oidc_util_apr_expr_exec
      Src: /src/mod_auth_openidc/src/cfg/dir.c:570,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cfg/dir.c:574,1
    - Dst: oidc_cfg_dir_unauth_action2str
      Src: /src/mod_auth_openidc/src/cfg/dir.c:574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 580
    functionName: oidc_cfg_dir_unauth_action_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 3
    functionsReached:
    - ap_get_module_config
    - oidc_debug
    - oidc_cfg_dir_unauth_action2str
    - oidc_util_apr_expr_exec
    linkageType: ''
    returnType: oidc_unauth_action_t
    signature: oidc_unauth_action_t oidc_cfg_dir_unauth_action_get(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/dir.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 585
    functionName: oidc_cfg_dir_unauth_expr_is_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - ap_get_module_config
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cfg_dir_unauth_expr_is_set(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/dir.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 594
    functionName: oidc_cfg_dir_unauthz_arg_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - ap_get_module_config
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_dir_unauthz_arg_get(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/dir.c:597,1
    - Dst: oidc_util_apr_expr_exec
      Src: /src/mod_auth_openidc/src/cfg/dir.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 599
    functionName: oidc_cfg_dir_path_auth_request_params_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 6
    functionsReached:
    - ap_get_module_config
    - oidc_util_apr_expr_exec
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_dir_path_auth_request_params_get(request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/cfg/dir.c:615,1
    - Dst: oidc_cfg_dir_parse_pass_userinfo_as
      Src: /src/mod_auth_openidc/src/cfg/dir.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 620
    functionName: oidc_cfg_dir_post_config
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_dir_parse_pass_userinfo_as
    - apr_array_make
    linkageType: ''
    returnType: int
    signature: int oidc_cfg_dir_post_config(server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/dir.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 625
    functionName: oidc_cfg_dir_pass_userinfo_as_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - ap_get_module_config
    linkageType: ''
    returnType: apr_array_header_t
    signature: apr_array_header_t *oidc_cfg_dir_pass_userinfo_as_get(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/dir.c:633,1
    - Dst: oidc_util_apr_expr_exec
      Src: /src/mod_auth_openidc/src/cfg/dir.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: oidc_cfg_dir_userinfo_claims_expr_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - ap_get_module_config
    - oidc_util_apr_expr_exec
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_dir_userinfo_claims_expr_get(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/dir.c:639,1
    - Dst: oidc_util_apr_expr_exec
      Src: /src/mod_auth_openidc/src/cfg/dir.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 641
    functionName: oidc_cfg_dir_path_scope_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 6
    functionsReached:
    - ap_get_module_config
    - oidc_util_apr_expr_exec
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_dir_path_scope_get(request_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cfg/dir.c:647,1
    - Dst: OIDC_DIR_CFG_SIMPLE_MEMBERS
      Src: /src/mod_auth_openidc/src/cfg/dir.c:648,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/cfg/dir.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pool
    - path
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 652
    functionName: oidc_cfg_dir_config_create
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 4
    functionsReached:
    - OIDC_DIR_CFG_SIMPLE_MEMBERS
    - apr_pcalloc
    - apr_hash_make
    linkageType: ''
    returnType: void
    signature: void *oidc_cfg_dir_config_create(apr_pool_t *pool, char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/cfg/dir.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - add
    - base
    argTypes:
    - apr_hash_t*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 659
    functionName: _oidc_cfg_dir_merge_hash
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached:
    - apr_hash_count
    linkageType: ''
    returnType: apr_hash_t
    signature: apr_hash_t *_oidc_cfg_dir_merge_hash(apr_hash_t *add, apr_hash_t *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - add
    - base
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 667
    functionName: _oidc_cfg_dir_merge_introspect_interval
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _oidc_cfg_dir_merge_introspect_interval(int add, int base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cfg/dir.c:673,1
    - Dst: OIDC_DIR_CFG_SIMPLE_MEMBERS
      Src: /src/mod_auth_openidc/src/cfg/dir.c:676,1
    - Dst: _oidc_cfg_dir_merge_hash
      Src: /src/mod_auth_openidc/src/cfg/dir.c:678,1
    - Dst: _oidc_cfg_dir_merge_introspect_interval
      Src: /src/mod_auth_openidc/src/cfg/dir.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pool
    - BASE
    - ADD
    argTypes:
    - apr_pool_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 682
    functionName: oidc_cfg_dir_config_merge
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.c
    functionUses: 2
    functionsReached:
    - _oidc_cfg_dir_merge_hash
    - OIDC_DIR_CFG_SIMPLE_MEMBERS
    - apr_pcalloc
    - _oidc_cfg_dir_merge_introspect_interval
    linkageType: ''
    returnType: void
    signature: void *oidc_cfg_dir_config_merge(apr_pool_t *pool, void *BASE, void
      *ADD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PTR
    - ','
    - INT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 103
    functionName: OIDC_PROVIDER_CFG_SIMPLE_MEMBERS
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_CFG_SIMPLE_MEMBERS(PTR, INT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: OIDC_PROVIDER_M_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_M_DECL(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: OIDC_PROVIDER_M_INIT_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_M_INIT_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: OIDC_PROVIDER_M_INIT_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_M_INIT_INT(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: OIDC_PROVIDER_M_MERGE_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_M_MERGE_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: OIDC_PROVIDER_M_MERGE_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_M_MERGE_INT(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: OIDC_PROVIDER_MEMBER_FUNCS_TYPE_DEF
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_FUNCS_TYPE_DEF(member, type, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: OIDC_PROVIDER_MEMBER_FUNCS_STR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_FUNCS_STR(member, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: OIDC_PROVIDER_MEMBER_FUNCS_FILE
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_FUNCS_FILE(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: OIDC_PROVIDER_MEMBER_GET_INT_DEF
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_GET_INT_DEF(member, type, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - member
    - ','
    - fparse
    - ','
    - type
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: OIDC_PROVIDER_MEMBER_FUNCS_STR_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_FUNCS_STR_INT(member, fparse, type, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - fvalid
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: OIDC_PROVIDER_MEMBER_FUNCS_PARSE_STR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_FUNCS_PARSE_STR(member, fvalid, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - member
    - ','
    - fparse
    - ','
    - min_val
    - ','
    - max_val
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 227
    functionName: OIDC_PROVIDER_MEMBER_FUNCS_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_FUNCS_INT(member, fparse, min_val, max_val, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: OIDC_PROVIDER_MEMBER_FUNCS_URL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_FUNCS_URL(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 254
    functionName: OIDC_PROVIDER_MEMBER_FUNCS_URL_EMPTY
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_FUNCS_URL_EMPTY(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: OIDC_PROVIDER_MEMBER_FUNCS_FLAG
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_FUNCS_FLAG(member, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: OIDC_PROVIDER_TYPE_MEMBER_FUNCS_PASSPHRASE
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_TYPE_MEMBER_FUNCS_PASSPHRASE(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: OIDC_PROVIDER_MEMBER_FUNCS_KEYS
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_FUNCS_KEYS(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: OIDC_PROVIDER_MEMBER_FUNCS_STR_LIST
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_PROVIDER_MEMBER_FUNCS_STR_LIST(member)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/provider.c:330,1
    - Dst: oidc_cfg_parse_is_valid_option
      Src: /src/mod_auth_openidc/src/cfg/provider.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pool
    - provider
    - arg
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 338
    functionName: oidc_cfg_provider_pkce_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 9
    functionsReached:
    - oidc_cfg_parse_is_valid_option
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_pkce_set(apr_pool_t *pool, oidc_provider_t
      *provider, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/provider.c:355,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/provider.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - arg
    - mode
    argTypes:
    - apr_pool_t*
    - char*
    - oidc_dpop_mode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 356
    functionName: oidc_cfg_provider_parse_dop_method
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_option
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_parse_dop_method(apr_pool_t *pool, const char
      *arg, oidc_dpop_mode_t *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - provider
    - arg
    argTypes:
    - oidc_provider_t*
    - oidc_dpop_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 364
    functionName: oidc_cfg_provider_dpop_mode_int_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_provider_dpop_mode_int_set(oidc_provider_t *provider,
      oidc_dpop_mode_t arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_parse_dop_method
      Src: /src/mod_auth_openidc/src/cfg/provider.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pool
    - provider
    - arg
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 377
    functionName: oidc_cfg_provider_dpop_mode_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 5
    functionsReached:
    - oidc_cfg_provider_parse_dop_method
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_dpop_mode_set(apr_pool_t *pool, oidc_provider_t
      *provider, const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/provider.c:380,1
    - Dst: oidc_cfg_provider_dpop_mode_set
      Src: /src/mod_auth_openidc/src/cfg/provider.c:381,1
    - Dst: oidc_cfg_parse_boolean
      Src: /src/mod_auth_openidc/src/cfg/provider.c:383,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/provider.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cmd
    - ptr
    - arg1
    - arg2
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: oidc_cmd_provider_dpop_mode_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 1
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - oidc_cfg_provider_dpop_mode_set
    - ap_get_module_config
    - oidc_cfg_parse_boolean
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_provider_dpop_mode_set(cmd_parms *cmd, void *ptr, const
      char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/provider.c:401,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/provider.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - arg
    - mode
    argTypes:
    - apr_pool_t*
    - char*
    - oidc_cert_bound_tokens_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 402
    functionName: oidc_cfg_provider_parse_cert_bound_tokens
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_option
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_provider_parse_cert_bound_tokens(apr_pool_t *pool,
      const char *arg,\n\t\t\t\t\t\t\t     oidc_cert_bound_tokens_t *mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - provider
    - arg
    argTypes:
    - oidc_provider_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 417
    functionName: oidc_cfg_provider_dpop_supported_int_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_provider_dpop_supported_int_set(oidc_provider_t *provider,
      int arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 474
    functionName: oidc_cfg_provider_response_type_is_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cfg_provider_response_type_is_set(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/provider.c:499,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/provider.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - arg
    - method
    argTypes:
    - apr_pool_t*
    - char*
    - oidc_auth_request_method_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 500
    functionName: oidc_cfg_provider_parse_auth_request_method
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_option
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_provider_parse_auth_request_method(apr_pool_t *pool,
      const char *arg,\n\t\t\t\t\t\t\t       oidc_auth_request_method_t *method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/provider.c:514,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/provider.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - arg
    - method
    argTypes:
    - apr_pool_t*
    - char*
    - oidc_userinfo_token_method_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 515
    functionName: oidc_cfg_provider_parse_userinfo_token_method
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_option
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_provider_parse_userinfo_token_method(apr_pool_t *pool,
      const char *arg,\n\t\t\t\t\t\t\t  oidc_userinfo_token_method_t *method)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_is_valid_int
      Src: /src/mod_auth_openidc/src/cfg/provider.c:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pool
    - provider
    - arg
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 542
    functionName: oidc_cfg_provider_session_max_duration_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_parse_is_valid_int
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_session_max_duration_set(apr_pool_t *pool,
      oidc_provider_t *provider, int arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/provider.c:545,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/src/cfg/provider.c:547,1
    - Dst: oidc_cfg_provider_session_max_duration_set
      Src: /src/mod_auth_openidc/src/cfg/provider.c:549,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/provider.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 551
    functionName: oidc_cmd_provider_session_max_duration_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_parse_int
    - oidc_cfg_provider_session_max_duration_set
    - ap_get_module_config
    - OIDC_CONFIG_DIR_RV
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_provider_session_max_duration_set(cmd_parms *cmd, void
      *ptr, const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_is_valid_int
      Src: /src/mod_auth_openidc/src/cfg/provider.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pool
    - provider
    - arg
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 567
    functionName: oidc_cfg_provider_jwks_uri_refresh_interval_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_is_valid_int
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_jwks_uri_refresh_interval_set(apr_pool_t *pool,
      oidc_provider_t *provider, int arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/provider.c:570,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/src/cfg/provider.c:572,1
    - Dst: oidc_cfg_provider_jwks_uri_refresh_interval_set
      Src: /src/mod_auth_openidc/src/cfg/provider.c:574,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/provider.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 576
    functionName: oidc_cmd_provider_jwks_uri_refresh_interval_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_provider_jwks_uri_refresh_interval_set
    - oidc_cfg_parse_int
    - ap_get_module_config
    - OIDC_CONFIG_DIR_RV
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_provider_jwks_uri_refresh_interval_set(cmd_parms *cmd,
      void *ptr, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jwks_uri
    argTypes:
    - oidc_jwks_uri_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 581
    functionName: oidc_cfg_jwks_uri_refresh_interval_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int oidc_cfg_jwks_uri_refresh_interval_get(const oidc_jwks_uri_t *jwks_uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 586
    functionName: oidc_cfg_provider_jwks_uri_refresh_interval_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int oidc_cfg_provider_jwks_uri_refresh_interval_get(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 590
    functionName: oidc_cfg_provider_jwks_uri_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: oidc_jwks_uri_t
    signature: oidc_jwks_uri_t *oidc_cfg_provider_jwks_uri_get(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 594
    functionName: oidc_cfg_provider_jwks_uri_uri_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_jwks_uri_uri_get(const oidc_provider_t *provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_is_valid_http_url
      Src: /src/mod_auth_openidc/src/cfg/provider.c:597,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/provider.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pool
    - provider
    - arg
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 601
    functionName: oidc_cfg_provider_jwks_uri_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 1
    functionsReached:
    - apr_pstrdup
    - oidc_cfg_parse_is_valid_http_url
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_jwks_uri_set(apr_pool_t *pool, oidc_provider_t
      *provider, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/provider.c:604,1
    - Dst: oidc_cfg_provider_jwks_uri_set
      Src: /src/mod_auth_openidc/src/cfg/provider.c:605,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/provider.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 607
    functionName: oidc_cmd_provider_jwks_uri_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_provider_jwks_uri_set
    - ap_get_module_config
    - OIDC_CONFIG_DIR_RV
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_provider_jwks_uri_set(cmd_parms *cmd, void *ptr, const
      char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: oidc_cfg_provider_signed_jwks_uri_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_signed_jwks_uri_get(const oidc_provider_t *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 615
    functionName: oidc_cfg_provider_signed_jwks_uri_keys_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: apr_array_header_t
    signature: apr_array_header_t *oidc_cfg_provider_signed_jwks_uri_keys_get(const
      oidc_provider_t *provider)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_is_jwk
      Src: /src/mod_auth_openidc/src/cfg/provider.c:625,1
    - Dst: oidc_jwk_parse_json
      Src: /src/mod_auth_openidc/src/cfg/provider.c:627,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/provider.c:628,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/cfg/provider.c:629,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/cfg/provider.c:632,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/cfg/provider.c:633,1
    - Dst: oidc_is_jwks
      Src: /src/mod_auth_openidc/src/cfg/provider.c:637,1
    - Dst: oidc_jwks_parse_json
      Src: /src/mod_auth_openidc/src/cfg/provider.c:638,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/provider.c:639,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/cfg/provider.c:640,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/provider.c:644,1
    - Dst: oidc_jwk_list_copy
      Src: /src/mod_auth_openidc/src/cfg/provider.c:650,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - pool
    - provider
    - json
    - def_val
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    - oidc_json_t*
    - apr_array_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 653
    functionName: oidc_cfg_provider_signed_jwks_uri_keys_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 2
    functionsReached:
    - oidc_jwks_parse_json
    - oidc_jwk_list_copy
    - oidc_jwk_parse_json
    - oidc_is_jwk
    - apr_psprintf
    - oidc_jose_e2s
    - apr_array_make
    - APR_ARRAY_PUSH
    - oidc_is_jwks
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_provider_signed_jwks_uri_keys_set(apr_pool_t *pool,
      oidc_provider_t *provider,\n\t\t\t\t\t\t       const oidc_json_t *json, apr_array_header_t
      *def_val)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/provider.c:661,1
    - Dst: oidc_cfg_parse_is_valid_http_url
      Src: /src/mod_auth_openidc/src/cfg/provider.c:662,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/provider.c:665,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/provider.c:668,1
    - Dst: oidc_json_parse
      Src: /src/mod_auth_openidc/src/cfg/provider.c:671,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/provider.c:672,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_keys_set
      Src: /src/mod_auth_openidc/src/cfg/provider.c:676,1
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/cfg/provider.c:681,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 4
    argNames:
    - pool
    - provider
    - arg1
    - arg2
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 684
    functionName: oidc_cfg_provider_signed_jwks_uri_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 1
    functionsReached:
    - apr_pstrdup
    - oidc_cfg_parse_is_valid_http_url
    - oidc_json_decref
    - apr_psprintf
    - oidc_cfg_provider_signed_jwks_uri_keys_set
    - oidc_json_parse
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_provider_signed_jwks_uri_set(apr_pool_t *pool, oidc_provider_t
      *provider, const char *arg1,\n\t\t\t\t\t\t  const char *arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/provider.c:687,1
    - Dst: oidc_cfg_provider_signed_jwks_uri_set
      Src: /src/mod_auth_openidc/src/cfg/provider.c:688,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/provider.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cmd
    - ptr
    - arg1
    - arg2
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 686
    functionDepth: 4
    functionLinenumber: 686
    functionLinenumberEnd: 690
    functionName: oidc_cmd_provider_signed_jwks_uri_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 1
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - ap_get_module_config
    - oidc_cfg_provider_signed_jwks_uri_set
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_provider_signed_jwks_uri_set(cmd_parms *cmd, void *ptr,
      const char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_endpoint_auth_set
      Src: /src/mod_auth_openidc/src/cfg/provider.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pool
    - cfg
    - provider
    - arg
    argTypes:
    - apr_pool_t*
    - oidc_cfg_t*
    - oidc_provider_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 696
    functionName: oidc_cfg_provider_token_endpoint_auth_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 7
    functionsReached:
    - oidc_cfg_endpoint_auth_set
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_provider_token_endpoint_auth_set(apr_pool_t *pool,
      const oidc_cfg_t *cfg,\n\t\t\t\t\t\t      oidc_provider_t *provider, const char
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/provider.c:699,1
    - Dst: oidc_cfg_provider_token_endpoint_auth_set
      Src: /src/mod_auth_openidc/src/cfg/provider.c:700,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/provider.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 702
    functionName: oidc_cmd_provider_token_endpoint_auth_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_provider_token_endpoint_auth_set
    - OIDC_CONFIG_DIR_RV
    - ap_get_module_config
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_provider_token_endpoint_auth_set(cmd_parms *cmd, void
      *ptr, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: oidc_cfg_provider_token_endpoint_auth_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_token_endpoint_auth_get(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 710
    functionName: oidc_cfg_provider_token_endpoint_auth_alg_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_token_endpoint_auth_alg_get(const oidc_provider_t
      *provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_is_valid_int
      Src: /src/mod_auth_openidc/src/cfg/provider.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pool
    - provider
    - arg
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 724
    functionName: oidc_cfg_provider_userinfo_refresh_interval_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_is_valid_int
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_userinfo_refresh_interval_set(apr_pool_t *pool,
      oidc_provider_t *provider, int arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/provider.c:728,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/src/cfg/provider.c:730,1
    - Dst: oidc_cfg_provider_userinfo_refresh_interval_set
      Src: /src/mod_auth_openidc/src/cfg/provider.c:732,1
    - Dst: oidc_cfg_parse_action_on_error_refresh_as
      Src: /src/mod_auth_openidc/src/cfg/provider.c:734,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/provider.c:736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - cmd
    - ptr
    - arg1
    - arg2
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 737
    functionName: oidc_cmd_provider_userinfo_refresh_interval_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 2
    functionsReached:
    - ap_get_module_config
    - oidc_cfg_provider_userinfo_refresh_interval_set
    - OIDC_CONFIG_DIR_RV
    - oidc_cfg_parse_int
    - oidc_cfg_parse_action_on_error_refresh_as
    linkageType: ''
    returnType: char
    signature: "char *oidc_cmd_provider_userinfo_refresh_interval_set(cmd_parms *cmd,
      void *ptr, const char *arg1,\n\t\t\t\t\t\t\t    const char *arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: oidc_cfg_provider_userinfo_refresh_interval_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int oidc_cfg_provider_userinfo_refresh_interval_get(const oidc_provider_t
      *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/provider.c:755,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/provider.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - arg
    - profile
    argTypes:
    - apr_pool_t*
    - char*
    - oidc_profile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 756
    functionName: oidc_cfg_provider_parse_profile
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_option
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_provider_parse_profile(apr_pool_t *pool, const char
      *arg, oidc_profile_t *profile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_PROVIDER_CFG_SIMPLE_MEMBERS
      Src: /src/mod_auth_openidc/src/cfg/provider.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 772
    functionName: oidc_cfg_provider_init
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 0
    functionsReached:
    - OIDC_PROVIDER_CFG_SIMPLE_MEMBERS
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_provider_init(oidc_provider_t *provider)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_PROVIDER_CFG_SIMPLE_MEMBERS
      Src: /src/mod_auth_openidc/src/cfg/provider.c:776,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/provider.c:780,1
    - Dst: _oidc_cfg_merge_pos_int
      Src: /src/mod_auth_openidc/src/cfg/provider.c:782,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/provider.c:783,1
    - Dst: oidc_jwk_list_copy
      Src: /src/mod_auth_openidc/src/cfg/provider.c:785,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/provider.c:785,1
    - Dst: oidc_jwk_list_copy
      Src: /src/mod_auth_openidc/src/cfg/provider.c:787,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/provider.c:787,1
    - Dst: oidc_jwk_list_copy
      Src: /src/mod_auth_openidc/src/cfg/provider.c:788,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/provider.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - pool
    - dst
    - base
    - add
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    - oidc_provider_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 789
    functionName: oidc_cfg_provider_merge
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 2
    functionsReached:
    - oidc_jwk_list_copy
    - _oidc_cfg_merge_ptr
    - OIDC_PROVIDER_CFG_SIMPLE_MEMBERS
    - _oidc_cfg_merge_pos_int
    linkageType: ''
    returnType: void
    signature: "void oidc_cfg_provider_merge(apr_pool_t *pool, oidc_provider_t *dst,
      const oidc_provider_t *base,\n\t\t\t     const oidc_provider_t *add)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cfg/provider.c:792,1
    - Dst: oidc_cfg_provider_init
      Src: /src/mod_auth_openidc/src/cfg/provider.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 795
    functionName: oidc_cfg_provider_create
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 38
    functionsReached:
    - oidc_cfg_provider_init
    - apr_pcalloc
    linkageType: ''
    returnType: oidc_provider_t
    signature: oidc_provider_t *oidc_cfg_provider_create(apr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/src/cfg/provider.c:798,1
    - Dst: oidc_cfg_provider_merge
      Src: /src/mod_auth_openidc/src/cfg/provider.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pool
    - src
    argTypes:
    - apr_pool_t*
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 797
    functionDepth: 3
    functionLinenumber: 797
    functionLinenumberEnd: 801
    functionName: oidc_cfg_provider_copy
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_provider_create
    - oidc_cfg_provider_merge
    linkageType: ''
    returnType: oidc_provider_t
    signature: oidc_provider_t *oidc_cfg_provider_copy(apr_pool_t *pool, const oidc_provider_t
      *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/src/cfg/provider.c:806,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/src/cfg/provider.c:808,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/src/cfg/provider.c:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - provider
    argTypes:
    - oidc_provider_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 812
    functionName: oidc_cfg_provider_destroy
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.c
    functionUses: 1
    functionsReached:
    - oidc_jwk_list_destroy
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_provider_destroy(oidc_provider_t *provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - take
    - ','
    - prefix
    - ','
    - cmd
    - ','
    - member
    - ','
    - scope
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: OIDC_CFG_CMD_DEF
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cmds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_CMD_DEF(take, prefix, cmd, member, scope, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - take
    - ','
    - cmd
    - ','
    - member
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: OIDC_CFG_CMD
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cmds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_CMD(take, cmd, member, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - take
    - ','
    - cmd
    - ','
    - member
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: OIDC_CFG_CMD_PROVIDER
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cmds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_CMD_PROVIDER(take, cmd, member, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - take
    - ','
    - cmd
    - ','
    - member
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: OIDC_CFG_CMD_OAUTH
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cmds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_CMD_OAUTH(take, cmd, member, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - take
    - ','
    - cmd
    - ','
    - member
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: OIDC_CFG_CMD_DIR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cmds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_CMD_DIR(take, cmd, member, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: OIDC_CMD_PROVIDER_MEMBER_FUNC_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CMD_PROVIDER_MEMBER_FUNC_DECL(member, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - itype
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: OIDC_CFG_PROVIDER_MEMBER_FUNC_SET_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_PROVIDER_MEMBER_FUNC_SET_DECL(member, itype, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - rtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: OIDC_CFG_PROVIDER_MEMBER_FUNC_GET_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_PROVIDER_MEMBER_FUNC_GET_DECL(member, rtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: OIDC_CFG_PROVIDER_MEMBER_FUNCS_STR_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_PROVIDER_MEMBER_FUNCS_STR_DECL(member, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - rtype
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: OIDC_CFG_PROVIDER_MEMBER_FUNCS_TYPE_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_PROVIDER_MEMBER_FUNCS_TYPE_DECL(member, rtype, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: OIDC_CFG_PROVIDER_MEMBER_FUNCS_INT_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_PROVIDER_MEMBER_FUNCS_INT_DECL(member, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: OIDC_CFG_PROVIDER_MEMBER_FUNCS_KEYS_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_PROVIDER_MEMBER_FUNCS_KEYS_DECL(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - rtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: OIDC_CFG_PROVIDER_MEMBER_FUNCS_INT_INT_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_PROVIDER_MEMBER_FUNCS_INT_INT_DECL(member, rtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: OIDC_CFG_PROVIDER_MEMBER_FUNCS_STR_LIST_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_PROVIDER_MEMBER_FUNCS_STR_LIST_DECL(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - add
    - base
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: _oidc_cfg_merge_ptr
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *_oidc_cfg_merge_ptr(const void *add, const void *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - add
    - base
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: _oidc_cfg_merge_pos_int
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _oidc_cfg_merge_pos_int(int add, int base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - add
    - base
    argTypes:
    - apr_interval_time_t
    - apr_interval_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: _oidc_cfg_merge_timeout
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_interval_time_t
    signature: apr_interval_time_t _oidc_cfg_merge_timeout(apr_interval_time_t add,
      apr_interval_time_t base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - PTR
    - ','
    - INT
    - ','
    - TIMEOUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: OIDC_CACHE_CFG_MEMCACHE_MEMBERS
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_CFG_MEMCACHE_MEMBERS(PTR, INT, TIMEOUT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - PTR
    - ','
    - INT
    - ','
    - TIMEOUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: OIDC_CACHE_CFG_REDIS_MEMBERS
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_CFG_REDIS_MEMBERS(PTR, INT, TIMEOUT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - PTR
    - ','
    - INT
    - ','
    - TIMEOUT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: OIDC_CACHE_CFG_SIMPLE_MEMBERS
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_CFG_SIMPLE_MEMBERS(PTR, INT, TIMEOUT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: OIDC_CACHE_M_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_M_DECL(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: OIDC_CACHE_M_DECL_TIMEOUT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_M_DECL_TIMEOUT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PTR
    - ','
    - INT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: OIDC_SVR_CFG_SIMPLE_MEMBERS
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_SVR_CFG_SIMPLE_MEMBERS(PTR, INT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: OIDC_SVR_M_DECL_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_SVR_M_DECL_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: OIDC_SVR_M_DECL_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_SVR_M_DECL_INT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cmd
    - ','
    - rv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: OIDC_CONFIG_DIR_RV
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CONFIG_DIR_RV(cmd, rv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: OIDC_CFG_MEMBER_FUNC_GET
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNC_GET(member, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - valid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: OIDC_CFG_MEMBER_FUNC_SET
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNC_SET(member, valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - valid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: OIDC_CFG_MEMBER_FUNCS_TYPE
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_TYPE(member, type, valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: OIDC_CFG_MEMBER_FUNC_TYPE_GET
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNC_TYPE_GET(member, type, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - parse
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 272
    functionName: OIDC_CFG_MEMBER_FUNCS_INT_EXT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_INT_EXT(member, parse, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - member
    - ','
    - min
    - ','
    - max
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: OIDC_CFG_MEMBER_FUNCS_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_INT(member, min, max, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: OIDC_CFG_MEMBER_FUNCS_BOOL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_BOOL(member, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - valid
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: OIDC_CFG_MEMBER_FUNCS_STR_DEF
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_STR_DEF(member, valid, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: OIDC_CFG_MEMBER_FUNCS_URL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_URL(member)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:65,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:68,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pool
    - options
    - n
    argTypes:
    - apr_pool_t*
    - oidc_cfg_option_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: oidc_cfg_parse_options_flatten
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 1
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_options_flatten(apr_pool_t *pool, const oidc_cfg_option_t
      options[], int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cfg/parse.c:81,1
    - Dst: oidc_cfg_parse_options_flatten
      Src: /src/mod_auth_openidc/src/cfg/parse.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pool
    - options
    argTypes:
    - apr_pool_t*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: oidc_cfg_parse_string_options_flatten
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - apr_pcalloc
    - oidc_cfg_parse_options_flatten
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_string_options_flatten(apr_pool_t *pool, const
      char *options[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:95,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:100,1
    - Dst: oidc_cfg_parse_string_options_flatten
      Src: /src/mod_auth_openidc/src/cfg/parse.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - pool
    - arg
    - options
    argTypes:
    - apr_pool_t*
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: oidc_cfg_parse_is_valid_option
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_parse_string_options_flatten
    - apr_psprintf
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_is_valid_option(apr_pool_t *pool, const char *arg,
      const char *options[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstrcmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:112,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:118,1
    - Dst: oidc_cfg_parse_options_flatten
      Src: /src/mod_auth_openidc/src/cfg/parse.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - pool
    - options
    - n
    - arg
    - v
    argTypes:
    - apr_pool_t*
    - oidc_cfg_option_t[]
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: oidc_cfg_parse_option_impl
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - fstrcmp
    - apr_psprintf
    - oidc_cfg_parse_options_flatten
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_option_impl(apr_pool_t *pool, const oidc_cfg_option_t
      options[], int n, const char *arg,\n\t\t\t\t\tint *v, int (*fstrcmp)(const char
      *, const char *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option_impl
      Src: /src/mod_auth_openidc/src/cfg/parse.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pool
    - options
    - n
    - arg
    - v
    argTypes:
    - apr_pool_t*
    - oidc_cfg_option_t[]
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: oidc_cfg_parse_option
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 11
    functionsReached:
    - oidc_cfg_parse_option_impl
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_option(apr_pool_t *pool, const oidc_cfg_option_t
      options[], int n, const char *arg, int *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option_impl
      Src: /src/mod_auth_openidc/src/cfg/parse.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pool
    - options
    - n
    - arg
    - v
    argTypes:
    - apr_pool_t*
    - oidc_cfg_option_t[]
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: oidc_cfg_parse_option_ignore_case
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_option_impl
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_option_ignore_case(apr_pool_t *pool, const oidc_cfg_option_t
      options[], int n, const char *arg,\n\t\t\t\t\tint *v)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:142,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pool
    - value
    - min_value
    - max_value
    argTypes:
    - apr_pool_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: oidc_cfg_parse_is_valid_int
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 3
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_is_valid_int(apr_pool_t *pool, int value, int
      min_value, int max_value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:156,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:156,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:157,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:157,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:161,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:161,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:162,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:162,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:166,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - pool
    - arg
    - bool_value
    argTypes:
    - apr_pool_t*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: oidc_cfg_parse_boolean
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 2
    functionsReached:
    - apr_psprintf
    - _oidc_strnatcasecmp
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_boolean(apr_pool_t *pool, const char *arg, int
      *bool_value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:174,1
    - Dst: _oidc_str_to_int_checked
      Src: /src/mod_auth_openidc/src/cfg/parse.c:177,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - pool
    - arg
    - int_value
    argTypes:
    - apr_pool_t*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: oidc_cfg_parse_int
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 4
    functionsReached:
    - _oidc_str_to_int_checked
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_int(apr_pool_t *pool, const char *arg, int *int_value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/src/cfg/parse.c:189,1
    - Dst: oidc_cfg_parse_is_valid_int
      Src: /src/mod_auth_openidc/src/cfg/parse.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - pool
    - arg
    - int_value
    - min_value
    - max_value
    argTypes:
    - apr_pool_t*
    - char*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: oidc_cfg_parse_int_min_max
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_parse_int
    - oidc_cfg_parse_is_valid_int
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_int_min_max(apr_pool_t *pool, const char *arg,
      int *int_value, int min_value,\n\t\t\t\t       int max_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/src/cfg/parse.c:208,1
    - Dst: oidc_cfg_parse_is_valid_int
      Src: /src/mod_auth_openidc/src/cfg/parse.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - pool
    - arg
    - int_value
    - min_value
    - max_value
    argTypes:
    - apr_pool_t*
    - char*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: oidc_cfg_parse_int_min_max_or_zero
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_int
    - oidc_cfg_parse_is_valid_int
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_int_min_max_or_zero(apr_pool_t *pool, const char
      *arg, int *int_value, int min_value,\n\t\t\t\t\t       int max_value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AP_MODULE_MAGIC_AT_LEAST
      Src: /src/mod_auth_openidc/src/cfg/parse.c:226,1
    - Dst: AP_MODULE_MAGIC_AT_LEAST
      Src: /src/mod_auth_openidc/src/cfg/parse.c:233,1
    - Dst: ap_timeout_parameter_parse
      Src: /src/mod_auth_openidc/src/cfg/parse.c:234,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:235,1
    - Dst: apr_strtoi64
      Src: /src/mod_auth_openidc/src/cfg/parse.c:238,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:240,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/cfg/parse.c:242,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:246,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - pool
    - arg
    - timeout_value
    - min_value
    - max_value
    argTypes:
    - apr_pool_t*
    - char*
    - apr_interval_time_t*
    - apr_interval_time_t
    - apr_interval_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 259
    functionName: oidc_cfg_parse_timeout_min_max
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - AP_MODULE_MAGIC_AT_LEAST
    - apr_strtoi64
    - apr_psprintf
    - ap_timeout_parameter_parse
    - apr_time_from_sec
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_timeout_min_max(apr_pool_t *pool, const char
      *arg, apr_interval_time_t *timeout_value,\n\t\t\t\t\t   apr_interval_time_t
      min_value, apr_interval_time_t max_value)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:270,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/cfg/parse.c:272,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:273,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:276,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:278,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:279,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:280,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:283,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - pool
    - arg
    - scheme1
    - scheme2
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 293
    functionName: oidc_cfg_parse_is_valid_url_scheme
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - _oidc_strnatcasecmp
    - apr_uri_parse
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_is_valid_url_scheme(apr_pool_t *pool, const char
      *arg, const char *scheme1,\n\t\t\t\t\t\t      const char *scheme2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_is_valid_url_scheme
      Src: /src/mod_auth_openidc/src/cfg/parse.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - arg
    - scheme
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: oidc_cfg_parse_is_valid_url
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 3
    functionsReached:
    - oidc_cfg_parse_is_valid_url_scheme
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_is_valid_url(apr_pool_t *pool, const char *arg,
      const char *scheme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_is_valid_url_scheme
      Src: /src/mod_auth_openidc/src/cfg/parse.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - arg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: oidc_cfg_parse_is_valid_http_url
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 4
    functionsReached:
    - oidc_cfg_parse_is_valid_url_scheme
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_is_valid_http_url(apr_pool_t *pool, const char
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:317,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cfg/parse.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pool
    - action
    - type
    - name
    - rc
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - char*
    - apr_status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: oidc_cfg_parse_io_error
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    - apr_strerror
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_io_error(apr_pool_t *pool, const char *action,
      const char *type, const char *name,\n\t\t\t\t\t   apr_status_t rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:328,1
    - Dst: apr_dir_open
      Src: /src/mod_auth_openidc/src/cfg/parse.c:329,1
    - Dst: oidc_cfg_parse_io_error
      Src: /src/mod_auth_openidc/src/cfg/parse.c:330,1
    - Dst: apr_dir_close
      Src: /src/mod_auth_openidc/src/cfg/parse.c:331,1
    - Dst: oidc_cfg_parse_io_error
      Src: /src/mod_auth_openidc/src/cfg/parse.c:332,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pool
    - arg
    - value
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 335
    functionName: oidc_cfg_parse_dirname
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_cfg_parse_io_error
    - apr_dir_close
    - apr_psprintf
    - apr_dir_open
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_dirname(apr_pool_t *pool, const char *arg, char
      **value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:344,1
    - Dst: ap_server_root_relative
      Src: /src/mod_auth_openidc/src/cfg/parse.c:345,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/src/cfg/parse.c:346,1
    - Dst: oidc_cfg_parse_io_error
      Src: /src/mod_auth_openidc/src/cfg/parse.c:347,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/cfg/parse.c:348,1
    - Dst: oidc_cfg_parse_io_error
      Src: /src/mod_auth_openidc/src/cfg/parse.c:349,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pool
    - arg
    - value
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 352
    functionName: oidc_cfg_parse_filename
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - apr_file_open
    - apr_pstrdup
    - oidc_cfg_parse_io_error
    - apr_file_close
    - ap_server_root_relative
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_filename(apr_pool_t *pool, const char *arg, char
      **value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/cfg/parse.c:366,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:367,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:369,1
    - Dst: oidc_cfg_parse_is_valid_http_url
      Src: /src/mod_auth_openidc/src/cfg/parse.c:372,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - pool
    - arg
    - value
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 377
    functionName: oidc_cfg_parse_relative_or_absolute_url
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    - apr_pstrdup
    - apr_uri_parse
    - oidc_cfg_parse_is_valid_http_url
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_relative_or_absolute_url(apr_pool_t *pool, const
      char *arg, char **value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_flow_is_supported
      Src: /src/mod_auth_openidc/src/cfg/parse.c:383,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:384,1
    - Dst: apr_array_pstrcat
      Src: /src/mod_auth_openidc/src/cfg/parse.c:385,1
    - Dst: oidc_proto_supported_flows
      Src: /src/mod_auth_openidc/src/cfg/parse.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - arg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: oidc_cfg_parse_is_valid_response_type
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - oidc_proto_supported_flows
    - oidc_proto_flow_is_supported
    - apr_array_pstrcat
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_is_valid_response_type(apr_pool_t *pool, const
      char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_is_valid_option
      Src: /src/mod_auth_openidc/src/cfg/parse.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - arg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: oidc_cfg_parse_is_valid_response_mode
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_is_valid_option
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_is_valid_response_mode(apr_pool_t *pool, const
      char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_jws_algorithm_is_supported
      Src: /src/mod_auth_openidc/src/cfg/parse.c:403,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:404,1
    - Dst: apr_array_pstrcat
      Src: /src/mod_auth_openidc/src/cfg/parse.c:405,1
    - Dst: oidc_jose_jws_supported_algorithms
      Src: /src/mod_auth_openidc/src/cfg/parse.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - arg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: oidc_cfg_parse_is_valid_signed_response_alg
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - apr_array_pstrcat
    - oidc_jose_jws_algorithm_is_supported
    - apr_psprintf
    - oidc_jose_jws_supported_algorithms
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_is_valid_signed_response_alg(apr_pool_t *pool,
      const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_jwe_algorithm_is_supported
      Src: /src/mod_auth_openidc/src/cfg/parse.c:414,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:415,1
    - Dst: apr_array_pstrcat
      Src: /src/mod_auth_openidc/src/cfg/parse.c:416,1
    - Dst: oidc_jose_jwe_supported_algorithms
      Src: /src/mod_auth_openidc/src/cfg/parse.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - arg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: oidc_cfg_parse_is_valid_encrypted_response_alg
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - apr_array_pstrcat
    - oidc_jose_jwe_supported_algorithms
    - apr_psprintf
    - oidc_jose_jwe_algorithm_is_supported
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_is_valid_encrypted_response_alg(apr_pool_t *pool,
      const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_jwe_encryption_is_supported
      Src: /src/mod_auth_openidc/src/cfg/parse.c:425,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:426,1
    - Dst: apr_array_pstrcat
      Src: /src/mod_auth_openidc/src/cfg/parse.c:427,1
    - Dst: oidc_jose_jwe_supported_encryptions
      Src: /src/mod_auth_openidc/src/cfg/parse.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - arg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 430
    functionName: oidc_cfg_parse_is_valid_encrypted_response_enc
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - oidc_jose_jwe_encryption_is_supported
    - apr_array_pstrcat
    - apr_psprintf
    - oidc_jose_jwe_supported_encryptions
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_is_valid_encrypted_response_enc(apr_pool_t *pool,
      const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_base64url_decode
      Src: /src/mod_auth_openidc/src/cfg/parse.c:436,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - pool
    - input
    - output
    - output_len
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 440
    functionName: oidc_cfg_parse_base64url
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - oidc_util_base64url_decode
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_base64url(apr_pool_t *pool, const char *input,
      char **output, int *output_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/parse.c:446,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:448,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cfg/parse.c:452,1
    - Dst: sscanf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:454,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - pool
    - input
    - output
    - output_len
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 461
    functionName: oidc_cfg_parse_hex
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_psprintf
    - apr_pcalloc
    - sscanf
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_hex(apr_pool_t *pool, const char *input, char
      **output, int *output_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:475,1
    - Dst: oidc_util_base64_decode
      Src: /src/mod_auth_openidc/src/cfg/parse.c:476,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:477,1
    - Dst: oidc_cfg_parse_base64url
      Src: /src/mod_auth_openidc/src/cfg/parse.c:478,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:479,1
    - Dst: oidc_cfg_parse_hex
      Src: /src/mod_auth_openidc/src/cfg/parse.c:480,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:481,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:482,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/parse.c:483,1
    - Dst: oidc_cfg_parse_is_valid_option
      Src: /src/mod_auth_openidc/src/cfg/parse.c:487,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - pool
    - enc
    - input
    - key
    - key_len
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 488
    functionName: oidc_cfg_parse_key_value
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - _oidc_strlen
    - oidc_cfg_parse_is_valid_option
    - oidc_cfg_parse_hex
    - oidc_util_base64_decode
    - oidc_cfg_parse_base64url
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_key_value(apr_pool_t *pool, const char *enc,
      const char *input, char **key,\n\t\t\t\t\t    int *key_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - alg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 512
    functionName: oidc_cfg_parse_key_alg_is_known
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cfg_parse_key_alg_is_known(const char *alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cfg/parse.c:519,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:527,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/cfg/parse.c:528,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:528,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/cfg/parse.c:529,1
    - Dst: oidc_cfg_parse_key_alg_is_known
      Src: /src/mod_auth_openidc/src/cfg/parse.c:530,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/parse.c:535,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - pool
    - tuple
    - alg
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 536
    functionName: oidc_cfg_parse_key_alg_prefix
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - apr_pstrndup
    - _oidc_strlen
    - oidc_cfg_parse_key_alg_is_known
    - _oidc_strstr
    - apr_strtok
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_key_alg_prefix(apr_pool_t *pool, const char *tuple,
      char **alg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:551,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cfg/parse.c:555,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/parse.c:557,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cfg/parse.c:558,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/parse.c:560,1
    - Dst: oidc_cfg_parse_key_alg_prefix
      Src: /src/mod_auth_openidc/src/cfg/parse.c:566,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:568,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cfg/parse.c:569,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cfg/parse.c:571,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:580,1
    - Dst: oidc_cfg_parse_key_value
      Src: /src/mod_auth_openidc/src/cfg/parse.c:581,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/parse.c:586,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/parse.c:591,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 8
    argNames:
    - pool
    - tuple
    - kid
    - key
    - key_len
    - use
    - alg
    - format
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    - char**
    - int*
    - char**
    - char**
    - oidc_key_record_format_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 543
    functionDepth: 4
    functionLinenumber: 543
    functionLinenumberEnd: 595
    functionName: oidc_cfg_parse_key_record
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 2
    functionsReached:
    - _oidc_strlen
    - apr_pstrdup
    - oidc_cfg_parse_key_value
    - oidc_cfg_parse_key_alg_prefix
    - _oidc_strstr
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_key_record(apr_pool_t *pool, const char *tuple,
      char **kid, char **key, int *key_len,\n\t\t\t\t      char **use, char **alg,
      oidc_key_record_format_t format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/parse.c:609,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/parse.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - arg
    - action
    argTypes:
    - apr_pool_t*
    - char*
    - oidc_on_error_action_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 604
    functionDepth: 3
    functionLinenumber: 604
    functionLinenumberEnd: 610
    functionName: oidc_cfg_parse_action_on_error_refresh_as
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 3
    functionsReached:
    - oidc_cfg_parse_option
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_action_on_error_refresh_as(apr_pool_t *pool,
      const char *arg,\n\t\t\t\t\t\t      oidc_on_error_action_t *action)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/parse.c:618,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/cfg/parse.c:620,1
    - Dst: apr_tokenize_to_argv
      Src: /src/mod_auth_openidc/src/cfg/parse.c:621,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/cfg/parse.c:622,1
    - Dst: ap_server_root_relative
      Src: /src/mod_auth_openidc/src/cfg/parse.c:624,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/cfg/parse.c:626,1
    - Dst: ap_get_exec_line
      Src: /src/mod_auth_openidc/src/cfg/parse.c:628,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/cfg/parse.c:630,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/parse.c:632,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:633,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:635,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:637,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - pool
    - arg
    - passphrase
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 640
    functionName: oidc_cfg_parse_passphrase
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - apr_tokenize_to_argv
    - _oidc_strlen
    - apr_pstrdup
    - ap_get_exec_line
    - apr_pstrcat
    - ap_server_root_relative
    - _oidc_strncmp
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_passphrase(apr_pool_t *pool, const char *arg,
      char **passphrase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_parse_pem_private_key
      Src: /src/mod_auth_openidc/src/cfg/parse.c:648,1
    - Dst: oidc_jwk_parse_pem_public_key
      Src: /src/mod_auth_openidc/src/cfg/parse.c:649,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:651,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/cfg/parse.c:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - pool
    - is_private
    - kid
    - fname
    - jwk
    argTypes:
    - apr_pool_t*
    - apr_byte_t
    - char*
    - char*
    - oidc_jwk_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 654
    functionName: oidc_cfg_parse_pem_key
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_parse_pem_public_key
    - oidc_jwk_parse_pem_private_key
    - apr_psprintf
    - oidc_jose_e2s
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_pem_key(apr_pool_t *pool, apr_byte_t is_private,
      const char *kid, const char *fname,\n\t\t\t\t\t  oidc_jwk_t **jwk)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/src/cfg/parse.c:672,1
    - Dst: oidc_cfg_parse_filename
      Src: /src/mod_auth_openidc/src/cfg/parse.c:676,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/cfg/parse.c:681,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/cfg/parse.c:682,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/cfg/parse.c:683,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/cfg/parse.c:684,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/cfg/parse.c:686,1
    - Dst: oidc_cfg_parse_pem_key
      Src: /src/mod_auth_openidc/src/cfg/parse.c:693,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:697,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/cfg/parse.c:698,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/cfg/parse.c:703,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/cfg/parse.c:706,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:709,1
    - Dst: oidc_cfg_parse_pem_key
      Src: /src/mod_auth_openidc/src/cfg/parse.c:711,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:716,1
    - Dst: oidc_alg2kty
      Src: /src/mod_auth_openidc/src/cfg/parse.c:718,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/parse.c:719,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/cfg/parse.c:721,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:724,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/cfg/parse.c:726,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - pool
    - arg
    - keys
    - is_private
    argTypes:
    - apr_pool_t*
    - char*
    - apr_array_header_t**
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 660
    functionDepth: 5
    functionLinenumber: 660
    functionLinenumberEnd: 730
    functionName: oidc_cfg_parse_key_files
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - APR_ARRAY_IDX
    - oidc_cfg_parse_key_record
    - oidc_cfg_parse_pem_key
    - oidc_cfg_parse_filename
    - apr_psprintf
    - apr_array_make
    - APR_ARRAY_PUSH
    - oidc_alg2kty
    - oidc_jwk_destroy
    - apr_strtok
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_key_files(apr_pool_t *pool, const char *arg,
      apr_array_header_t **keys,\n\t\t\t\t\t    apr_byte_t is_private)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_key_files
      Src: /src/mod_auth_openidc/src/cfg/parse.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - arg
    - keys
    argTypes:
    - apr_pool_t*
    - char*
    - apr_array_header_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 735
    functionDepth: 6
    functionLinenumber: 735
    functionLinenumberEnd: 737
    functionName: oidc_cfg_parse_public_key_files
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_parse_key_files
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_public_key_files(apr_pool_t *pool, const char
      *arg, apr_array_header_t **keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_key_files
      Src: /src/mod_auth_openidc/src/cfg/parse.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - arg
    - keys
    argTypes:
    - apr_pool_t*
    - char*
    - apr_array_header_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 742
    functionDepth: 6
    functionLinenumber: 742
    functionLinenumberEnd: 744
    functionName: oidc_cfg_parse_private_key_files
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_parse_key_files
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_parse_private_key_files(apr_pool_t *pool, const char
      *arg, apr_array_header_t **keys)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - pool
    - v1
    - v2
    - v3
    - remote_user_claim
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - char*
    - oidc_remote_user_claim_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 757
    functionName: oidc_parse_remote_user_claim
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *oidc_parse_remote_user_claim(apr_pool_t *pool, const char *v1,
      const char *v2, const char *v3,\n\t\t\t\t\t oidc_remote_user_claim_t *remote_user_claim)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/src/cfg/parse.c:769,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/src/cfg/parse.c:774,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/parse.c:779,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cfg/parse.c:780,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/src/cfg/parse.c:784,1
    - Dst: oidc_cfg_parse_int
      Src: /src/mod_auth_openidc/src/cfg/parse.c:788,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - pool
    - arg1
    - arg2
    - arg3
    - http_timeout
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - char*
    - oidc_http_timeout_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 762
    functionDepth: 2
    functionLinenumber: 762
    functionLinenumberEnd: 793
    functionName: oidc_cfg_parse_http_timeout
    functionSourceFile: /src/mod_auth_openidc/src/cfg/parse.c
    functionUses: 1
    functionsReached:
    - _oidc_strstr
    - oidc_cfg_parse_int
    - apr_pstrdup
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_parse_http_timeout(apr_pool_t *pool, const char *arg1,
      const char *arg2, const char *arg3,\n\t\t\t\t\toidc_http_timeout_t *http_timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PTR
    - ','
    - INT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: OIDC_OAUTH_CFG_SIMPLE_MEMBERS
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_CFG_SIMPLE_MEMBERS(PTR, INT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: OIDC_OAUTH_M_DECL_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_M_DECL_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: OIDC_OAUTH_M_DECL_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_M_DECL_INT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: OIDC_OAUTH_M_CREATE_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_M_CREATE_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: OIDC_OAUTH_M_CREATE_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_M_CREATE_INT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: OIDC_OAUTH_M_MERGE_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_M_MERGE_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: OIDC_OAUTH_M_MERGE_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_M_MERGE_INT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: OIDC_OAUTH_MEMBER_FUNC_GET
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNC_GET(member, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - valid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: OIDC_OAUTH_MEMBER_FUNCS_TYPE
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNCS_TYPE(member, type, valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - member
    - ','
    - parse
    - ','
    - type
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 133
    functionName: OIDC_OAUTH_MEMBER_FUNCS_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNCS_INT(member, parse, type, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: OIDC_OAUTH_MEMBER_FUNCS_BOOL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNCS_BOOL(member, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: OIDC_OAUTH_MEMBER_FUNCS_KEYS
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNCS_KEYS(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: OIDC_OAUTH_MEMBER_FUNCS_STR_LIST
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNCS_STR_LIST(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: OIDC_OAUTH_MEMBER_FUNCS_STR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNCS_STR(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: OIDC_OAUTH_MEMBER_FUNCS_URL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNCS_URL(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: OIDC_OAUTH_MEMBER_FUNC_STR_GET_DEF
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNC_STR_GET_DEF(member, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: OIDC_OAUTH_MEMBER_FUNCS_FILE
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNCS_FILE(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: OIDC_OAUTH_MEMBER_FUNCS_PASSPHRASE
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNCS_PASSPHRASE(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - valid
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 219
    functionName: OIDC_OAUTH_MEMBER_FUNCS_STR_VALID
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_OAUTH_MEMBER_FUNCS_STR_VALID(member, valid, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_endpoint_auth_set
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - cfg
    - arg
    argTypes:
    - apr_pool_t*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: oidc_cfg_oauth_introspection_endpoint_auth_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_endpoint_auth_set
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_oauth_introspection_endpoint_auth_set(apr_pool_t *pool,
      oidc_cfg_t *cfg, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:232,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_auth_set
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:233,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: oidc_cmd_oauth_introspection_endpoint_auth_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 2
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - ap_get_module_config
    - oidc_cfg_oauth_introspection_endpoint_auth_set
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_oauth_introspection_endpoint_auth_set(cmd_parms *cmd,
      void *ptr, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: oidc_cfg_oauth_introspection_endpoint_auth_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_oauth_introspection_endpoint_auth_get(const oidc_cfg_t
      *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: oidc_cfg_oauth_introspection_endpoint_auth_alg_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_oauth_introspection_endpoint_auth_alg_get(const oidc_cfg_t
      *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: oidc_cfg_oauth_remote_user_claim_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: oidc_remote_user_claim_t
    signature: oidc_remote_user_claim_t *oidc_cfg_oauth_remote_user_claim_get(const
      oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: oidc_cfg_oauth_remote_user_claim_name_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_oauth_remote_user_claim_name_get(const oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:258,1
    - Dst: oidc_parse_remote_user_claim
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:259,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cmd
    - ptr
    - v1
    - v2
    - v3
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: oidc_cmd_oauth_remote_user_claim_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 1
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - ap_get_module_config
    - oidc_parse_remote_user_claim
    linkageType: ''
    returnType: char
    signature: "char *oidc_cmd_oauth_remote_user_claim_set(cmd_parms *cmd, void *ptr,
      const char *v1, const char *v2,\n\t\t\t\t\t\t const char *v3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:271,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - arg
    - v
    argTypes:
    - apr_pool_t*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: oidc_parse_introspection_endpoint_method
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_option
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: char *oidc_parse_introspection_endpoint_method(apr_pool_t *pool, const
      char *arg, int *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:284,1
    - Dst: ap_getword_conf
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - struct_ptr
    - args
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 288
    functionName: oidc_cmd_oauth_introspection_client_auth_bearer_token_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 2
    functionsReached:
    - ap_getword_conf
    - ap_get_module_config
    linkageType: ''
    returnType: char
    signature: "char *oidc_cmd_oauth_introspection_client_auth_bearer_token_set(cmd_parms
      *cmd, void *struct_ptr,\n\t\t\t\t\t\t\t\t      const char *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:301,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:311,1
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:314,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:314,1
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:318,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:319,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 5
    argNames:
    - cmd
    - dummy
    - claim_name
    - claim_format
    - claim_required
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 323
    functionName: oidc_cmd_oauth_token_expiry_claim_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 3
    functionsReached:
    - apr_pstrdup
    - ap_get_module_config
    - OIDC_CFG_OPTIONS_SIZE
    - OIDC_CONFIG_DIR_RV
    - oidc_cfg_parse_option
    linkageType: ''
    returnType: char
    signature: "char *oidc_cmd_oauth_token_expiry_claim_set(cmd_parms *cmd, void *dummy,
      const char *claim_name,\n\t\t\t\t\t\t  const char *claim_format, const char
      *claim_required)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_key_record
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:338,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:342,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:344,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:345,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:349,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:351,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - cmd
    - arg
    - keys
    argTypes:
    - cmd_parms*
    - char*
    - apr_hash_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 329
    functionDepth: 5
    functionLinenumber: 329
    functionLinenumberEnd: 355
    functionName: oidc_cmd_oauth_shared_keys_add
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - apr_hash_set
    - apr_hash_make
    - oidc_cfg_parse_key_record
    - apr_psprintf
    - oidc_jose_e2s
    - oidc_jwk_create_symmetric_key
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_oauth_shared_keys_add(cmd_parms *cmd, const char *arg,
      apr_hash_t **keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:361,1
    - Dst: oidc_cmd_oauth_shared_keys_add
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - struct_ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 6
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: oidc_cmd_oauth_verify_shared_keys_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 3
    functionsReached:
    - oidc_cmd_oauth_shared_keys_add
    - ap_get_module_config
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_oauth_verify_shared_keys_set(cmd_parms *cmd, void *struct_ptr,
      const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:369,1
    - Dst: oidc_cmd_oauth_shared_keys_add
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - struct_ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 6
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: oidc_cmd_oauth_decrypt_shared_keys_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 2
    functionsReached:
    - oidc_cmd_oauth_shared_keys_add
    - ap_get_module_config
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_oauth_decrypt_shared_keys_set(cmd_parms *cmd, void *struct_ptr,
      const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:379,1
    - Dst: OIDC_OAUTH_CFG_SIMPLE_MEMBERS
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 389
    functionName: oidc_cfg_oauth_create
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached:
    - OIDC_OAUTH_CFG_SIMPLE_MEMBERS
    - apr_pcalloc
    linkageType: ''
    returnType: oidc_oauth_t
    signature: oidc_oauth_t *oidc_cfg_oauth_create(apr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pmemdup
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - src
    argTypes:
    - apr_pool_t*
    - oidc_oauth_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: oidc_cfg_oauth_shallow_copy
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached:
    - apr_pmemdup
    linkageType: ''
    returnType: oidc_oauth_t
    signature: oidc_oauth_t *oidc_cfg_oauth_shallow_copy(apr_pool_t *pool, const oidc_oauth_t
      *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_OAUTH_CFG_SIMPLE_MEMBERS
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:397,1
    - Dst: oidc_jwk_list_copy
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:405,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - pool
    - dst
    - base
    - add
    argTypes:
    - apr_pool_t*
    - oidc_oauth_t*
    - oidc_oauth_t*
    - oidc_oauth_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 422
    functionName: oidc_cfg_oauth_merge
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_list_copy
    - _oidc_cfg_merge_ptr
    - OIDC_OAUTH_CFG_SIMPLE_MEMBERS
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_oauth_merge(apr_pool_t *pool, oidc_oauth_t *dst, const
      oidc_oauth_t *base, const oidc_oauth_t *add)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:427,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:429,1
    - Dst: oidc_jwk_list_destroy_hash
      Src: /src/mod_auth_openidc/src/cfg/oauth.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - o
    argTypes:
    - oidc_oauth_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 433
    functionName: oidc_cfg_oauth_destroy
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_list_destroy
    - oidc_jwk_list_destroy_hash
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_oauth_destroy(oidc_oauth_t *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CMD
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: OIDC_CACHE_CMDS_MEMCACHE
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_CMDS_MEMCACHE(CMD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CMD
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: OIDC_CACHE_CMDS_REDIS
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_CMDS_REDIS(CMD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: OIDC_CMD_DIR_MEMBER_FUNC_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CMD_DIR_MEMBER_FUNC_DECL(member, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: OIDC_CFG_DIR_MEMBER_FUNC_GET_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_DIR_MEMBER_FUNC_GET_DECL(member, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: OIDC_CFG_DIR_MEMBER_FUNCS
    functionSourceFile: /src/mod_auth_openidc/src/cfg/dir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_DIR_MEMBER_FUNCS(member, type, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:63,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pool
    - list
    - arg
    argTypes:
    - apr_pool_t*
    - apr_array_header_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: oidc_cfg_string_list_add
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 4
    functionsReached:
    - APR_ARRAY_PUSH
    - apr_array_make
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_string_list_add(apr_pool_t *pool, apr_array_header_t
      **list, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: OIDC_CFG_MEMBER_FUNCS_HTTP_TIMEOUT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_HTTP_TIMEOUT(member, def_val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:108,1
    - Dst: oidc_cfg_parse_passphrase
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:112,1
    - Dst: oidc_cfg_parse_passphrase
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - cmd
    - struct_ptr
    - arg1
    - arg2
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: oidc_cmd_crypto_passphrase_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_parse_passphrase
    - ap_get_module_config
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_crypto_passphrase_set(cmd_parms *cmd, void *struct_ptr,
      const char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: oidc_cfg_crypto_passphrase_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: oidc_crypto_passphrase_t
    signature: oidc_crypto_passphrase_t *oidc_cfg_crypto_passphrase_get(const oidc_cfg_t
      *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: oidc_cfg_crypto_passphrase_secret1_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_crypto_passphrase_secret1_get(const oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cfg
    - secret
    argTypes:
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: oidc_cfg_crypto_passphrase_secret1_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_crypto_passphrase_secret1_set(oidc_cfg_t *cfg, const
      char *secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: oidc_cfg_crypto_passphrase_secret2_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_crypto_passphrase_secret2_get(const oidc_cfg_t *cfg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:144,1
    - Dst: oidc_util_key_derive_passphrase_key
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:145,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:151,1
    - Dst: oidc_util_key_derive_passphrase_key
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - cp
    argTypes:
    - oidc_crypto_passphrase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 159
    functionName: oidc_crypto_passphrase_derive_keys
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 6
    functionsReached:
    - _oidc_strlen
    - oidc_util_key_derive_passphrase_key
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_crypto_passphrase_derive_keys(oidc_crypto_passphrase_t
      *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_crypto_passphrase_derive_keys
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: oidc_cfg_crypto_passphrase_derive_keys
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - oidc_crypto_passphrase_derive_keys
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cfg_crypto_passphrase_derive_keys(oidc_cfg_t *cfg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_crypto_passphrase_derive_keys
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:178,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:180,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:181,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:183,1
    - Dst: oidc_util_key_derive_passphrase_key
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:185,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:188,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:188,1
    - Dst: apr_pmemdup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:189,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:194,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:195,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:197,1
    - Dst: oidc_util_key_derive_passphrase_key
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:199,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:202,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:202,1
    - Dst: apr_pmemdup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:203,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - pool
    - kdf_cache
    - cp
    argTypes:
    - apr_pool_t*
    - apr_hash_t*
    - oidc_crypto_passphrase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 209
    functionName: oidc_crypto_passphrase_derive_keys_cached
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - _oidc_strlen
    - apr_hash_set
    - apr_pstrdup
    - _oidc_memcpy
    - oidc_util_key_derive_passphrase_key
    - oidc_crypto_passphrase_derive_keys
    - apr_pmemdup
    - apr_hash_get
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_crypto_passphrase_derive_keys_cached(apr_pool_t *pool,
      apr_hash_t *kdf_cache,\n\t\t\t\t\t\t     oidc_crypto_passphrase_t *cp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_crypto_passphrase_derive_keys_cached
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - kdf_cache
    - cfg
    argTypes:
    - apr_pool_t*
    - apr_hash_t*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: oidc_cfg_crypto_passphrase_derive_keys_cached
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - oidc_crypto_passphrase_derive_keys_cached
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cfg_crypto_passphrase_derive_keys_cached(apr_pool_t
      *pool, apr_hash_t *kdf_cache, oidc_cfg_t *cfg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:221,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:224,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:226,1
    - Dst: oidc_cfg_parse_is_valid_option
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:228,1
    - Dst: oidc_http_proxy_auth_options
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:228,1
    - Dst: oidc_http_proxy_s2auth
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:230,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - cmd
    - ptr
    - arg1
    - arg2
    - arg3
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 233
    functionName: oidc_cmd_outgoing_proxy_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - apr_pstrdup
    - ap_get_module_config
    - oidc_cfg_parse_is_valid_option
    - OIDC_CONFIG_DIR_RV
    - oidc_http_proxy_auth_options
    - oidc_http_proxy_s2auth
    linkageType: ''
    returnType: char
    signature: "char *oidc_cmd_outgoing_proxy_set(cmd_parms *cmd, void *ptr, const
      char *arg1, const char *arg2,\n\t\t\t\t\tconst char *arg3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: oidc_cfg_outgoing_proxy_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: oidc_http_outgoing_proxy_t
    signature: oidc_http_outgoing_proxy_t *oidc_cfg_outgoing_proxy_get(const oidc_cfg_t
      *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:240,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:245,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 2
    argNames:
    - pool
    - arg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: oidc_cfg_valid_cookie_domain
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_valid_cookie_domain(apr_pool_t *pool, const char *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:260,1
    - Dst: oidc_cfg_parse_is_valid_option
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:272,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:274,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:276,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:277,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:284,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:286,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:294,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:299,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 308
    functionName: oidc_cmd_session_type_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - apr_pstrdup
    - ap_get_module_config
    - oidc_cfg_parse_is_valid_option
    - OIDC_CONFIG_DIR_RV
    - _oidc_strstr
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_session_type_set(cmd_parms *cmd, void *ptr, const char
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_is_valid_option
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - pool
    - arg
    - has_private_key
    - allow_mtls
    argTypes:
    - apr_pool_t*
    - char*
    - apr_byte_t
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 337
    functionName: oidc_valid_endpoint_auth_method_impl
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_is_valid_option
    linkageType: ''
    returnType: char
    signature: "char *oidc_valid_endpoint_auth_method_impl(apr_pool_t *pool, const
      char *arg, apr_byte_t has_private_key,\n\t\t\t\t\t\t\tapr_byte_t allow_mtls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_parse_is_valid_option
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - arg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: oidc_valid_private_key_jwt_alg
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_parse_is_valid_option
    linkageType: ''
    returnType: char
    signature: char *oidc_valid_private_key_jwt_alg(apr_pool_t *pool, const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:352,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:353,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:356,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pool
    - arg1
    - method
    - suffix
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 359
    functionName: oidc_cfg_endpoint_auth_parse
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - _oidc_strstr
    - apr_pstrdup
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_endpoint_auth_parse(apr_pool_t *pool, const char *arg1,
      char **method, char **suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_endpoint_auth_parse
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:365,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:366,1
    - Dst: oidc_valid_private_key_jwt_alg
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:367,1
    - Dst: oidc_valid_endpoint_auth_method_impl
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pool
    - arg1
    - allow_mtls
    argTypes:
    - apr_pool_t*
    - char*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 361
    functionDepth: 4
    functionLinenumber: 361
    functionLinenumberEnd: 372
    functionName: oidc_cfg_valid_endpoint_auth_method_alg
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_endpoint_auth_parse
    - oidc_valid_private_key_jwt_alg
    - oidc_valid_endpoint_auth_method_impl
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_valid_endpoint_auth_method_alg(apr_pool_t *pool, const
      char *arg1, apr_byte_t allow_mtls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_valid_endpoint_auth_method_alg
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - arg1
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 376
    functionName: oidc_cfg_valid_endpoint_auth_method_with_private_key
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_valid_endpoint_auth_method_alg
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_valid_endpoint_auth_method_with_private_key(apr_pool_t
      *pool, const char *arg1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_valid_endpoint_auth_method_impl
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - arg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 380
    functionName: oidc_cfg_valid_endpoint_auth_method_no_private_key
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - oidc_valid_endpoint_auth_method_impl
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_valid_endpoint_auth_method_no_private_key(apr_pool_t
      *pool, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_valid_endpoint_auth_method_alg
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - arg1
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 5
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: oidc_cfg_valid_endpoint_auth_method_no_mtls_with_private_key
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_valid_endpoint_auth_method_alg
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_valid_endpoint_auth_method_no_mtls_with_private_key(apr_pool_t
      *pool, const char *arg1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_valid_endpoint_auth_method_impl
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - arg
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 386
    functionDepth: 4
    functionLinenumber: 386
    functionLinenumberEnd: 388
    functionName: oidc_cfg_valid_endpoint_auth_method_no_mtls_no_private_key
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - oidc_valid_endpoint_auth_method_impl
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_valid_endpoint_auth_method_no_mtls_no_private_key(apr_pool_t
      *pool, const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_get_valid_endpoint_auth_function
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:392,1
    - Dst: oidc_cfg_endpoint_auth_parse
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - pool
    - cfg
    - arg1
    - auth
    - alg
    argTypes:
    - apr_pool_t*
    - oidc_cfg_t*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 396
    functionName: oidc_cfg_endpoint_auth_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_endpoint_auth_parse
    - oidc_cfg_get_valid_endpoint_auth_function
    linkageType: ''
    returnType: char
    signature: "char *oidc_cfg_endpoint_auth_set(apr_pool_t *pool, const oidc_cfg_t
      *cfg, const char *arg1, char **auth,\n\t\t\t\t       char **alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:402,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: oidc_cfg_endpoint_auth_is_mtls
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 3
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cfg_endpoint_auth_is_mtls(const char *method)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cfg
    - allow_mtls
    argTypes:
    - oidc_cfg_t*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 413
    functionName: oidc_cfg_get_valid_endpoint_auth_function
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: oidc_valid_function_t
    signature: oidc_valid_function_t oidc_cfg_get_valid_endpoint_auth_function(const
      oidc_cfg_t *cfg, apr_byte_t allow_mtls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:423,1
    - Dst: oidc_cfg_parse_public_key_files
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:424,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 7
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: oidc_cmd_public_keys_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - ap_get_module_config
    - oidc_cfg_parse_public_key_files
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_public_keys_set(cmd_parms *cmd, void *ptr, const char
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:434,1
    - Dst: oidc_cfg_parse_private_key_files
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:435,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 7
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: oidc_cmd_private_keys_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 23
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - ap_get_module_config
    - oidc_cfg_parse_private_key_files
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_private_keys_set(cmd_parms *cmd, void *ptr, const char
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:442,1
    - Dst: oidc_parse_remote_user_claim
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:443,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cmd
    - ptr
    - v1
    - v2
    - v3
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: oidc_cmd_remote_user_claim_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - ap_get_module_config
    - oidc_parse_remote_user_claim
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_remote_user_claim_set(cmd_parms *cmd, void *ptr, const
      char *v1, const char *v2, const char *v3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: oidc_cfg_remote_user_claim_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: oidc_remote_user_claim_t
    signature: oidc_remote_user_claim_t *oidc_cfg_remote_user_claim_get(const oidc_cfg_t
      *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: oidc_cfg_remote_user_claim_name_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_remote_user_claim_name_get(const oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:461,1
    - Dst: oidc_util_apr_expr_parse
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:462,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: oidc_cmd_filter_claims_expr_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached:
    - oidc_util_apr_expr_parse
    - ap_get_module_config
    - OIDC_CONFIG_DIR_RV
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_filter_claims_expr_set(cmd_parms *cmd, void *m, const
      char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:474,1
    - Dst: oidc_cfg_parse_is_valid_option
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:480,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:482,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:484,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 487
    functionName: oidc_cmd_info_hook_data_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 4
    functionsReached:
    - ap_get_module_config
    - apr_hash_set
    - apr_hash_make
    - oidc_cfg_parse_is_valid_option
    - OIDC_CONFIG_DIR_RV
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_info_hook_data_set(cmd_parms *cmd, void *m, const char
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:492,1
    - Dst: oidc_metrics_is_valid_classname
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:495,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:497,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:498,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:500,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 504
    functionName: oidc_cmd_metrics_hook_data_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 4
    functionsReached:
    - oidc_metrics_is_valid_classname
    - ap_get_module_config
    - apr_hash_set
    - apr_hash_make
    - OIDC_CONFIG_DIR_RV
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_metrics_hook_data_set(cmd_parms *cmd, void *m, const
      char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:513,1
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:518,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:518,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - struct_ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 520
    functionName: oidc_cmd_trace_parent_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_parse_option
    - ap_get_module_config
    - OIDC_CONFIG_DIR_RV
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_trace_parent_set(cmd_parms *cmd, void *struct_ptr, const
      char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:529,1
    - Dst: ap_getword_conf
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - struct_ptr
    - args
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 536
    functionName: oidc_cmd_claim_prefix_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 3
    functionsReached:
    - ap_getword_conf
    - ap_get_module_config
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_claim_prefix_set(cmd_parms *cmd, void *struct_ptr, const
      char *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 542
    functionName: oidc_cfg_claim_prefix_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_cfg_claim_prefix_get(const oidc_cfg_t *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:549,1
    - Dst: oidc_cfg_parse_int_min_max
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:551,1
    - Dst: oidc_cfg_parse_boolean
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:554,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cmd
    - struct_ptr
    - arg1
    - arg2
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 556
    functionName: oidc_cmd_max_number_of_state_cookies_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 3
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - oidc_cfg_parse_boolean
    - ap_get_module_config
    - oidc_cfg_parse_int_min_max
    linkageType: ''
    returnType: char
    signature: "char *oidc_cmd_max_number_of_state_cookies_set(cmd_parms *cmd, void
      *struct_ptr, const char *arg1,\n\t\t\t\t\t\t     const char *arg2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:565,1
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:572,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:572,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 580
    functionName: oidc_cmd_x_forwarded_headers_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_parse_option
    - ap_get_module_config
    - OIDC_CONFIG_DIR_RV
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_x_forwarded_headers_set(cmd_parms *cmd, void *m, const
      char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_spaced_string_contains
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:590,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:591,1
    - Dst: hdr_func
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:592,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:594,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:597,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - r
    - x_forwarded_headers
    - hdr_type
    - hdr_str
    argTypes:
    - request_rec*
    - oidc_hdr_x_forwarded_t
    - oidc_hdr_x_forwarded_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 600
    functionName: oidc_check_x_forwarded_hdr
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - hdr_func
    - oidc_util_spaced_string_contains
    - apr_table_get
    linkageType: ''
    returnType: void
    signature: "void oidc_check_x_forwarded_hdr(request_rec *r, const oidc_hdr_x_forwarded_t
      x_forwarded_headers,\n\t\t\t\t       const oidc_hdr_x_forwarded_t hdr_type,
      const char *hdr_str,\n\t\t\t\t       const char *(hdr_func)(const request_rec
      *r))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_check_x_forwarded_hdr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:603,1
    - Dst: oidc_check_x_forwarded_hdr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:605,1
    - Dst: oidc_check_x_forwarded_hdr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:607,1
    - Dst: oidc_check_x_forwarded_hdr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - x_forwarded_headers
    argTypes:
    - request_rec*
    - oidc_hdr_x_forwarded_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 611
    functionName: oidc_cfg_x_forwarded_headers_check
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - oidc_check_x_forwarded_hdr
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_x_forwarded_headers_check(request_rec *r, oidc_hdr_x_forwarded_t
      x_forwarded_headers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:622,1
    - Dst: oidc_cfg_parse_option
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:630,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:630,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - m
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 632
    functionName: oidc_cmd_state_input_headers_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 3
    functionsReached:
    - oidc_cfg_parse_option
    - ap_get_module_config
    - OIDC_CONFIG_DIR_RV
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_state_input_headers_set(cmd_parms *cmd, void *m, const
      char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:638,1
    - Dst: oidc_cfg_parse_filename
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:641,1
    - Dst: oidc_cfg_parse_filename
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:643,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - cmd
    - m
    - arg1
    - arg2
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 645
    functionName: oidc_cmd_post_preserve_templates_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - oidc_cfg_parse_filename
    - ap_get_module_config
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_post_preserve_templates_set(cmd_parms *cmd, void *m,
      const char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:651,1
    - Dst: oidc_cfg_parse_filename
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:652,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: oidc_cmd_ca_bundle_path_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - oidc_cfg_parse_filename
    - ap_get_module_config
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_ca_bundle_path_set(cmd_parms *cmd, void *ptr, const
      char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:659,1
    - Dst: oidc_cfg_parse_dirname
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:660,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 662
    functionName: oidc_cmd_metadata_dir_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 8
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - ap_get_module_config
    - oidc_cfg_parse_dirname
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_metadata_dir_set(cmd_parms *cmd, void *ptr, const char
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:681,1
    - Dst: oidc_cfg_parse_option_ignore_case
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:689,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:689,1
    - Dst: oidc_cfg_parse_option_ignore_case
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:696,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:696,1
    - Dst: oidc_cfg_parse_option_ignore_case
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:705,1
    - Dst: OIDC_CFG_OPTIONS_SIZE
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:705,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - cmd
    - m
    - arg1
    - arg2
    - arg3
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 709
    functionName: oidc_cmd_cookie_same_site_session_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_parse_option_ignore_case
    - ap_get_module_config
    - OIDC_CONFIG_DIR_RV
    - OIDC_CFG_OPTIONS_SIZE
    linkageType: ''
    returnType: char
    signature: "char *oidc_cmd_cookie_same_site_session_set(cmd_parms *cmd, void *m,
      const char *arg1, const char *arg2,\n\t\t\t\t\t\t  const char *arg3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 772
    functionName: OIDC_CFG_MEMBER_FUNCS_HASHTABLE
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_HASHTABLE(member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 787
    functionName: OIDC_CFG_MEMBER_FUNCS_ABS_OR_REL_URI
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_ABS_OR_REL_URI(member)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_t*::cache::impl::destroy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:803,1
    - Dst: oidc_cfg_provider_destroy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:805,1
    - Dst: oidc_cfg_oauth_destroy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:807,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:809,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - pool
    - s
    - cfg
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 814
    functionName: oidc_cfg_server_destroy
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_t*::cache::impl::destroy
    - oidc_jwk_list_destroy
    - oidc_cfg_provider_destroy
    - oidc_cfg_oauth_destroy
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cfg_server_destroy(apr_pool_t *pool, server_rec *s,
      oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_server_destroy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 816
    functionDepth: 3
    functionLinenumber: 816
    functionLinenumberEnd: 820
    functionName: oidc_cfg_server_cleanup
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_server_destroy
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_cfg_server_cleanup(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:823,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:824,1
    - Dst: apr_pool_pre_cleanup_register
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 839
    functionName: oidc_cfg_server_alloc
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - apr_pcalloc
    - apr_pool_pre_cleanup_register
    linkageType: ''
    returnType: oidc_cfg_t
    signature: oidc_cfg_t *oidc_cfg_server_alloc(apr_pool_t *pool, server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 845
    functionName: OIDC_SVR_M_CREATE_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_SVR_M_CREATE_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 846
    functionName: OIDC_SVR_M_CREATE_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_SVR_M_CREATE_INT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 847
    functionName: OIDC_SVR_M_MERGE_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_SVR_M_MERGE_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 848
    functionName: OIDC_SVR_M_MERGE_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_SVR_M_MERGE_INT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_server_alloc
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:850,1
    - Dst: OIDC_SVR_CFG_SIMPLE_MEMBERS
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:857,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:861,1
    - Dst: oidc_cfg_oauth_create
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:862,1
    - Dst: oidc_cfg_cache_create_server_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 2
    argNames:
    - pool
    - svr
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 898
    functionName: oidc_cfg_server_create
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 10
    functionsReached:
    - oidc_cfg_cache_create_server_config
    - oidc_cfg_provider_create
    - oidc_cfg_server_alloc
    - OIDC_SVR_CFG_SIMPLE_MEMBERS
    - oidc_cfg_oauth_create
    linkageType: ''
    returnType: void
    signature: void *oidc_cfg_server_create(apr_pool_t *pool, server_rec *svr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - c
    - add
    - base
    argTypes:
    - oidc_http_timeout_t*
    - oidc_http_timeout_t*
    - oidc_http_timeout_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 910
    functionName: _oidc_cfg_merge_http_timeout
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _oidc_cfg_merge_http_timeout(oidc_http_timeout_t *c, const oidc_http_timeout_t
      *add,\n\t\t\t\t\t const oidc_http_timeout_t *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - c
    - add
    - base
    argTypes:
    - oidc_remote_user_claim_t*
    - oidc_remote_user_claim_t*
    - oidc_remote_user_claim_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 921
    functionName: _oidc_cfg_merge_remote_user_claim
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _oidc_cfg_merge_remote_user_claim(oidc_remote_user_claim_t *c,
      const oidc_remote_user_claim_t *add,\n\t\t\t\t\t      const oidc_remote_user_claim_t
      *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - c
    - add
    - base
    argTypes:
    - oidc_http_outgoing_proxy_t*
    - oidc_http_outgoing_proxy_t*
    - oidc_http_outgoing_proxy_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 932
    functionName: _oidc_cfg_merge_outgoing_proxy
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _oidc_cfg_merge_outgoing_proxy(oidc_http_outgoing_proxy_t *c,
      const oidc_http_outgoing_proxy_t *add,\n\t\t\t\t\t   const oidc_http_outgoing_proxy_t
      *base)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:945,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - c
    - add
    - base
    argTypes:
    - oidc_crypto_passphrase_t*
    - oidc_crypto_passphrase_t*
    - oidc_crypto_passphrase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 949
    functionName: _oidc_cfg_merge_crypto_passphrase
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 0
    functionsReached:
    - _oidc_memcpy
    linkageType: ''
    returnType: void
    signature: "void _oidc_cfg_merge_crypto_passphrase(oidc_crypto_passphrase_t *c,
      const oidc_crypto_passphrase_t *add,\n\t\t\t\t\t      const oidc_crypto_passphrase_t
      *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_server_alloc
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:958,1
    - Dst: oidc_cfg_provider_create
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:960,1
    - Dst: oidc_cfg_oauth_create
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:961,1
    - Dst: oidc_cfg_provider_merge
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:968,1
    - Dst: oidc_cfg_oauth_merge
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:969,1
    - Dst: oidc_cfg_cache_merge_server_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:970,1
    - Dst: OIDC_SVR_CFG_SIMPLE_MEMBERS
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:972,1
    - Dst: oidc_jwk_list_copy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:973,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:973,1
    - Dst: oidc_jwk_list_copy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:974,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:974,1
    - Dst: _oidc_cfg_merge_http_timeout
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:976,1
    - Dst: _oidc_cfg_merge_http_timeout
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:977,1
    - Dst: _oidc_cfg_merge_remote_user_claim
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:979,1
    - Dst: _oidc_cfg_merge_outgoing_proxy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:981,1
    - Dst: _oidc_cfg_merge_crypto_passphrase
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:982,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:984,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:985,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:987,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:988,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:989,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:991,1
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - pool
    - BASE
    - ADD
    argTypes:
    - apr_pool_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 954
    functionDepth: 3
    functionLinenumber: 954
    functionLinenumberEnd: 996
    functionName: oidc_cfg_server_merge
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 7
    functionsReached:
    - oidc_cfg_provider_merge
    - oidc_cfg_provider_create
    - oidc_cfg_server_alloc
    - oidc_jwk_list_copy
    - oidc_cfg_oauth_merge
    - _oidc_cfg_merge_http_timeout
    - oidc_cfg_oauth_create
    - OIDC_SVR_CFG_SIMPLE_MEMBERS
    - _oidc_cfg_merge_ptr
    - _oidc_cfg_merge_outgoing_proxy
    - _oidc_cfg_merge_crypto_passphrase
    - _oidc_cfg_merge_remote_user_claim
    - oidc_cfg_cache_merge_server_config
    linkageType: ''
    returnType: void
    signature: void *oidc_cfg_server_merge(apr_pool_t *pool, void *BASE, void *ADD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pmemdup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1003,1
    - Dst: oidc_cfg_oauth_shallow_copy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pool
    - c
    argTypes:
    - apr_pool_t*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1006
    functionName: oidc_cfg_request_view
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_oauth_shallow_copy
    - apr_pmemdup
    linkageType: ''
    returnType: oidc_cfg_t
    signature: oidc_cfg_t *oidc_cfg_request_view(apr_pool_t *pool, const oidc_cfg_t
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_crypto_strings
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1013,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1014,1
    - Dst: OpenSSL_add_all_digests
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1015,1
    - Dst: OPENSSL_init_crypto
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1019
    functionName: oidc_pre_config_init
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    - OpenSSL_add_all_algorithms
    - OpenSSL_add_all_digests
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: void
    signature: void oidc_pre_config_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1023
    functionName: oidc_cfg_provider_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 231
    functionsReached: []
    linkageType: ''
    returnType: oidc_provider_t
    signature: oidc_provider_t *oidc_cfg_provider_get(oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1027
    functionName: oidc_cfg_merged_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int oidc_cfg_merged_get(const oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1031
    functionName: oidc_cfg_redirect_uri_inherited_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int oidc_cfg_redirect_uri_inherited_get(const oidc_cfg_t *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1037
    functionName: oidc_cfg_refresh_mutex_get
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: oidc_cache_mutex_t
    signature: oidc_cache_mutex_t *oidc_cfg_refresh_mutex_get(const oidc_cfg_t *cfg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_t*::cache::impl::post_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1042,1
    - Dst: oidc_cache_mutex_create
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1046,1
    - Dst: oidc_cache_mutex_post_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1047,1
    - Dst: oidc_metrics_post_config
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1050,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - pool
    - cfg
    - s
    argTypes:
    - apr_pool_t*
    - oidc_cfg_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1039
    functionDepth: 4
    functionLinenumber: 1039
    functionLinenumberEnd: 1053
    functionName: oidc_cfg_post_config
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached:
    - oidc_cfg_t*::cache::impl::post_config
    - oidc_metrics_post_config
    - oidc_cache_mutex_post_config
    - oidc_cache_mutex_create
    linkageType: ''
    returnType: int
    signature: int oidc_cfg_post_config(apr_pool_t *pool, oidc_cfg_t *cfg, server_rec
      *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_t*::cache::impl::child_init
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1056,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1057,1
    - Dst: oidc_cache_mutex_child_init
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1058,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1059,1
    - Dst: oidc_metrics_child_init
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1060,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1061,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - pool
    - cfg
    - s
    argTypes:
    - apr_pool_t*
    - oidc_cfg_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1062
    functionName: oidc_cfg_child_init
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached:
    - oidc_metrics_child_init
    - oidc_serror
    - oidc_cache_mutex_child_init
    - oidc_cfg_t*::cache::impl::child_init
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_child_init(apr_pool_t *pool, const oidc_cfg_t *cfg, server_rec
      *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_mutex_destroy
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1066,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1067,1
    - Dst: oidc_metrics_cleanup
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1073,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cfg/cfg.c:1074,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - cfg
    - s
    argTypes:
    - oidc_cfg_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1078
    functionName: oidc_cfg_process_cleanup
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.c
    functionUses: 2
    functionsReached:
    - oidc_serror
    - oidc_cache_mutex_destroy
    - oidc_metrics_cleanup
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_process_cleanup(oidc_cfg_t *cfg, server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: OIDC_CFG_OAUTH_MEMBER_FUNC_GET_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_OAUTH_MEMBER_FUNC_GET_DECL(member, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: OIDC_CMD_OAUTH_MEMBER_FUNC_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CMD_OAUTH_MEMBER_FUNC_DECL(member, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: OIDC_CFG_OAUTH_MEMBER_FUNCS_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_OAUTH_MEMBER_FUNCS_DECL(member, type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: OIDC_CFG_OAUTH_MEMBER_FUNC_SET_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/oauth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_OAUTH_MEMBER_FUNC_SET_DECL(member)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/check.c:72,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cfg/check.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: oidc_check_config_vhost
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_check_config_vhost(const server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: oidc_check_serror
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_check_serror(s, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: oidc_check_swarn
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_check_swarn(s, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_check_serror
      Src: /src/mod_auth_openidc/src/cfg/check.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - config_str
    argTypes:
    - server_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: oidc_check_config_error
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached:
    - oidc_check_serror
    linkageType: ''
    returnType: int
    signature: int oidc_check_config_error(server_rec *s, const char *config_str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:91,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:92,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:92,1
    - Dst: oidc_check_serror
      Src: /src/mod_auth_openidc/src/cfg/check.c:93,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:100,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:100,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:101,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:101,1
    - Dst: oidc_check_config_error
      Src: /src/mod_auth_openidc/src/cfg/check.c:102,1
    - Dst: oidc_cfg_provider_authorization_endpoint_url_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:103,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:103,1
    - Dst: oidc_check_config_error
      Src: /src/mod_auth_openidc/src/cfg/check.c:104,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/cfg/check.c:107,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:107,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:107,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/check.c:108,1
    - Dst: oidc_check_swarn
      Src: /src/mod_auth_openidc/src/cfg/check.c:109,1
    - Dst: oidc_cfg_provider_client_id_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:116,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:116,1
    - Dst: oidc_check_config_error
      Src: /src/mod_auth_openidc/src/cfg/check.c:117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - pool
    - s
    - c
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 120
    functionName: oidc_check_config_openid_openidc_provider
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_provider_authorization_endpoint_url_get
    - oidc_cfg_provider_metadata_url_get
    - oidc_cfg_provider_get
    - oidc_check_serror
    - oidc_cfg_provider_issuer_get
    - oidc_check_config_error
    - oidc_cfg_metadata_dir_get
    - _oidc_strnatcasecmp
    - oidc_cfg_provider_client_id_get
    - oidc_check_swarn
    - apr_uri_parse
    linkageType: ''
    returnType: int
    signature: int oidc_check_config_openid_openidc_provider(apr_pool_t *pool, server_rec
      *s, oidc_cfg_t *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:127,1
    - Dst: oidc_check_swarn
      Src: /src/mod_auth_openidc/src/cfg/check.c:131,1
    - Dst: oidc_util_cookie_domain_valid
      Src: /src/mod_auth_openidc/src/cfg/check.c:136,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:136,1
    - Dst: oidc_check_serror
      Src: /src/mod_auth_openidc/src/cfg/check.c:137,1
    - Dst: oidc_cfg_cookie_domain_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:141,1
    - Dst: oidc_cfg_redirect_uri_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - s
    - c
    - r_uri
    - redirect_uri_is_relative
    argTypes:
    - server_rec*
    - oidc_cfg_t*
    - apr_uri_t*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 146
    functionName: oidc_check_config_openid_openidc_cookie_domain
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_cookie_domain_get
    - oidc_check_serror
    - oidc_util_cookie_domain_valid
    - oidc_cfg_redirect_uri_get
    - oidc_check_swarn
    linkageType: ''
    returnType: int
    signature: "int oidc_check_config_openid_openidc_cookie_domain(server_rec *s,
      const oidc_cfg_t *c, const apr_uri_t *r_uri,\n\t\t\t\t\t\t\t  apr_byte_t redirect_uri_is_relative)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:153,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:154,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:154,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:155,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:155,1
    - Dst: oidc_check_serror
      Src: /src/mod_auth_openidc/src/cfg/check.c:156,1
    - Dst: oidc_cfg_redirect_uri_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:161,1
    - Dst: oidc_check_config_error
      Src: /src/mod_auth_openidc/src/cfg/check.c:162,1
    - Dst: oidc_check_config_openid_openidc_provider
      Src: /src/mod_auth_openidc/src/cfg/check.c:164,1
    - Dst: oidc_cfg_redirect_uri_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:168,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/cfg/check.c:170,1
    - Dst: oidc_cfg_redirect_uri_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:170,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/check.c:172,1
    - Dst: oidc_check_swarn
      Src: /src/mod_auth_openidc/src/cfg/check.c:173,1
    - Dst: oidc_check_config_openid_openidc_cookie_domain
      Src: /src/mod_auth_openidc/src/cfg/check.c:180,1
    - Dst: oidc_proto_profile_dpop_mode_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:184,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:184,1
    - Dst: oidc_util_key_list_first
      Src: /src/mod_auth_openidc/src/cfg/check.c:185,1
    - Dst: oidc_cfg_private_keys_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:185,1
    - Dst: oidc_check_serror
      Src: /src/mod_auth_openidc/src/cfg/check.c:186,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - pool
    - s
    - c
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 192
    functionName: oidc_check_config_openid_openidc
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached:
    - oidc_check_config_openid_openidc_cookie_domain
    - oidc_proto_profile_dpop_mode_get
    - oidc_cfg_provider_metadata_url_get
    - oidc_cfg_provider_get
    - oidc_cfg_private_keys_get
    - oidc_check_serror
    - oidc_cfg_provider_issuer_get
    - oidc_check_config_error
    - oidc_cfg_redirect_uri_get
    - oidc_cfg_metadata_dir_get
    - _oidc_strnatcasecmp
    - oidc_check_swarn
    - oidc_check_config_openid_openidc_provider
    - oidc_util_key_list_first
    - apr_uri_parse
    linkageType: ''
    returnType: int
    signature: int oidc_check_config_openid_openidc(apr_pool_t *pool, server_rec *s,
      oidc_cfg_t *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_check_swarn
      Src: /src/mod_auth_openidc/src/cfg/check.c:201,1
    - Dst: oidc_cfg_oauth_metadata_url_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:205,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/cfg/check.c:206,1
    - Dst: oidc_cfg_oauth_metadata_url_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:206,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/cfg/check.c:207,1
    - Dst: oidc_check_swarn
      Src: /src/mod_auth_openidc/src/cfg/check.c:208,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:216,1
    - Dst: oidc_cfg_oauth_verify_jwks_uri_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:218,1
    - Dst: oidc_cfg_oauth_verify_public_keys_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:219,1
    - Dst: oidc_cfg_oauth_verify_shared_keys_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:220,1
    - Dst: oidc_check_serror
      Src: /src/mod_auth_openidc/src/cfg/check.c:221,1
    - Dst: oidc_cfg_oauth_verify_aud_values_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:227,1
    - Dst: oidc_check_swarn
      Src: /src/mod_auth_openidc/src/cfg/check.c:228,1
    - Dst: oidc_cfg_oauth_verify_jwks_uri_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:234,1
    - Dst: oidc_cfg_oauth_verify_public_keys_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:235,1
    - Dst: oidc_cfg_oauth_verify_shared_keys_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:236,1
    - Dst: oidc_check_serror
      Src: /src/mod_auth_openidc/src/cfg/check.c:237,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - pool
    - s
    - c
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 244
    functionName: oidc_check_config_oauth
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached:
    - oidc_cfg_oauth_verify_aud_values_get
    - oidc_cfg_oauth_verify_public_keys_get
    - oidc_check_serror
    - oidc_cfg_oauth_verify_shared_keys_get
    - oidc_cfg_oauth_metadata_url_get
    - oidc_cfg_oauth_introspection_endpoint_url_get
    - _oidc_strnatcasecmp
    - oidc_check_swarn
    - apr_uri_parse
    - oidc_cfg_oauth_verify_jwks_uri_get
    linkageType: ''
    returnType: int
    signature: int oidc_check_config_oauth(apr_pool_t *pool, server_rec *s, const
      oidc_cfg_t *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:253,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_set
      Src: /src/mod_auth_openidc/src/cfg/check.c:256,1
    - Dst: oidc_util_rand_hex_str
      Src: /src/mod_auth_openidc/src/cfg/check.c:256,1
    - Dst: oidc_cfg_crypto_passphrase_derive_keys_cached
      Src: /src/mod_auth_openidc/src/cfg/check.c:259,1
    - Dst: oidc_check_serror
      Src: /src/mod_auth_openidc/src/cfg/check.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - s
    - cfg
    - auto_generate
    - kdf_cache
    argTypes:
    - server_rec*
    - oidc_cfg_t*
    - apr_byte_t
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: oidc_config_ensure_crypto_passphrase
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached:
    - oidc_check_serror
    - oidc_cfg_crypto_passphrase_derive_keys_cached
    - oidc_cfg_crypto_passphrase_secret1_set
    - oidc_util_rand_hex_str
    - oidc_cfg_crypto_passphrase_secret1_get
    linkageType: ''
    returnType: int
    signature: "int oidc_config_ensure_crypto_passphrase(server_rec *s, oidc_cfg_t
      *cfg, apr_byte_t auto_generate,\n\t\t\t\t\t\tapr_hash_t *kdf_cache)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/check.c:271,1
    - Dst: oidc_sdebug
      Src: /src/mod_auth_openidc/src/cfg/check.c:273,1
    - Dst: oidc_cfg_debug_mask_secrets_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:276,1
    - Dst: oidc_check_swarn
      Src: /src/mod_auth_openidc/src/cfg/check.c:277,1
    - Dst: oidc_config_ensure_crypto_passphrase
      Src: /src/mod_auth_openidc/src/cfg/check.c:284,1
    - Dst: oidc_cfg_metadata_dir_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:287,1
    - Dst: oidc_cfg_provider_issuer_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:288,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:288,1
    - Dst: oidc_cfg_provider_metadata_url_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:289,1
    - Dst: oidc_cfg_provider_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:289,1
    - Dst: oidc_cfg_oauth_metadata_url_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:292,1
    - Dst: oidc_cfg_oauth_client_id_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:292,1
    - Dst: oidc_cfg_oauth_client_secret_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:293,1
    - Dst: oidc_cfg_oauth_introspection_endpoint_url_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:294,1
    - Dst: oidc_cfg_oauth_verify_jwks_uri_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:295,1
    - Dst: oidc_cfg_oauth_verify_public_keys_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:295,1
    - Dst: oidc_cfg_oauth_verify_shared_keys_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:296,1
    - Dst: oidc_cfg_redirect_uri_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:302,1
    - Dst: oidc_cfg_redirect_uri_inherited_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:302,1
    - Dst: oidc_check_config_openid_openidc
      Src: /src/mod_auth_openidc/src/cfg/check.c:305,1
    - Dst: oidc_check_config_oauth
      Src: /src/mod_auth_openidc/src/cfg/check.c:308,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 11
    argCount: 3
    argNames:
    - pool
    - s
    - kdf_cache
    argTypes:
    - apr_pool_t*
    - server_rec*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 270
    functionDepth: 5
    functionLinenumber: 270
    functionLinenumberEnd: 312
    functionName: oidc_config_check_vhost_config
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - oidc_cfg_oauth_client_secret_get
    - oidc_cfg_oauth_verify_jwks_uri_get
    - oidc_check_config_openid_openidc
    - oidc_check_swarn
    - oidc_config_ensure_crypto_passphrase
    - oidc_cfg_provider_get
    - oidc_cfg_oauth_client_id_get
    - oidc_check_config_oauth
    - oidc_cfg_provider_issuer_get
    - oidc_cfg_redirect_uri_get
    - oidc_cfg_metadata_dir_get
    - oidc_cfg_provider_metadata_url_get
    - oidc_cfg_oauth_verify_public_keys_get
    - oidc_cfg_oauth_verify_shared_keys_get
    - oidc_cfg_redirect_uri_inherited_get
    - oidc_cfg_oauth_metadata_url_get
    - oidc_cfg_oauth_introspection_endpoint_url_get
    - oidc_cfg_debug_mask_secrets_get
    - oidc_sdebug
    linkageType: ''
    returnType: int
    signature: int oidc_config_check_vhost_config(apr_pool_t *pool, server_rec *s,
      apr_hash_t *kdf_cache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/cfg/check.c:323,1
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/check.c:325,1
    - Dst: oidc_cfg_merged_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:326,1
    - Dst: oidc_config_check_vhost_config
      Src: /src/mod_auth_openidc/src/cfg/check.c:328,1
    - Dst: oidc_config_ensure_crypto_passphrase
      Src: /src/mod_auth_openidc/src/cfg/check.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 317
    functionDepth: 6
    functionLinenumber: 317
    functionLinenumberEnd: 339
    functionName: oidc_config_check_merged_vhost_configs
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached:
    - oidc_config_check_vhost_config
    - ap_get_module_config
    - oidc_config_ensure_crypto_passphrase
    - apr_hash_make
    - oidc_cfg_merged_get
    linkageType: ''
    returnType: int
    signature: int oidc_config_check_merged_vhost_configs(apr_pool_t *pool, server_rec
      *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/check.c:347,1
    - Dst: oidc_cfg_merged_get
      Src: /src/mod_auth_openidc/src/cfg/check.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 354
    functionName: oidc_config_merged_vhost_configs_exist
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - oidc_cfg_merged_get
    linkageType: ''
    returnType: int
    signature: int oidc_config_merged_vhost_configs_exist(server_rec *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_config_merged_vhost_configs_exist
      Src: /src/mod_auth_openidc/src/cfg/check.c:358,1
    - Dst: oidc_config_check_vhost_config
      Src: /src/mod_auth_openidc/src/cfg/check.c:361,1
    - Dst: oidc_config_check_merged_vhost_configs
      Src: /src/mod_auth_openidc/src/cfg/check.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 7
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: oidc_cfg_check_vhosts
    functionSourceFile: /src/mod_auth_openidc/src/cfg/check.c
    functionUses: 1
    functionsReached:
    - oidc_config_check_merged_vhost_configs
    - oidc_config_merged_vhost_configs_exist
    - oidc_config_check_vhost_config
    linkageType: ''
    returnType: int
    signature: int oidc_cfg_check_vhosts(apr_pool_t *pool, server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - options
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: OIDC_CFG_OPTIONS_SIZE
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_OPTIONS_SIZE(options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: OIDC_CMD_MEMBER_FUNC_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CMD_MEMBER_FUNC_DECL(member, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: OIDC_CFG_MEMBER_FUNC_GET_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNC_GET_DECL(member, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: OIDC_CFG_MEMBER_FUNCS_DECL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_DECL(member, type, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cache.c:52,1
    - Dst: oidc_cfg_parse_is_valid_option
      Src: /src/mod_auth_openidc/src/cfg/cache.c:54,1
    - Dst: oidc_cache_backend_names
      Src: /src/mod_auth_openidc/src/cfg/cache.c:54,1
    - Dst: oidc_cache_backend_get
      Src: /src/mod_auth_openidc/src/cfg/cache.c:56,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cache.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: oidc_cmd_cache_type_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 1
    functionsReached:
    - ap_get_module_config
    - oidc_cfg_parse_is_valid_option
    - OIDC_CONFIG_DIR_RV
    - oidc_cache_backend_names
    - oidc_cache_backend_get
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_cache_type_set(cmd_parms *cmd, void *ptr, const char
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - def_val
    - ','
    - unset_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: OIDC_CFG_MEMBER_FUNC_CACHE_TYPE_GET
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNC_CACHE_TYPE_GET(member, type, def_val, unset_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - valid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: OIDC_CFG_MEMBER_FUNC_CACHE_SET
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNC_CACHE_SET(member, valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - member
    - ','
    - type
    - ','
    - parse
    - ','
    - def_val
    - ','
    - unset_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: OIDC_CFG_MEMBER_FUNCS_CACHE_PARSE
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_CACHE_PARSE(member, type, parse, def_val, unset_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - parse
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: OIDC_CFG_MEMBER_FUNCS_CACHE_INT_EXT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_CACHE_INT_EXT(member, parse, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - member
    - ','
    - min
    - ','
    - max
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: OIDC_CFG_MEMBER_FUNCS_CACHE_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_CACHE_INT(member, min, max, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - member
    - ','
    - min
    - ','
    - max
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: OIDC_CFG_MEMBER_FUNCS_CACHE_TIMEOUT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_CACHE_TIMEOUT(member, min, max, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: OIDC_CFG_MEMBER_FUNCS_CACHE_BOOL
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_CACHE_BOOL(member, def_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - valid
    - ','
    - def_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: OIDC_CFG_MEMBER_FUNCS_CACHE_STR_DEF
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CFG_MEMBER_FUNCS_CACHE_STR_DEF(member, valid, def_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cache.c:138,1
    - Dst: oidc_cfg_parse_int_min_max
      Src: /src/mod_auth_openidc/src/cfg/cache.c:140,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cache.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: oidc_cmd_cache_shm_entry_size_max_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 1
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - ap_get_module_config
    - oidc_cfg_parse_int_min_max
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_cache_shm_entry_size_max_set(cmd_parms *cmd, void *ptr,
      const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cache.c:165,1
    - Dst: oidc_cfg_parse_dirname
      Src: /src/mod_auth_openidc/src/cfg/cache.c:166,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cache.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - ptr
    - arg
    argTypes:
    - cmd_parms*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: oidc_cmd_cache_file_dir_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 1
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - ap_get_module_config
    - oidc_cfg_parse_dirname
    linkageType: ''
    returnType: char
    signature: char *oidc_cmd_cache_file_dir_set(cmd_parms *cmd, void *ptr, const
      char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cfg/cache.c:235,1
    - Dst: oidc_cfg_parse_int_min_max
      Src: /src/mod_auth_openidc/src/cfg/cache.c:238,1
    - Dst: oidc_cfg_parse_int_min_max
      Src: /src/mod_auth_openidc/src/cfg/cache.c:241,1
    - Dst: OIDC_CONFIG_DIR_RV
      Src: /src/mod_auth_openidc/src/cfg/cache.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - cmd
    - struct_ptr
    - arg1
    - arg2
    argTypes:
    - cmd_parms*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 244
    functionName: oidc_cmd_cache_redis_connect_timeout_set
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 1
    functionsReached:
    - OIDC_CONFIG_DIR_RV
    - ap_get_module_config
    - oidc_cfg_parse_int_min_max
    linkageType: ''
    returnType: char
    signature: "char *oidc_cmd_cache_redis_connect_timeout_set(cmd_parms *cmd, void
      *struct_ptr, const char *arg1,\n\t\t\t\t\t\t     const char *arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: OIDC_CACHE_M_CREATE_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_M_CREATE_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: OIDC_CACHE_M_CREATE_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_M_CREATE_INT(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: OIDC_CACHE_M_CREATE_TIMEOUT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_M_CREATE_TIMEOUT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: OIDC_CACHE_M_MERGE_PTR
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_M_MERGE_PTR(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: OIDC_CACHE_M_MERGE_INT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_M_MERGE_INT(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: OIDC_CACHE_M_MERGE_TIMEOUT
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_M_MERGE_TIMEOUT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OIDC_CACHE_CFG_SIMPLE_MEMBERS
      Src: /src/mod_auth_openidc/src/cfg/cache.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: oidc_cfg_cache_create_server_config
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 1
    functionsReached:
    - OIDC_CACHE_CFG_SIMPLE_MEMBERS
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_cache_create_server_config(oidc_cfg_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_cfg_merge_ptr
      Src: /src/mod_auth_openidc/src/cfg/cache.c:274,1
    - Dst: OIDC_CACHE_CFG_SIMPLE_MEMBERS
      Src: /src/mod_auth_openidc/src/cfg/cache.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - c
    - base
    - add
    argTypes:
    - oidc_cfg_t*
    - oidc_cfg_t*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: oidc_cfg_cache_merge_server_config
    functionSourceFile: /src/mod_auth_openidc/src/cfg/cache.c
    functionUses: 1
    functionsReached:
    - _oidc_cfg_merge_ptr
    - OIDC_CACHE_CFG_SIMPLE_MEMBERS
    linkageType: ''
    returnType: void
    signature: void oidc_cfg_cache_merge_server_config(oidc_cfg_t *c, const oidc_cfg_t
      *base, const oidc_cfg_t *add)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: oidc_util_html_escape_char
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_util_html_escape_char(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: escape_char
      Src: /src/mod_auth_openidc/src/util/html.c:80,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/html.c:81,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/util/html.c:85,1
    - Dst: escape_char
      Src: /src/mod_auth_openidc/src/util/html.c:87,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/html.c:94,1
    - Dst: _oidc_strcpy
      Src: /src/mod_auth_openidc/src/util/html.c:96,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - pool
    - s
    - (*escape_char)(char)
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 101
    functionName: oidc_util_html_escape_with
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - escape_char
    - _oidc_strcpy
    - apr_pcalloc
    linkageType: ''
    returnType: char
    signature: char *oidc_util_html_escape_with(apr_pool_t *pool, const char *s, const
      char *(*escape_char)(char))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_html_escape_with
      Src: /src/mod_auth_openidc/src/util/html.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: oidc_util_html_escape
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 8
    functionsReached:
    - oidc_util_html_escape_with
    linkageType: ''
    returnType: char
    signature: char *oidc_util_html_escape(apr_pool_t *pool, const char *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 134
    functionName: oidc_util_html_javascript_escape_char
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *oidc_util_html_javascript_escape_char(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_html_escape_with
      Src: /src/mod_auth_openidc/src/util/html.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: oidc_util_html_javascript_escape
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 6
    functionsReached:
    - oidc_util_html_escape_with
    linkageType: ''
    returnType: char
    signature: char *oidc_util_html_javascript_escape(apr_pool_t *pool, const char
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/html.c:165,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/util/html.c:166,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/html.c:167,1
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/util/html.c:167,1
    - Dst: oidc_util_http_send
      Src: /src/mod_auth_openidc/src/util/html.c:170,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/html.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - r
    - title
    - html_head
    - on_load
    - html_body
    - status_code
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 171
    functionName: oidc_util_html_send
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 4
    functionsReached:
    - _oidc_strlen
    - oidc_util_http_send
    - apr_psprintf
    - oidc_util_html_escape
    linkageType: ''
    returnType: int
    signature: "int oidc_util_html_send(request_rec *r, const char *title, const char
      *html_head, const char *on_load,\n\t\t\tconst char *html_body, int status_code)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/html.c:181,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/html.c:183,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/html.c:184,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/html.c:186,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/html.c:187,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/html.c:189,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/html.c:190,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/html.c:192,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/html.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - r
    - request_state_key
    - title
    - html_head
    - on_load
    - html_body
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 199
    functionName: oidc_util_html_content_prep
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 13
    functionsReached:
    - oidc_request_state_set
    linkageType: ''
    returnType: int
    signature: "int oidc_util_html_content_prep(request_rec *r, const char *request_state_key,
      const char *title, const char *html_head,\n\t\t\t\tconst char *on_load, const
      char *html_body)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/util/html.c:206,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/util/html.c:207,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/util/html.c:208,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/util/html.c:209,1
    - Dst: oidc_util_html_send
      Src: /src/mod_auth_openidc/src/util/html.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: oidc_util_html_content_send
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 3
    functionsReached:
    - oidc_util_html_send
    - oidc_request_state_get
    linkageType: ''
    returnType: int
    signature: int oidc_util_html_content_send(request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_html_escape
      Src: /src/mod_auth_openidc/src/util/html.c:219,1
    - Dst: oidc_util_html_javascript_escape
      Src: /src/mod_auth_openidc/src/util/html.c:221,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/html.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - r
    - arg
    - escape
    argTypes:
    - request_rec*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: oidc_util_template_escape
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - oidc_util_html_javascript_escape
    - oidc_util_html_escape
    linkageType: ''
    returnType: char
    signature: char *oidc_util_template_escape(request_rec *r, const char *arg, int
      escape)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - tpl
    - expected_s_count
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 254
    functionName: oidc_util_template_format_valid
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_template_format_valid(const char *tpl, int expected_s_count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_file_read
      Src: /src/mod_auth_openidc/src/util/html.c:266,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/html.c:267,1
    - Dst: oidc_util_template_format_valid
      Src: /src/mod_auth_openidc/src/util/html.c:271,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/html.c:272,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/html.c:278,1
    - Dst: oidc_util_template_escape
      Src: /src/mod_auth_openidc/src/util/html.c:278,1
    - Dst: oidc_util_template_escape
      Src: /src/mod_auth_openidc/src/util/html.c:279,1
    - Dst: oidc_util_http_content_prep
      Src: /src/mod_auth_openidc/src/util/html.c:280,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/html.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - r
    - filename
    - static_template_content
    - arg1
    - arg1_esc
    - arg2
    - arg2_esc
    argTypes:
    - request_rec*
    - char*
    - char**
    - char*
    - oidc_post_preserve_escape_t
    - char*
    - oidc_post_preserve_escape_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 283
    functionName: oidc_util_html_send_in_template
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 4
    functionsReached:
    - _oidc_strlen
    - oidc_util_file_read
    - oidc_error
    - oidc_util_template_escape
    - apr_psprintf
    - oidc_util_template_format_valid
    - oidc_util_http_content_prep
    linkageType: ''
    returnType: int
    signature: "int oidc_util_html_send_in_template(request_rec *r, const char *filename,
      char **static_template_content,\n\t\t\t\t    const char *arg1, oidc_post_preserve_escape_t
      arg1_esc, const char *arg2,\n\t\t\t\t    oidc_post_preserve_escape_t arg2_esc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/html.c:291,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/util/html.c:292,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/html.c:294,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/util/html.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - r
    - error
    - description
    - status_code
    argTypes:
    - request_rec*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: oidc_util_html_send_error
    functionSourceFile: /src/mod_auth_openidc/src/util/html.c
    functionUses: 14
    functionsReached:
    - apr_table_set
    - oidc_debug
    linkageType: ''
    returnType: int
    signature: int oidc_util_html_send_error(request_rec *r, const char *error, const
      char *description, int status_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/src/util/file.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - pool
    - path
    - follow
    - finfo
    argTypes:
    - apr_pool_t*
    - char*
    - apr_byte_t
    - apr_finfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: oidc_util_file_is_regular
    functionSourceFile: /src/mod_auth_openidc/src/util/file.c
    functionUses: 0
    functionsReached:
    - apr_stat
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_file_is_regular(apr_pool_t *pool, const char *path,
      apr_byte_t follow, apr_finfo_t *finfo)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_file_is_regular
      Src: /src/mod_auth_openidc/src/util/file.c:82,1
    - Dst: apr_cpystrn
      Src: /src/mod_auth_openidc/src/util/file.c:84,1
    - Dst: apr_cpystrn
      Src: /src/mod_auth_openidc/src/util/file.c:87,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/src/util/file.c:92,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/util/file.c:93,1
    - Dst: apr_file_lock
      Src: /src/mod_auth_openidc/src/util/file.c:98,1
    - Dst: apr_file_seek
      Src: /src/mod_auth_openidc/src/util/file.c:102,1
    - Dst: apr_file_info_get
      Src: /src/mod_auth_openidc/src/util/file.c:105,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/util/file.c:106,1
    - Dst: apr_snprintf
      Src: /src/mod_auth_openidc/src/util/file.c:112,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/util/file.c:117,1
    - Dst: apr_file_read_full
      Src: /src/mod_auth_openidc/src/util/file.c:121,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/util/file.c:122,1
    - Dst: apr_snprintf
      Src: /src/mod_auth_openidc/src/util/file.c:131,1
    - Dst: apr_file_unlock
      Src: /src/mod_auth_openidc/src/util/file.c:137,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/util/file.c:138,1
    - Dst: apr_file_unlock
      Src: /src/mod_auth_openidc/src/util/file.c:144,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/util/file.c:145,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 5
    argNames:
    - pool
    - path
    - result
    - s_err
    - s_err_len
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    - char*
    - apr_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 148
    functionName: oidc_util_file_read_core
    functionSourceFile: /src/mod_auth_openidc/src/util/file.c
    functionUses: 0
    functionsReached:
    - apr_file_open
    - apr_file_info_get
    - apr_snprintf
    - apr_strerror
    - apr_file_seek
    - oidc_util_file_is_regular
    - apr_cpystrn
    - apr_file_unlock
    - apr_file_close
    - apr_file_read_full
    - apr_palloc
    - apr_file_lock
    linkageType: ''
    returnType: oidc_util_file_read_rc_t
    signature: "oidc_util_file_read_rc_t oidc_util_file_read_core(apr_pool_t *pool,
      const char *path, char **result, char *s_err,\n\t\t\t\t\t\t\t apr_size_t s_err_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_file_read_core
      Src: /src/mod_auth_openidc/src/util/file.c:155,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/file.c:159,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/util/file.c:162,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/util/file.c:165,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/file.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - r
    - path
    - pool
    - result
    argTypes:
    - request_rec*
    - char*
    - apr_pool_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 171
    functionName: oidc_util_file_read
    functionSourceFile: /src/mod_auth_openidc/src/util/file.c
    functionUses: 6
    functionsReached:
    - oidc_warn
    - oidc_util_file_read_core
    - oidc_debug
    - oidc_error
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_file_read(request_rec *r, const char *path, apr_pool_t
      *pool, char **result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_file_read_core
      Src: /src/mod_auth_openidc/src/util/file.c:179,1
    - Dst: oidc_sdebug
      Src: /src/mod_auth_openidc/src/util/file.c:183,1
    - Dst: oidc_swarn
      Src: /src/mod_auth_openidc/src/util/file.c:186,1
    - Dst: oidc_swarn
      Src: /src/mod_auth_openidc/src/util/file.c:189,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/util/file.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - s
    - path
    - pool
    - result
    argTypes:
    - server_rec*
    - char*
    - apr_pool_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 195
    functionName: oidc_util_file_read_server
    functionSourceFile: /src/mod_auth_openidc/src/util/file.c
    functionUses: 1
    functionsReached:
    - oidc_serror
    - oidc_util_file_read_core
    - oidc_swarn
    - oidc_sdebug
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_file_read_server(server_rec *s, const char *path,
      apr_pool_t *pool, char **result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_rand_str
      Src: /src/mod_auth_openidc/src/util/file.c:209,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/file.c:211,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/src/util/file.c:216,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/file.c:218,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/util/file.c:219,1
    - Dst: apr_file_lock
      Src: /src/mod_auth_openidc/src/util/file.c:224,1
    - Dst: apr_file_seek
      Src: /src/mod_auth_openidc/src/util/file.c:226,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/file.c:229,1
    - Dst: apr_file_write_full
      Src: /src/mod_auth_openidc/src/util/file.c:232,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/file.c:236,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/util/file.c:236,1
    - Dst: apr_file_unlock
      Src: /src/mod_auth_openidc/src/util/file.c:237,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/util/file.c:238,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/src/util/file.c:239,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/file.c:245,1
    - Dst: apr_file_unlock
      Src: /src/mod_auth_openidc/src/util/file.c:249,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/util/file.c:250,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/src/util/file.c:251,1
    - Dst: apr_file_unlock
      Src: /src/mod_auth_openidc/src/util/file.c:256,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/util/file.c:257,1
    - Dst: apr_file_rename
      Src: /src/mod_auth_openidc/src/util/file.c:258,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/file.c:259,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/util/file.c:260,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/src/util/file.c:261,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/file.c:265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 3
    argNames:
    - r
    - path
    - data
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 268
    functionName: oidc_util_file_write
    functionSourceFile: /src/mod_auth_openidc/src/util/file.c
    functionUses: 9
    functionsReached:
    - apr_file_open
    - _oidc_strlen
    - oidc_error
    - apr_strerror
    - oidc_util_rand_str
    - apr_file_seek
    - apr_file_unlock
    - apr_file_remove
    - apr_file_close
    - oidc_debug
    - apr_file_rename
    - apr_psprintf
    - apr_file_write_full
    - apr_file_lock
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_file_write(request_rec *r, const char *path, const
      char *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_pcre_compile
      Src: /src/mod_auth_openidc/src/util/expr.c:61,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/expr.c:64,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/expr.c:68,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/expr.c:69,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/expr.c:70,1
    - Dst: oidc_pcre_subst
      Src: /src/mod_auth_openidc/src/util/expr.c:74,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/expr.c:74,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/expr.c:76,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/expr.c:82,1
    - Dst: oidc_pcre_free
      Src: /src/mod_auth_openidc/src/util/expr.c:88,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - pool
    - input
    - regexp
    - replace
    - output
    - error_str
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 91
    functionName: oidc_util_regexp_substitute
    functionSourceFile: /src/mod_auth_openidc/src/util/expr.c
    functionUses: 2
    functionsReached:
    - _oidc_strlen
    - apr_pstrdup
    - oidc_pcre_free
    - oidc_pcre_compile
    - oidc_pcre_subst
    - apr_psprintf
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_regexp_substitute(apr_pool_t *pool, const char
      *input, const char *regexp, const char *replace,\n\t\t\t\t       char **output,
      char **error_str)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_pcre_compile
      Src: /src/mod_auth_openidc/src/util/expr.c:101,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/expr.c:104,1
    - Dst: oidc_pcre_exec
      Src: /src/mod_auth_openidc/src/util/expr.c:108,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/expr.c:108,1
    - Dst: oidc_pcre_get_substring
      Src: /src/mod_auth_openidc/src/util/expr.c:111,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/expr.c:112,1
    - Dst: oidc_pcre_free
      Src: /src/mod_auth_openidc/src/util/expr.c:121,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 5
    argNames:
    - pool
    - input
    - regexp
    - output
    - error_str
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 124
    functionName: oidc_util_regexp_first_match
    functionSourceFile: /src/mod_auth_openidc/src/util/expr.c
    functionUses: 4
    functionsReached:
    - _oidc_strlen
    - oidc_pcre_exec
    - oidc_pcre_free
    - oidc_pcre_compile
    - apr_psprintf
    - oidc_pcre_get_substring
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_regexp_first_match(apr_pool_t *pool, const char
      *input, const char *regexp, char **output,\n\t\t\t\t\tchar **error_str)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/util/expr.c:134,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/expr.c:135,1
    - Dst: ap_expr_parse_cmd
      Src: /src/mod_auth_openidc/src/util/expr.c:143,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/util/expr.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - cmd
    - str
    - expr
    - result_type
    argTypes:
    - cmd_parms*
    - char*
    - oidc_apr_expr_t**
    - oidc_apr_expr_result_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 149
    functionName: oidc_util_apr_expr_parse
    functionSourceFile: /src/mod_auth_openidc/src/util/expr.c
    functionUses: 7
    functionsReached:
    - ap_expr_parse_cmd
    - apr_pstrdup
    - apr_pstrcat
    - apr_pcalloc
    linkageType: ''
    returnType: char
    signature: "char *oidc_util_apr_expr_parse(cmd_parms *cmd, const char *str, oidc_apr_expr_t
      **expr,\n\t\t\t       oidc_apr_expr_result_t result_type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ap_expr_str_exec
      Src: /src/mod_auth_openidc/src/util/expr.c:160,1
    - Dst: ap_expr_exec
      Src: /src/mod_auth_openidc/src/util/expr.c:162,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/expr.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - r
    - expr
    - result_type
    argTypes:
    - request_rec*
    - oidc_apr_expr_t*
    - oidc_apr_expr_result_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 169
    functionName: oidc_util_apr_expr_exec
    functionSourceFile: /src/mod_auth_openidc/src/util/expr.c
    functionUses: 6
    functionsReached:
    - oidc_error
    - ap_expr_str_exec
    - ap_expr_exec
    linkageType: ''
    returnType: char
    signature: char *oidc_util_apr_expr_exec(request_rec *r, const oidc_apr_expr_t
      *expr, oidc_apr_expr_result_t result_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:66,1
    - Dst: putchar
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:68,1
    - Dst: putchar
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:70,1
    - Dst: putchar
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - str
    - len
    - start
    - end
    argTypes:
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: dumpstr
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - putchar
    linkageType: ''
    returnType: void
    signature: void dumpstr(const char *str, int len, int start, int end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:77,1
    - Dst: printf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:78,1
    - Dst: printf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:80,1
    - Dst: printf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:81,1
    - Dst: dumpstr
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:83,1
    - Dst: printf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - str
    - len
    - rep
    - nmat
    - ovec
    argTypes:
    - char*
    - int
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: dumpmatch
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 0
    functionsReached:
    - printf
    - dumpstr
    linkageType: ''
    returnType: void
    signature: void dumpmatch(const char *str, int len, const char *rep, int nmat,
      const int *ovec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:93,1
    - Dst: strtoul
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:94,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - rep
    - nmat
    - replen
    argTypes:
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 107
    functionName: findreplen
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 0
    functionsReached:
    - fprintf
    - isdigit
    - strtoul
    linkageType: ''
    returnType: int
    signature: int findreplen(const char *rep, int nmat, const int *replen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:115,1
    - Dst: strtoul
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:116,1
    - Dst: strncpy
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:120,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 5
    argNames:
    - out
    - rep
    - nmat
    - replen
    - repstr
    argTypes:
    - char*
    - char*
    - int
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 127
    functionName: doreplace
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 0
    functionsReached:
    - strncpy
    - isdigit
    - strtoul
    linkageType: ''
    returnType: void
    signature: void doreplace(char *out, const char *rep, int nmat, int *replen, const
      char **repstr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:137,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:138,1
    - Dst: printf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:147,1
    - Dst: findreplen
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:152,1
    - Dst: printf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:154,1
    - Dst: pcre_malloc
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:156,1
    - Dst: strncpy
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:160,1
    - Dst: doreplace
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:163,1
    - Dst: _oidc_strcpy
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:166,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - str
    - len
    - rep
    - nmat
    - ovec
    argTypes:
    - char*
    - int
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 169
    functionName: edit
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 0
    functionsReached:
    - _oidc_memset
    - printf
    - findreplen
    - pcre_malloc
    - doreplace
    - _oidc_strcpy
    - strncpy
    linkageType: ''
    returnType: char
    signature: char *edit(const char *str, int len, const char *rep, int nmat, const
      int *ovec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre_exec
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:175,1
    - Dst: dumpmatch
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:177,1
    - Dst: edit
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - ppat
    - extra
    - str
    - len
    - offset
    - options
    - rep
    argTypes:
    - pcre*
    - pcre_extra*
    - char*
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: pcre_subst
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 1
    functionsReached:
    - pcre_exec
    - dumpmatch
    - edit
    linkageType: ''
    returnType: char
    signature: "char *pcre_subst(const pcre *ppat, const pcre_extra *extra, const
      char *str, int len, int offset, int options,\n\t\t const char *rep)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:189,1
    - Dst: pcre2_substitute
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:194,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:200,1
    - Dst: pcre2_substitute
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:201,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:205,1
    - Dst: pcre_subst
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:208,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:209,1
    - Dst: pcre_free
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - pool
    - pcre
    - str
    - len
    - rep
    argTypes:
    - apr_pool_t*
    - struct oidc_pcre*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 213
    functionName: oidc_pcre_subst
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 1
    functionsReached:
    - pcre_free
    - apr_pstrdup
    - apr_pstrndup
    - pcre2_substitute
    - apr_palloc
    - pcre_subst
    linkageType: ''
    returnType: char
    signature: char *oidc_pcre_subst(apr_pool_t *pool, const struct oidc_pcre *pcre,
      const char *str, int len, const char *rep)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_compile
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:232,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:232,1
    - Dst: pcre_compile
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:234,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:239,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - pool
    - regexp
    - error_str
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 247
    functionName: oidc_pcre_compile
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 5
    functionsReached:
    - _oidc_strlen
    - apr_psprintf
    - pcre2_compile
    - apr_pcalloc
    - pcre_compile
    linkageType: ''
    returnType: struct oidc_pcre
    signature: struct oidc_pcre *oidc_pcre_compile(apr_pool_t *pool, const char *regexp,
      char **error_str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_free
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:252,1
    - Dst: pcre2_code_free
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:254,1
    - Dst: pcre_free
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pcre
    argTypes:
    - struct oidc_pcre*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 258
    functionName: oidc_pcre_free
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 5
    functionsReached:
    - pcre_free
    - pcre2_match_data_free
    - pcre2_code_free
    linkageType: ''
    returnType: void
    signature: void oidc_pcre_free(struct oidc_pcre *pcre)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_free
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pcre
    argTypes:
    - struct oidc_pcre*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: oidc_pcre_free_match
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 2
    functionsReached:
    - pcre2_match_data_free
    linkageType: ''
    returnType: void
    signature: void oidc_pcre_free_match(struct oidc_pcre *pcre)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_substring_get_bynumber
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:275,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:278,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:281,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:284,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:287,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:290,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:294,1
    - Dst: pcre2_substring_free
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:295,1
    - Dst: pcre_get_substring
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:300,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:301,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:303,1
    - Dst: pcre_free_substring
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:304,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 6
    argNames:
    - pool
    - pcre
    - input
    - rc
    - sub_str
    - error_str
    argTypes:
    - apr_pool_t*
    - struct oidc_pcre*
    - char*
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 308
    functionName: oidc_pcre_get_substring
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 2
    functionsReached:
    - pcre2_substring_get_bynumber
    - apr_pstrdup
    - apr_pstrndup
    - pcre_get_substring
    - pcre_free_substring
    - apr_psprintf
    - pcre2_substring_free
    linkageType: ''
    returnType: int
    signature: "int oidc_pcre_get_substring(apr_pool_t *pool, const struct oidc_pcre
      *pcre, const char *input, int rc, char **sub_str,\n\t\t\t    char **error_str)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:313,1
    - Dst: pcre2_match
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:314,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:316,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:318,1
    - Dst: pcre_exec
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:321,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:325,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:328,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:331,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:334,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:337,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:340,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:343,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - pool
    - pcre
    - input
    - len
    - error_str
    argTypes:
    - apr_pool_t*
    - struct oidc_pcre*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 350
    functionName: oidc_pcre_exec
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 3
    functionsReached:
    - apr_pstrdup
    - pcre_exec
    - pcre2_match
    - apr_psprintf
    - pcre2_match_data_create_from_pattern
    linkageType: ''
    returnType: int
    signature: int oidc_pcre_exec(apr_pool_t *pool, struct oidc_pcre *pcre, const
      char *input, int len, char **error_str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcre_compile
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:362,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:364,1
    - Dst: exit
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:365,1
    - Dst: pcre_study
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:367,1
    - Dst: fprintf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:369,1
    - Dst: pcre_subst
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:370,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:370,1
    - Dst: printf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:372,1
    - Dst: pcre_free
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:373,1
    - Dst: printf
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:375,1
    - Dst: pcre_free
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:377,1
    - Dst: pcre_free
      Src: /src/mod_auth_openidc/src/util/pcre_subst.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 354
    functionDepth: 4
    functionLinenumber: 354
    functionLinenumberEnd: 380
    functionName: main
    functionSourceFile: /src/mod_auth_openidc/src/util/pcre_subst.c
    functionUses: 14
    functionsReached:
    - pcre_free
    - _oidc_strlen
    - pcre_study
    - printf
    - exit
    - fprintf
    - pcre_compile
    - pcre_subst
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_forwarded_get
      Src: /src/mod_auth_openidc/src/util/url.c:56,1
    - Dst: oidc_http_hdr_in_x_forwarded_proto_get
      Src: /src/mod_auth_openidc/src/util/url.c:58,1
    - Dst: ap_http_method
      Src: /src/mod_auth_openidc/src/util/url.c:63,1
    - Dst: ap_http_scheme
      Src: /src/mod_auth_openidc/src/util/url.c:65,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/util/url.c:69,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/util/url.c:69,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/util/url.c:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - r
    - x_forwarded_headers
    argTypes:
    - request_rec*
    - oidc_hdr_x_forwarded_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 77
    functionName: _oidc_util_url_cur_scheme
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_http_hdr_forwarded_get
    - _oidc_strnatcasecmp
    - oidc_http_hdr_in_x_forwarded_proto_get
    - ap_http_method
    - ap_http_scheme
    linkageType: ''
    returnType: char
    signature: char *_oidc_util_url_cur_scheme(const request_rec *r, oidc_hdr_x_forwarded_t
      x_forwarded_headers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/util/url.c:87,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/util/url.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - host_hdr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 99
    functionName: _oidc_util_url_port_from_host_hdr
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *_oidc_util_url_port_from_host_hdr(const char *host_hdr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_x_forwarded_port_get
      Src: /src/mod_auth_openidc/src/util/url.c:115,1
    - Dst: oidc_http_hdr_forwarded_get
      Src: /src/mod_auth_openidc/src/util/url.c:126,1
    - Dst: oidc_http_hdr_in_x_forwarded_host_get
      Src: /src/mod_auth_openidc/src/util/url.c:128,1
    - Dst: _oidc_util_url_port_from_host_hdr
      Src: /src/mod_auth_openidc/src/util/url.c:131,1
    - Dst: oidc_http_hdr_in_host_get
      Src: /src/mod_auth_openidc/src/util/url.c:137,1
    - Dst: _oidc_util_url_port_from_host_hdr
      Src: /src/mod_auth_openidc/src/util/url.c:139,1
    - Dst: oidc_http_hdr_in_x_forwarded_proto_get
      Src: /src/mod_auth_openidc/src/util/url.c:145,1
    - Dst: oidc_http_hdr_forwarded_get
      Src: /src/mod_auth_openidc/src/util/url.c:151,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/util/url.c:159,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/util/url.c:161,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/url.c:164,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 3
    argNames:
    - r
    - scheme_str
    - x_forwarded_headers
    argTypes:
    - request_rec*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 104
    functionDepth: 5
    functionLinenumber: 104
    functionLinenumberEnd: 166
    functionName: _oidc_util_url_cur_port
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 0
    functionsReached:
    - oidc_http_hdr_in_x_forwarded_host_get
    - oidc_http_hdr_in_x_forwarded_port_get
    - oidc_http_hdr_forwarded_get
    - _oidc_strnatcasecmp
    - oidc_http_hdr_in_host_get
    - _oidc_util_url_port_from_host_hdr
    - apr_psprintf
    - oidc_http_hdr_in_x_forwarded_proto_get
    linkageType: ''
    returnType: char
    signature: char *_oidc_util_url_cur_port(const request_rec *r, const char *scheme_str,
      int x_forwarded_headers)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_forwarded_get
      Src: /src/mod_auth_openidc/src/util/url.c:176,1
    - Dst: oidc_http_hdr_in_x_forwarded_host_get
      Src: /src/mod_auth_openidc/src/util/url.c:178,1
    - Dst: oidc_http_hdr_in_host_get
      Src: /src/mod_auth_openidc/src/util/url.c:181,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/url.c:183,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/util/url.c:186,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/util/url.c:188,1
    - Dst: strchr
      Src: /src/mod_auth_openidc/src/util/url.c:190,1
    - Dst: ap_get_server_name
      Src: /src/mod_auth_openidc/src/util/url.c:198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - r
    - x_forwarded_headers
    argTypes:
    - request_rec*
    - oidc_hdr_x_forwarded_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 202
    functionName: oidc_util_url_cur_host
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 5
    functionsReached:
    - apr_pstrdup
    - oidc_http_hdr_in_x_forwarded_host_get
    - ap_get_server_name
    - oidc_http_hdr_forwarded_get
    - oidc_http_hdr_in_host_get
    - strchr
    linkageType: ''
    returnType: char
    signature: char *oidc_util_url_cur_host(request_rec *r, oidc_hdr_x_forwarded_t
      x_forwarded_headers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_x_forwarded_headers_check
      Src: /src/mod_auth_openidc/src/util/url.c:213,1
    - Dst: _oidc_util_url_cur_scheme
      Src: /src/mod_auth_openidc/src/util/url.c:215,1
    - Dst: oidc_util_url_cur_host
      Src: /src/mod_auth_openidc/src/util/url.c:216,1
    - Dst: _oidc_util_url_cur_port
      Src: /src/mod_auth_openidc/src/util/url.c:217,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/url.c:218,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/util/url.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - r
    - x_forwarded_headers
    argTypes:
    - request_rec*
    - oidc_hdr_x_forwarded_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 207
    functionDepth: 6
    functionLinenumber: 207
    functionLinenumberEnd: 223
    functionName: _oidc_util_url_base_cur
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 0
    functionsReached:
    - oidc_util_url_cur_host
    - _oidc_util_url_cur_scheme
    - apr_pstrcat
    - apr_psprintf
    - _oidc_util_url_cur_port
    - oidc_cfg_x_forwarded_headers_check
    linkageType: ''
    returnType: char
    signature: char *_oidc_util_url_base_cur(request_rec *r, oidc_hdr_x_forwarded_t
      x_forwarded_headers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/util/url.c:237,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/util/url.c:238,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/util/url.c:239,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/util/url.c:242,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/util/url.c:248,1
    - Dst: _oidc_util_url_base_cur
      Src: /src/mod_auth_openidc/src/util/url.c:248,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/url.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - r
    - x_forwarded_headers
    argTypes:
    - request_rec*
    - oidc_hdr_x_forwarded_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 228
    functionDepth: 7
    functionLinenumber: 228
    functionLinenumberEnd: 253
    functionName: oidc_util_url_cur
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 6
    functionsReached:
    - oidc_warn
    - _oidc_util_url_base_cur
    - _oidc_memset
    - oidc_debug
    - apr_pstrcat
    - apr_uri_parse
    linkageType: ''
    returnType: char
    signature: char *oidc_util_url_cur(request_rec *r, oidc_hdr_x_forwarded_t x_forwarded_headers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/util/url.c:261,1
    - Dst: _oidc_util_url_base_cur
      Src: /src/mod_auth_openidc/src/util/url.c:261,1
    - Dst: oidc_cfg_x_forwarded_headers_get
      Src: /src/mod_auth_openidc/src/util/url.c:261,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/url.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - r
    - cfg
    - url
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 7
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: oidc_util_url_abs
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 8
    functionsReached:
    - apr_pstrcat
    - _oidc_util_url_base_cur
    - oidc_debug
    - oidc_cfg_x_forwarded_headers_get
    linkageType: ''
    returnType: char
    signature: char *oidc_util_url_abs(request_rec *r, const oidc_cfg_t *cfg, const
      char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/util/url.c:271,1
    - Dst: _oidc_util_url_cur_scheme
      Src: /src/mod_auth_openidc/src/util/url.c:271,1
    - Dst: oidc_cfg_x_forwarded_headers_get
      Src: /src/mod_auth_openidc/src/util/url.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - c
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 6
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: oidc_util_url_cur_is_secure
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 3
    functionsReached:
    - _oidc_util_url_cur_scheme
    - _oidc_strnatcasecmp
    - oidc_cfg_x_forwarded_headers_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_url_cur_is_secure(const request_rec *r, const
      oidc_cfg_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_abs
      Src: /src/mod_auth_openidc/src/util/url.c:278,1
    - Dst: oidc_cfg_redirect_uri_get
      Src: /src/mod_auth_openidc/src/util/url.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - cfg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 8
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: oidc_util_url_redirect_uri
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 14
    functionsReached:
    - oidc_cfg_redirect_uri_get
    - oidc_util_url_abs
    linkageType: ''
    returnType: char
    signature: char *oidc_util_url_redirect_uri(request_rec *r, const oidc_cfg_t *cfg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/util/url.c:286,1
    - Dst: apr_uri_parse
      Src: /src/mod_auth_openidc/src/util/url.c:287,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/url.c:289,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/util/url.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - r
    - url
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: oidc_util_url_cur_matches
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 2
    functionsReached:
    - _oidc_memset
    - oidc_debug
    - apr_uri_parse
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_url_cur_matches(request_rec *r, const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_url_cur_matches
      Src: /src/mod_auth_openidc/src/util/url.c:299,1
    - Dst: oidc_util_url_redirect_uri
      Src: /src/mod_auth_openidc/src/util/url.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - cfg
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 9
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: oidc_util_url_matches_redirect_uri
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 6
    functionsReached:
    - oidc_util_url_redirect_uri
    - oidc_util_url_cur_matches
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_url_matches_redirect_uri(request_rec *r, const
      oidc_cfg_t *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/url.c:308,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/url.c:309,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/util/url.c:310,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/util/url.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - r
    - param
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: oidc_util_url_has_parameter
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 8
    functionsReached:
    - _oidc_strstr
    - apr_psprintf
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_url_has_parameter(request_rec *r, const char *param)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/url.c:320,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/url.c:321,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/url.c:325,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/src/util/url.c:329,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/url.c:329,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/util/url.c:334,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/util/url.c:336,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/url.c:337,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/src/util/url.c:338,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/util/url.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - r
    - name
    - value
    argTypes:
    - request_rec*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 344
    functionName: oidc_util_url_parameter_get
    functionSourceFile: /src/mod_auth_openidc/src/util/url.c
    functionUses: 19
    functionsReached:
    - _oidc_strlen
    - apr_pstrdup
    - apr_psprintf
    - _oidc_strncmp
    - apr_pstrmemdup
    - apr_strtok
    - oidc_http_url_decode
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_url_parameter_get(request_rec *r, char *name,
      char **value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_generate_random_bytes
      Src: /src/mod_auth_openidc/src/util/random.c:63,1
    - Dst: open
      Src: /src/mod_auth_openidc/src/util/random.c:73,1
    - Dst: read
      Src: /src/mod_auth_openidc/src/util/random.c:79,1
    - Dst: close
      Src: /src/mod_auth_openidc/src/util/random.c:84,1
    - Dst: close
      Src: /src/mod_auth_openidc/src/util/random.c:87,1
    - Dst: close
      Src: /src/mod_auth_openidc/src/util/random.c:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - length
    argTypes:
    - unsigned char*
    - apr_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 102
    functionName: _oidc_util_rand
    functionSourceFile: /src/mod_auth_openidc/src/util/random.c
    functionUses: 0
    functionsReached:
    - open
    - close
    - apr_generate_random_bytes
    - read
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t _oidc_util_rand(unsigned char *buf, apr_size_t length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/random.c:115,1
    - Dst: _oidc_util_rand
      Src: /src/mod_auth_openidc/src/util/random.c:116,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/random.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - r
    - buf
    - len
    argTypes:
    - request_rec*
    - unsigned char*
    - apr_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 120
    functionName: _oidc_util_rand_bytes
    functionSourceFile: /src/mod_auth_openidc/src/util/random.c
    functionUses: 0
    functionsReached:
    - _oidc_util_rand
    - oidc_debug
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t _oidc_util_rand_bytes(request_rec *r, unsigned char *buf,
      apr_size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_util_rand
      Src: /src/mod_auth_openidc/src/util/random.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - mod
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 138
    functionName: oidc_util_rand_int
    functionSourceFile: /src/mod_auth_openidc/src/util/random.c
    functionUses: 2
    functionsReached:
    - _oidc_util_rand
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int oidc_util_rand_int(unsigned int mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/util/random.c:144,1
    - Dst: _oidc_util_rand_bytes
      Src: /src/mod_auth_openidc/src/util/random.c:145,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/random.c:146,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/src/util/random.c:149,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/random.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - r
    - str
    - len
    argTypes:
    - request_rec*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: oidc_util_rand_str
    functionSourceFile: /src/mod_auth_openidc/src/util/random.c
    functionUses: 8
    functionsReached:
    - oidc_error
    - _oidc_util_rand_bytes
    - apr_pcalloc
    - oidc_util_base64url_encode
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_rand_str(request_rec *r, char **str, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/util/random.c:160,1
    - Dst: _oidc_util_rand_bytes
      Src: /src/mod_auth_openidc/src/util/random.c:161,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/random.c:163,1
    - Dst: oidc_util_hex_encode
      Src: /src/mod_auth_openidc/src/util/random.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - r
    - pool
    - len
    argTypes:
    - request_rec*
    - apr_pool_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: oidc_util_rand_hex_str
    functionSourceFile: /src/mod_auth_openidc/src/util/random.c
    functionUses: 3
    functionsReached:
    - oidc_error
    - oidc_util_hex_encode
    - _oidc_util_rand_bytes
    - apr_pcalloc
    linkageType: ''
    returnType: char
    signature: char *oidc_util_rand_hex_str(request_rec *r, apr_pool_t *pool, int
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/util/jwt.c:57,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/util/jwt.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - r
    - env_var_name
    - return_when_set
    argTypes:
    - request_rec*
    - char*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: oidc_util_env_var_override
    functionSourceFile: /src/mod_auth_openidc/src/util/jwt.c
    functionUses: 0
    functionsReached:
    - apr_table_get
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_env_var_override(const request_rec *r, const
      char *env_var_name,\n\t\t\t\t\t     apr_byte_t return_when_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_env_var_override
      Src: /src/mod_auth_openidc/src/util/jwt.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: oidc_util_jwt_internal_compress
    functionSourceFile: /src/mod_auth_openidc/src/util/jwt.c
    functionUses: 0
    functionsReached:
    - oidc_util_env_var_override
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_jwt_internal_compress(const request_rec *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jwt.c:78,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/src/util/jwt.c:81,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jwt.c:84,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/util/jwt.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - r
    - derived_key
    - derived_key_set
    - jwk
    argTypes:
    - request_rec*
    - unsigned char*
    - apr_byte_t
    - oidc_jwk_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: oidc_util_jwt_key_from_derived
    functionSourceFile: /src/mod_auth_openidc/src/util/jwt.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - oidc_jose_e2s
    - oidc_jwk_create_symmetric_key
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_jwt_key_from_derived(request_rec *r, const unsigned
      char *derived_key,\n\t\t\t\t\t\t apr_byte_t derived_key_set, oidc_jwk_t **jwk)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jwt.c:105,1
    - Dst: oidc_util_jwt_key_from_derived
      Src: /src/mod_auth_openidc/src/util/jwt.c:109,1
    - Dst: oidc_util_jwt_internal_compress
      Src: /src/mod_auth_openidc/src/util/jwt.c:112,1
    - Dst: oidc_jose_compress
      Src: /src/mod_auth_openidc/src/util/jwt.c:113,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/jwt.c:113,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jwt.c:115,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/util/jwt.c:115,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/jwt.c:119,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/jwt.c:120,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/src/util/jwt.c:123,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jwt.c:125,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/jwt.c:129,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/jwt.c:130,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/jwt.c:132,1
    - Dst: oidc_jwt_encrypt
      Src: /src/mod_auth_openidc/src/util/jwt.c:134,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jwt.c:135,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/util/jwt.c:135,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/util/jwt.c:144,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/util/jwt.c:146,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 4
    argNames:
    - r
    - passphrase
    - s_payload
    - compact_encoded_jwt
    argTypes:
    - request_rec*
    - oidc_crypto_passphrase_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 149
    functionName: oidc_util_jwt_create
    functionSourceFile: /src/mod_auth_openidc/src/util/jwt.c
    functionUses: 10
    functionsReached:
    - oidc_util_jwt_key_from_derived
    - _oidc_strlen
    - apr_pstrdup
    - oidc_error
    - oidc_jwt_new
    - oidc_jwt_encrypt
    - oidc_util_jwt_internal_compress
    - oidc_jwt_destroy
    - oidc_jose_compress
    - oidc_jose_e2s
    - oidc_jwk_destroy
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_jwt_create(request_rec *r, const oidc_crypto_passphrase_t
      *passphrase, const char *s_payload,\n\t\t\t\tchar **compact_encoded_jwt)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_proto_jwt_header_peek
      Src: /src/mod_auth_openidc/src/util/jwt.c:169,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/util/jwt.c:170,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/util/jwt.c:170,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jwt.c:171,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/util/jwt.c:175,1
    - Dst: oidc_util_jwt_key_from_derived
      Src: /src/mod_auth_openidc/src/util/jwt.c:178,1
    - Dst: oidc_util_jwt_key_from_derived
      Src: /src/mod_auth_openidc/src/util/jwt.c:182,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/util/jwt.c:186,1
    - Dst: oidc_jwe_decrypt
      Src: /src/mod_auth_openidc/src/util/jwt.c:189,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jwt.c:190,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/util/jwt.c:190,1
    - Dst: oidc_jose_uncompress
      Src: /src/mod_auth_openidc/src/util/jwt.c:195,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jwt.c:196,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/util/jwt.c:196,1
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/src/util/jwt.c:200,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/util/jwt.c:207,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - r
    - passphrase
    - compact_encoded_jwt
    - s_payload
    argTypes:
    - request_rec*
    - oidc_crypto_passphrase_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 154
    functionDepth: 6
    functionLinenumber: 154
    functionLinenumberEnd: 210
    functionName: oidc_util_jwt_verify
    functionSourceFile: /src/mod_auth_openidc/src/util/jwt.c
    functionUses: 7
    functionsReached:
    - oidc_util_jwt_key_from_derived
    - oidc_jose_uncompress
    - apr_hash_set
    - oidc_error
    - apr_pstrndup
    - apr_hash_make
    - oidc_proto_jwt_header_peek
    - oidc_jwe_decrypt
    - oidc_jose_e2s
    - oidc_jwk_destroy
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_jwt_verify(request_rec *r, const oidc_crypto_passphrase_t
      *passphrase,\n\t\t\t\tconst char *compact_encoded_jwt, char **s_payload)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/util/appinfo.c:56,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/appinfo.c:56,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - r
    - src
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 82
    functionName: _oidc_util_appinfo_utf8_to_latin1
    functionSourceFile: /src/mod_auth_openidc/src/util/appinfo.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_pcalloc
    linkageType: ''
    returnType: char
    signature: char *_oidc_util_appinfo_utf8_to_latin1(request_rec *r, const char
      *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/appinfo.c:91,1
    - Dst: oidc_http_hdr_normalize_name
      Src: /src/mod_auth_openidc/src/util/appinfo.c:91,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/src/util/appinfo.c:96,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/appinfo.c:96,1
    - Dst: _oidc_util_appinfo_utf8_to_latin1
      Src: /src/mod_auth_openidc/src/util/appinfo.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - r
    - s_key
    - s_value
    - claim_prefix
    - encoding
    - r_name
    - r_value
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - oidc_appinfo_encoding_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: oidc_util_appinfo_render
    functionSourceFile: /src/mod_auth_openidc/src/util/appinfo.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_util_base64url_encode
    - _oidc_util_appinfo_utf8_to_latin1
    - apr_psprintf
    - oidc_http_hdr_normalize_name
    linkageType: ''
    returnType: void
    signature: "void oidc_util_appinfo_render(request_rec *r, const char *s_key, const
      char *s_value, const char *claim_prefix,\n\t\t\t\t     oidc_appinfo_encoding_t
      encoding, const char **r_name, const char **r_value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_table_add
      Src: /src/mod_auth_openidc/src/util/appinfo.c:133,1
    - Dst: oidc_http_hdr_in_set
      Src: /src/mod_auth_openidc/src/util/appinfo.c:135,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/appinfo.c:141,1
    - Dst: apr_table_addn
      Src: /src/mod_auth_openidc/src/util/appinfo.c:144,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/util/appinfo.c:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - r
    - s_name
    - s_value
    - ctx
    argTypes:
    - request_rec*
    - char*
    - char*
    - oidc_appinfo_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 148
    functionName: oidc_util_appinfo_pair_apply
    functionSourceFile: /src/mod_auth_openidc/src/util/appinfo.c
    functionUses: 0
    functionsReached:
    - oidc_debug
    - apr_table_addn
    - oidc_http_hdr_in_set
    - apr_table_set
    - oidc_http_hdr_table_add
    linkageType: ''
    returnType: void
    signature: "void oidc_util_appinfo_pair_apply(request_rec *r, const char *s_name,
      const char *s_value,\n\t\t\t\t\t const oidc_appinfo_ctx_t *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_appinfo_render
      Src: /src/mod_auth_openidc/src/util/appinfo.c:154,1
    - Dst: oidc_util_appinfo_pair_apply
      Src: /src/mod_auth_openidc/src/util/appinfo.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r
    - s_key
    - s_value
    - ctx
    argTypes:
    - request_rec*
    - char*
    - char*
    - oidc_appinfo_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: oidc_util_appinfo_set_impl
    functionSourceFile: /src/mod_auth_openidc/src/util/appinfo.c
    functionUses: 0
    functionsReached:
    - oidc_util_appinfo_render
    - oidc_util_appinfo_pair_apply
    linkageType: ''
    returnType: void
    signature: "void oidc_util_appinfo_set_impl(request_rec *r, const char *s_key,
      const char *s_value,\n\t\t\t\t       const oidc_appinfo_ctx_t *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_appinfo_set_impl
      Src: /src/mod_auth_openidc/src/util/appinfo.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - r
    - s_key
    - s_value
    - claim_prefix
    - pass_in
    - encoding
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - oidc_appinfo_pass_in_t
    - oidc_appinfo_encoding_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 5
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: oidc_util_appinfo_set
    functionSourceFile: /src/mod_auth_openidc/src/util/appinfo.c
    functionUses: 4
    functionsReached:
    - oidc_util_appinfo_set_impl
    linkageType: ''
    returnType: void
    signature: "void oidc_util_appinfo_set(request_rec *r, const char *s_key, const
      char *s_value, const char *claim_prefix,\n\t\t\t   oidc_appinfo_pass_in_t pass_in,
      oidc_appinfo_encoding_t encoding)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/appinfo.c:171,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/appinfo.c:176,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/util/appinfo.c:178,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/util/appinfo.c:184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - r
    - claim_delimiter
    - s_value
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 196
    functionName: oidc_util_appinfo_escape
    functionSourceFile: /src/mod_auth_openidc/src/util/appinfo.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - apr_pcalloc
    - _oidc_strncmp
    linkageType: ''
    returnType: char
    signature: char *oidc_util_appinfo_escape(request_rec *r, const char *claim_delimiter,
      const char *s_value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_array_size
      Src: /src/mod_auth_openidc/src/util/appinfo.c:207,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/appinfo.c:208,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/appinfo.c:213,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/util/appinfo.c:218,1
    - Dst: oidc_json_array_get
      Src: /src/mod_auth_openidc/src/util/appinfo.c:220,1
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/util/appinfo.c:223,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/util/appinfo.c:224,1
    - Dst: oidc_json_is_boolean
      Src: /src/mod_auth_openidc/src/util/appinfo.c:225,1
    - Dst: oidc_json_is_true
      Src: /src/mod_auth_openidc/src/util/appinfo.c:226,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/appinfo.c:228,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/util/appinfo.c:231,1
    - Dst: oidc_util_appinfo_escape
      Src: /src/mod_auth_openidc/src/util/appinfo.c:235,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/appinfo.c:243,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/util/appinfo.c:250,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/appinfo.c:253,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/util/appinfo.c:255,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/util/appinfo.c:258,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - r
    - j_array
    - claim_delimiter
    - s_key
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 264
    functionName: oidc_util_appinfo_array_concat
    functionSourceFile: /src/mod_auth_openidc/src/util/appinfo.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_json_typeof
    - oidc_json_array_get
    - _oidc_memcpy
    - oidc_debug
    - oidc_json_is_string
    - oidc_json_is_boolean
    - oidc_util_appinfo_escape
    - oidc_json_string_value
    - apr_palloc
    - oidc_json_array_size
    - oidc_json_is_true
    linkageType: ''
    returnType: char
    signature: "char *oidc_util_appinfo_array_concat(request_rec *r, const oidc_json_t
      *j_array,\n\t\t\t\t\t\t  const char *claim_delimiter, const char *s_key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_is_string
      Src: /src/mod_auth_openidc/src/util/appinfo.c:274,1
    - Dst: oidc_util_appinfo_set_impl
      Src: /src/mod_auth_openidc/src/util/appinfo.c:275,1
    - Dst: oidc_json_string_value
      Src: /src/mod_auth_openidc/src/util/appinfo.c:275,1
    - Dst: oidc_json_is_boolean
      Src: /src/mod_auth_openidc/src/util/appinfo.c:276,1
    - Dst: oidc_util_appinfo_set_impl
      Src: /src/mod_auth_openidc/src/util/appinfo.c:277,1
    - Dst: oidc_json_is_true
      Src: /src/mod_auth_openidc/src/util/appinfo.c:277,1
    - Dst: oidc_json_is_integer
      Src: /src/mod_auth_openidc/src/util/appinfo.c:278,1
    - Dst: snprintf
      Src: /src/mod_auth_openidc/src/util/appinfo.c:279,1
    - Dst: oidc_json_integer_value
      Src: /src/mod_auth_openidc/src/util/appinfo.c:279,1
    - Dst: oidc_util_appinfo_set_impl
      Src: /src/mod_auth_openidc/src/util/appinfo.c:280,1
    - Dst: oidc_json_is_real
      Src: /src/mod_auth_openidc/src/util/appinfo.c:281,1
    - Dst: oidc_util_appinfo_set_impl
      Src: /src/mod_auth_openidc/src/util/appinfo.c:282,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/appinfo.c:282,1
    - Dst: oidc_json_real_value
      Src: /src/mod_auth_openidc/src/util/appinfo.c:282,1
    - Dst: oidc_json_is_object
      Src: /src/mod_auth_openidc/src/util/appinfo.c:283,1
    - Dst: oidc_util_appinfo_set_impl
      Src: /src/mod_auth_openidc/src/util/appinfo.c:284,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/util/appinfo.c:285,1
    - Dst: oidc_json_is_array
      Src: /src/mod_auth_openidc/src/util/appinfo.c:286,1
    - Dst: oidc_util_appinfo_set_impl
      Src: /src/mod_auth_openidc/src/util/appinfo.c:287,1
    - Dst: oidc_util_appinfo_array_concat
      Src: /src/mod_auth_openidc/src/util/appinfo.c:288,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/appinfo.c:290,1
    - Dst: oidc_json_typeof
      Src: /src/mod_auth_openidc/src/util/appinfo.c:291,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - r
    - s_key
    - j_value
    - ctx
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    - oidc_appinfo_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 293
    functionName: oidc_util_appinfo_set_one
    functionSourceFile: /src/mod_auth_openidc/src/util/appinfo.c
    functionUses: 0
    functionsReached:
    - oidc_json_is_real
    - oidc_json_is_object
    - oidc_json_typeof
    - oidc_json_is_integer
    - oidc_util_appinfo_set_impl
    - snprintf
    - oidc_json_encode
    - oidc_util_appinfo_array_concat
    - oidc_debug
    - oidc_json_is_string
    - oidc_json_is_boolean
    - oidc_json_real_value
    - apr_psprintf
    - oidc_json_is_array
    - oidc_json_string_value
    - oidc_json_integer_value
    - oidc_json_is_true
    linkageType: ''
    returnType: void
    signature: "void oidc_util_appinfo_set_one(request_rec *r, const char *s_key,
      const oidc_json_t *j_value,\n\t\t\t\t      const oidc_appinfo_ctx_t *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/appinfo.c:304,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/util/appinfo.c:310,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/util/appinfo.c:312,1
    - Dst: oidc_json_object_iter
      Src: /src/mod_auth_openidc/src/util/appinfo.c:315,1
    - Dst: oidc_util_appinfo_set_one
      Src: /src/mod_auth_openidc/src/util/appinfo.c:317,1
    - Dst: oidc_json_object_iter_key
      Src: /src/mod_auth_openidc/src/util/appinfo.c:317,1
    - Dst: oidc_json_object_iter_value
      Src: /src/mod_auth_openidc/src/util/appinfo.c:317,1
    - Dst: oidc_json_object_iter_next
      Src: /src/mod_auth_openidc/src/util/appinfo.c:318,1
    - Dst: apr_table_overlap
      Src: /src/mod_auth_openidc/src/util/appinfo.c:322,1
    - Dst: apr_table_overlap
      Src: /src/mod_auth_openidc/src/util/appinfo.c:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - r
    - j_attrs
    - claim_prefix
    - claim_delimiter
    - pass_in
    - encoding
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    - char*
    - oidc_appinfo_pass_in_t
    - oidc_appinfo_encoding_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 298
    functionDepth: 6
    functionLinenumber: 298
    functionLinenumberEnd: 325
    functionName: oidc_util_appinfo_set_all
    functionSourceFile: /src/mod_auth_openidc/src/util/appinfo.c
    functionUses: 4
    functionsReached:
    - oidc_json_object_iter_next
    - apr_table_overlap
    - oidc_json_object_iter_key
    - oidc_debug
    - apr_table_make
    - oidc_json_object_iter_value
    - oidc_json_object_iter
    - oidc_util_appinfo_set_one
    linkageType: ''
    returnType: void
    signature: "void oidc_util_appinfo_set_all(request_rec *r, oidc_json_t *j_attrs,
      const char *claim_prefix,\n\t\t\t       const char *claim_delimiter, oidc_appinfo_pass_in_t
      pass_in,\n\t\t\t       oidc_appinfo_encoding_t encoding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_isalnum
      Src: /src/mod_auth_openidc/src/util/util.c:59,1
    - Dst: apr_toupper
      Src: /src/mod_auth_openidc/src/util/util.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: oidc_util_char_to_env
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 0
    functionsReached:
    - apr_toupper
    - apr_isalnum
    linkageType: ''
    returnType: int
    signature: int oidc_util_char_to_env(int c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_char_to_env
      Src: /src/mod_auth_openidc/src/util/util.c:85,1
    - Dst: oidc_util_char_to_env
      Src: /src/mod_auth_openidc/src/util/util.c:85,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - a
    - b
    - len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 93
    functionName: oidc_util_strnenvcmp
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 3
    functionsReached:
    - oidc_util_char_to_env
    linkageType: ''
    returnType: int
    signature: int oidc_util_strnenvcmp(const char *a, const char *b, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/mod_auth_openidc/src/util/util.c:106,1
    - Dst: tolower
      Src: /src/mod_auth_openidc/src/util/util.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: oidc_util_strcasestr
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 5
    functionsReached:
    - tolower
    linkageType: ''
    returnType: char
    signature: char *oidc_util_strcasestr(const char *s1, const char *s2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_set_content_type
      Src: /src/mod_auth_openidc/src/util/util.c:123,1
    - Dst: apr_brigade_create
      Src: /src/mod_auth_openidc/src/util/util.c:124,1
    - Dst: apr_bucket_transient_create
      Src: /src/mod_auth_openidc/src/util/util.c:125,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/mod_auth_openidc/src/util/util.c:126,1
    - Dst: apr_bucket_eos_create
      Src: /src/mod_auth_openidc/src/util/util.c:127,1
    - Dst: APR_BRIGADE_INSERT_TAIL
      Src: /src/mod_auth_openidc/src/util/util.c:128,1
    - Dst: ap_pass_brigade
      Src: /src/mod_auth_openidc/src/util/util.c:129,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/util.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - r
    - data
    - data_len
    - content_type
    - success_rvalue
    argTypes:
    - request_rec*
    - char*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 148
    functionName: oidc_util_http_send
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 8
    functionsReached:
    - apr_brigade_create
    - oidc_error
    - ap_pass_brigade
    - apr_bucket_eos_create
    - ap_set_content_type
    - APR_BRIGADE_INSERT_TAIL
    - apr_bucket_transient_create
    linkageType: ''
    returnType: int
    signature: "int oidc_util_http_send(request_rec *r, const char *data, size_t data_len,
      const char *content_type,\n\t\t\tint success_rvalue)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/util.c:157,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/util.c:159,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/util.c:160,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/util.c:162,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/util.c:162,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/util.c:163,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/util.c:165,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/util.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - r
    - data
    - data_len
    - content_type
    argTypes:
    - request_rec*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 172
    functionName: oidc_util_http_content_prep
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 5
    functionsReached:
    - apr_psprintf
    - oidc_request_state_set
    linkageType: ''
    returnType: int
    signature: int oidc_util_http_content_prep(request_rec *r, const char *data, size_t
      data_len, const char *content_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/util/util.c:179,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/src/util/util.c:180,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/util/util.c:180,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/util/util.c:181,1
    - Dst: oidc_util_http_send
      Src: /src/mod_auth_openidc/src/util/util.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: oidc_util_http_content_send
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 2
    functionsReached:
    - _oidc_str_to_int
    - oidc_util_http_send
    - oidc_request_state_get
    linkageType: ''
    returnType: int
    signature: int oidc_util_http_content_send(request_rec *r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ap_setup_client_block
      Src: /src/mod_auth_openidc/src/util/util.c:197,1
    - Dst: ap_should_client_block
      Src: /src/mod_auth_openidc/src/util/util.c:200,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/util.c:203,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/util/util.c:208,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/util.c:210,1
    - Dst: ap_get_client_block
      Src: /src/mod_auth_openidc/src/util/util.c:218,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/util.c:223,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - r
    - rbuf
    argTypes:
    - request_rec*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 231
    functionName: oidc_util_read
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 0
    functionsReached:
    - ap_should_client_block
    - ap_setup_client_block
    - oidc_error
    - ap_get_client_block
    - apr_palloc
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_read(request_rec *r, char **rbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/util/util.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - no_repeat
    - key
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: oidc_util_param_must_not_repeat
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 0
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_param_must_not_repeat(const char *const *no_repeat,
      const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_getword
      Src: /src/mod_auth_openidc/src/util/util.c:253,1
    - Dst: ap_getword
      Src: /src/mod_auth_openidc/src/util/util.c:256,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/src/util/util.c:257,1
    - Dst: oidc_http_url_decode
      Src: /src/mod_auth_openidc/src/util/util.c:258,1
    - Dst: oidc_util_param_must_not_repeat
      Src: /src/mod_auth_openidc/src/util/util.c:259,1
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/util/util.c:259,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/util.c:260,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/util.c:265,1
    - Dst: oidc_http_param_is_sensitive
      Src: /src/mod_auth_openidc/src/util/util.c:265,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/util/util.c:266,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/util.c:269,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/util.c:269,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/src/util/util.c:270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - r
    - table
    - data
    - no_repeat
    argTypes:
    - request_rec*
    - apr_table_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 273
    functionName: oidc_util_read_form_encoded_params_impl
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 0
    functionsReached:
    - ap_getword
    - _oidc_strlen
    - oidc_error
    - oidc_debug
    - oidc_util_param_must_not_repeat
    - apr_table_set
    - oidc_http_param_is_sensitive
    - apr_table_elts
    - apr_table_get
    - oidc_http_url_decode
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_read_form_encoded_params_impl(request_rec *r,
      apr_table_t *table, const char *data,\n\t\t\t\t\t\t\t  const char *const *no_repeat)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_read_form_encoded_params_impl
      Src: /src/mod_auth_openidc/src/util/util.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - table
    - data
    argTypes:
    - request_rec*
    - apr_table_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: oidc_util_read_form_encoded_params
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 3
    functionsReached:
    - oidc_util_read_form_encoded_params_impl
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_read_form_encoded_params(request_rec *r, apr_table_t
      *table, const char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_read_form_encoded_params_impl
      Src: /src/mod_auth_openidc/src/util/util.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - table
    - data
    - no_repeat
    argTypes:
    - request_rec*
    - apr_table_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: oidc_util_read_form_encoded_params_reject_dup
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 3
    functionsReached:
    - oidc_util_read_form_encoded_params_impl
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_read_form_encoded_params_reject_dup(request_rec
      *r, apr_table_t *table, const char *data,\n\t\t\t\t\t\t\t const char *const
      *no_repeat)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pool_userdata_get
      Src: /src/mod_auth_openidc/src/util/util.c:287,1
    - Dst: apr_table_make
      Src: /src/mod_auth_openidc/src/util/util.c:289,1
    - Dst: apr_table_set
      Src: /src/mod_auth_openidc/src/util/util.c:290,1
    - Dst: apr_pool_userdata_set
      Src: /src/mod_auth_openidc/src/util/util.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - r
    - post_param_name
    - post_param_value
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: oidc_util_userdata_set_post_param
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 0
    functionsReached:
    - apr_pool_userdata_get
    - apr_table_set
    - apr_table_make
    - apr_pool_userdata_set
    linkageType: ''
    returnType: void
    signature: "void oidc_util_userdata_set_post_param(request_rec *r, const char
      *post_param_name,\n\t\t\t\t\t      const char *post_param_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_http_hdr_in_content_type_get
      Src: /src/mod_auth_openidc/src/util/util.c:305,1
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/util/util.c:307,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/util.c:308,1
    - Dst: oidc_util_read
      Src: /src/mod_auth_openidc/src/util/util.c:312,1
    - Dst: oidc_util_read_form_encoded_params_impl
      Src: /src/mod_auth_openidc/src/util/util.c:315,1
    - Dst: apr_table_elts
      Src: /src/mod_auth_openidc/src/util/util.c:322,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/util/util.c:325,1
    - Dst: oidc_util_userdata_set_post_param
      Src: /src/mod_auth_openidc/src/util/util.c:326,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 5
    argNames:
    - r
    - table
    - propagate
    - strip_param_name
    - no_repeat
    argTypes:
    - request_rec*
    - apr_table_t*
    - apr_byte_t
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 331
    functionName: oidc_util_read_post_params_impl
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 0
    functionsReached:
    - oidc_util_read_form_encoded_params_impl
    - oidc_util_userdata_set_post_param
    - oidc_http_hdr_in_content_type_get
    - oidc_debug
    - _oidc_strstr
    - oidc_util_read
    - apr_table_elts
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_read_post_params_impl(request_rec *r, apr_table_t
      *table, apr_byte_t propagate,\n\t\t\t\t\t\t  const char *strip_param_name, const
      char *const *no_repeat)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_read_post_params_impl
      Src: /src/mod_auth_openidc/src/util/util.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - table
    - propagate
    - strip_param_name
    argTypes:
    - request_rec*
    - apr_table_t*
    - apr_byte_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: oidc_util_read_post_params
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 4
    functionsReached:
    - oidc_util_read_post_params_impl
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_read_post_params(request_rec *r, apr_table_t
      *table, apr_byte_t propagate,\n\t\t\t\t      const char *strip_param_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_read_post_params_impl
      Src: /src/mod_auth_openidc/src/util/util.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - r
    - table
    - propagate
    - strip_param_name
    - no_repeat
    argTypes:
    - request_rec*
    - apr_table_t*
    - apr_byte_t
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: oidc_util_read_post_params_reject_dup
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 3
    functionsReached:
    - oidc_util_read_post_params_impl
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_read_post_params_reject_dup(request_rec *r, apr_table_t
      *table, apr_byte_t propagate,\n\t\t\t\t\t\t const char *strip_param_name, const
      char *const *no_repeat)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/util/util.c:349,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/util.c:352,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/util.c:353,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/util/util.c:359,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 364
    functionName: oidc_util_issuer_match
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 7
    functionsReached:
    - _oidc_strncmp
    - _oidc_strlen
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_issuer_match(const char *a, const char *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/util.c:371,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/util/util.c:372,1
    - Dst: ap_getword_white
      Src: /src/mod_auth_openidc/src/util/util.c:374,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/util/util.c:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - pool
    - str
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 380
    functionName: oidc_util_spaced_string_to_hashtable
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 2
    functionsReached:
    - apr_pstrdup
    - apr_hash_set
    - ap_getword_white
    - apr_hash_make
    linkageType: ''
    returnType: apr_hash_t
    signature: apr_hash_t *oidc_util_spaced_string_to_hashtable(apr_pool_t *pool,
      const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_spaced_string_to_hashtable
      Src: /src/mod_auth_openidc/src/util/util.c:391,1
    - Dst: oidc_util_spaced_string_to_hashtable
      Src: /src/mod_auth_openidc/src/util/util.c:392,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/util/util.c:395,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/util/util.c:395,1
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/util/util.c:399,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/util/util.c:399,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/util/util.c:400,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/util/util.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pool
    - a
    - b
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 407
    functionName: oidc_util_spaced_string_equals
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 5
    functionsReached:
    - apr_hash_this
    - apr_hash_get
    - apr_hash_count
    - apr_hash_next
    - oidc_util_spaced_string_to_hashtable
    - apr_hash_first
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_spaced_string_equals(apr_pool_t *pool, const char
      *a, const char *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_spaced_string_to_hashtable
      Src: /src/mod_auth_openidc/src/util/util.c:415,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/util/util.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - pool
    - str
    - match
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 417
    functionName: oidc_util_spaced_string_contains
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 8
    functionsReached:
    - oidc_util_spaced_string_to_hashtable
    - apr_hash_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_spaced_string_contains(apr_pool_t *pool, const
      char *str, const char *match)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_getword
      Src: /src/mod_auth_openidc/src/util/util.c:428,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/util.c:431,1
    - Dst: ap_getword
      Src: /src/mod_auth_openidc/src/util/util.c:431,1
    - Dst: ap_unescape_url
      Src: /src/mod_auth_openidc/src/util/util.c:432,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/util.c:433,1
    - Dst: ap_unescape_url
      Src: /src/mod_auth_openidc/src/util/util.c:434,1
    - Dst: apr_table_addn
      Src: /src/mod_auth_openidc/src/util/util.c:435,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pool
    - table
    - params
    argTypes:
    - apr_pool_t*
    - apr_table_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 437
    functionName: oidc_util_table_add_query_encoded_params
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 4
    functionsReached:
    - ap_unescape_url
    - ap_getword
    - apr_pstrdup
    - apr_table_addn
    linkageType: ''
    returnType: void
    signature: void oidc_util_table_add_query_encoded_params(apr_pool_t *pool, apr_table_t
      *table, const char *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/util/util.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pool
    - bytes
    - len
    argTypes:
    - apr_pool_t*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 448
    functionName: oidc_util_hex_encode
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 2
    functionsReached:
    - apr_palloc
    linkageType: ''
    returnType: char
    signature: char *oidc_util_hex_encode(apr_pool_t *pool, const unsigned char *bytes,
      unsigned int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/util/util.c:466,1
    - Dst: oidc_cfg_debug_mask_secrets_get
      Src: /src/mod_auth_openidc/src/util/util.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 470
    functionName: oidc_util_log_mask_secrets
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 3
    functionsReached:
    - ap_get_module_config
    - oidc_cfg_debug_mask_secrets_get
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_log_mask_secrets(request_rec *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_log_mask_secrets
      Src: /src/mod_auth_openidc/src/util/util.c:477,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/util.c:479,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/util.c:482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - r
    - value
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 483
    functionName: oidc_util_mask_value
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 9
    functionsReached:
    - _oidc_strlen
    - oidc_util_log_mask_secrets
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_util_mask_value(request_rec *r, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/util.c:498,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/util.c:499,1
    - Dst: CRYPTO_memcmp
      Src: /src/mod_auth_openidc/src/util/util.c:504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 505
    functionName: oidc_util_strcmp_const_time
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 4
    functionsReached:
    - _oidc_strlen
    - CRYPTO_memcmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_strcmp_const_time(const char *a, const char *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_hash_bytes
      Src: /src/mod_auth_openidc/src/util/util.c:515,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/util.c:516,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/util.c:517,1
    - Dst: oidc_util_base64url_encode
      Src: /src/mod_auth_openidc/src/util/util.c:521,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/util.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - r
    - openssl_hash_algo
    - input
    - output
    argTypes:
    - request_rec*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 527
    functionName: oidc_util_hash_string_and_base64url_encode
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 5
    functionsReached:
    - oidc_util_base64url_encode
    - _oidc_strlen
    - oidc_error
    - oidc_jose_hash_bytes
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_hash_string_and_base64url_encode(request_rec
      *r, const char *openssl_hash_algo, const char *input,\n\t\t\t\t\t\t      char
      **output)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/util.c:540,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/util.c:541,1
    - Dst: _oidc_strnatcasecmp
      Src: /src/mod_auth_openidc/src/util/util.c:545,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - hostname
    - suffix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 548
    functionName: oidc_util_hostname_endswith
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 3
    functionsReached:
    - _oidc_strlen
    - _oidc_strnatcasecmp
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_hostname_endswith(const char *hostname, const
      char *suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_hostname_endswith
      Src: /src/mod_auth_openidc/src/util/util.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - hostname
    - cookie_domain
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 562
    functionName: oidc_util_cookie_domain_valid
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 6
    functionsReached:
    - oidc_util_hostname_endswith
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_cookie_domain_valid(const char *hostname, const
      char *cookie_domain)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cfg_trace_parent_get
      Src: /src/mod_auth_openidc/src/util/util.c:587,1
    - Dst: oidc_request_state_get
      Src: /src/mod_auth_openidc/src/util/util.c:593,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/util/util.c:596,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/util/util.c:597,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/util.c:598,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/util.c:598,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/util/util.c:602,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/util.c:605,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/util/util.c:608,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/util.c:611,1
    - Dst: apr_generate_random_bytes
      Src: /src/mod_auth_openidc/src/util/util.c:614,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/util/util.c:615,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/util.c:620,1
    - Dst: oidc_request_state_set
      Src: /src/mod_auth_openidc/src/util/util.c:621,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/util.c:623,1
    - Dst: oidc_cfg_metrics_hook_data_get
      Src: /src/mod_auth_openidc/src/util/util.c:626,1
    - Dst: oidc_http_hdr_in_set
      Src: /src/mod_auth_openidc/src/util/util.c:629,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/util.c:630,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - r
    - c
    - span
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 631
    functionName: oidc_util_set_trace_parent
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 4
    functionsReached:
    - oidc_warn
    - oidc_cfg_trace_parent_get
    - _oidc_memset
    - _oidc_strlen
    - apr_pstrdup
    - oidc_cfg_metrics_hook_data_get
    - _oidc_memcpy
    - oidc_debug
    - apr_generate_random_bytes
    - oidc_http_hdr_in_set
    - oidc_request_state_get
    - apr_psprintf
    - oidc_request_state_set
    linkageType: ''
    returnType: void
    signature: void oidc_util_set_trace_parent(request_rec *r, const oidc_cfg_t *c,
      const char *span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/util/util.c:639,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/util/util.c:639,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/util/util.c:640,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/util/util.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ht
    argTypes:
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 643
    functionName: oidc_util_apr_hash_clear
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 2
    functionsReached:
    - apr_hash_next
    - apr_hash_set
    - apr_hash_this
    - apr_hash_first
    linkageType: ''
    returnType: void
    signature: void oidc_util_apr_hash_clear(apr_hash_t *ht)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/util/util.c:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 659
    functionName: oidc_util_apr_time_from_sec
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 8
    functionsReached:
    - apr_time_from_sec
    linkageType: ''
    returnType: apr_time_t
    signature: apr_time_t oidc_util_apr_time_from_sec(double seconds)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - apr_time_t
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 671
    functionName: oidc_util_apr_time_add
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: apr_time_t
    signature: apr_time_t oidc_util_apr_time_add(apr_time_t a, apr_time_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/util.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 684
    functionName: oidc_util_openssl_version
    functionSourceFile: /src/mod_auth_openidc/src/util/util.c
    functionUses: 3
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_util_openssl_version(apr_pool_t *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/base64.c:52,1
    - Dst: apr_base64_encode_len
      Src: /src/mod_auth_openidc/src/util/base64.c:55,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/util/base64.c:56,1
    - Dst: apr_base64_encode
      Src: /src/mod_auth_openidc/src/util/base64.c:57,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - r
    - dst
    - src
    - src_len
    - padding
    argTypes:
    - request_rec*
    - char**
    - char*
    - int
    - oidc_base64url_padding_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 81
    functionName: oidc_util_base64url_encode
    functionSourceFile: /src/mod_auth_openidc/src/util/base64.c
    functionUses: 9
    functionsReached:
    - apr_palloc
    - apr_base64_encode
    - oidc_error
    - apr_base64_encode_len
    linkageType: ''
    returnType: int
    signature: "int oidc_util_base64url_encode(request_rec *r, char **dst, const char
      *src, int src_len,\n\t\t\t       oidc_base64url_padding_t padding)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/base64.c:90,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/util/base64.c:92,1
    - Dst: apr_base64_decode_len
      Src: /src/mod_auth_openidc/src/util/base64.c:92,1
    - Dst: apr_base64_decode
      Src: /src/mod_auth_openidc/src/util/base64.c:93,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/util/base64.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - pool
    - input
    - output
    - output_len
    argTypes:
    - apr_pool_t*
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: oidc_util_base64_decode
    functionSourceFile: /src/mod_auth_openidc/src/util/base64.c
    functionUses: 3
    functionsReached:
    - apr_base64_decode_len
    - apr_base64_decode
    - apr_psprintf
    - apr_pcalloc
    linkageType: ''
    returnType: char
    signature: char *oidc_util_base64_decode(apr_pool_t *pool, const char *input,
      char **output, int *output_len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/base64.c:106,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/base64.c:117,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/util/base64.c:121,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/util/base64.c:124,1
    - Dst: oidc_util_base64_decode
      Src: /src/mod_auth_openidc/src/util/base64.c:131,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - pool
    - dst
    - src
    argTypes:
    - apr_pool_t*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 133
    functionName: oidc_util_base64url_decode
    functionSourceFile: /src/mod_auth_openidc/src/util/base64.c
    functionUses: 11
    functionsReached:
    - apr_pstrcat
    - _oidc_strlen
    - apr_pstrdup
    - oidc_util_base64_decode
    linkageType: ''
    returnType: int
    signature: int oidc_util_base64url_decode(apr_pool_t *pool, char **dst, const
      char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/key.c:61,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/mod_auth_openidc/src/util/key.c:63,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/key.c:63,1
    - Dst: EVP_sha256
      Src: /src/mod_auth_openidc/src/util/key.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - passphrase
    - out
    - out_len
    argTypes:
    - char*
    - unsigned char*
    - apr_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: oidc_util_key_derive_passphrase_key
    functionSourceFile: /src/mod_auth_openidc/src/util/key.c
    functionUses: 3
    functionsReached:
    - EVP_sha256
    - _oidc_strlen
    - PKCS5_PBKDF2_HMAC
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_util_key_derive_passphrase_key(const char *passphrase,
      unsigned char *out, apr_size_t out_len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/key.c:80,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/key.c:84,1
    - Dst: oidc_jose_hash_bytes
      Src: /src/mod_auth_openidc/src/util/key.c:88,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/key.c:89,1
    - Dst: oidc_jwk_create_symmetric_key
      Src: /src/mod_auth_openidc/src/util/key.c:98,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/key.c:102,1
    - Dst: oidc_jose_e2s
      Src: /src/mod_auth_openidc/src/util/key.c:102,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 6
    argNames:
    - r
    - client_secret
    - r_key_len
    - hash_algo
    - set_kid
    - jwk
    argTypes:
    - request_rec*
    - char*
    - unsigned int
    - char*
    - apr_byte_t
    - oidc_jwk_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 108
    functionName: oidc_util_key_symmetric_create
    functionSourceFile: /src/mod_auth_openidc/src/util/key.c
    functionUses: 34
    functionsReached:
    - _oidc_strlen
    - oidc_error
    - oidc_jose_hash_bytes
    - oidc_jose_e2s
    - oidc_jwk_create_symmetric_key
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_util_key_symmetric_create(request_rec *r, const char
      *client_secret, unsigned int r_key_len,\n\t\t\t\t\t  const char *hash_algo,
      apr_byte_t set_kid, oidc_jwk_t **jwk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/util/key.c:114,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/util/key.c:118,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/util/key.c:120,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/util/key.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pool
    - keys
    - jwk
    argTypes:
    - apr_pool_t*
    - apr_array_header_t*
    - oidc_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 127
    functionName: oidc_util_key_symmetric_merge
    functionSourceFile: /src/mod_auth_openidc/src/util/key.c
    functionUses: 10
    functionsReached:
    - APR_ARRAY_IDX
    - apr_hash_set
    - apr_hash_make
    linkageType: ''
    returnType: apr_hash_t
    signature: apr_hash_t *oidc_util_key_symmetric_merge(apr_pool_t *pool, const apr_array_header_t
      *keys, const oidc_jwk_t *jwk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_copy
      Src: /src/mod_auth_openidc/src/util/key.c:133,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/util/key.c:133,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/util/key.c:137,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/util/key.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pool
    - k1
    - k2
    argTypes:
    - apr_pool_t*
    - apr_hash_t*
    - apr_array_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: oidc_util_key_sets_merge
    functionSourceFile: /src/mod_auth_openidc/src/util/key.c
    functionUses: 3
    functionsReached:
    - APR_ARRAY_IDX
    - apr_hash_copy
    - apr_hash_set
    - apr_hash_make
    linkageType: ''
    returnType: apr_hash_t
    signature: apr_hash_t *oidc_util_key_sets_merge(apr_pool_t *pool, apr_hash_t *k1,
      const apr_array_header_t *k2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/util/key.c:151,1
    - Dst: apr_hash_overlay
      Src: /src/mod_auth_openidc/src/util/key.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pool
    - k1
    - k2
    argTypes:
    - apr_pool_t*
    - apr_hash_t*
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: oidc_util_key_sets_hash_merge
    functionSourceFile: /src/mod_auth_openidc/src/util/key.c
    functionUses: 3
    functionsReached:
    - apr_hash_overlay
    - apr_hash_make
    linkageType: ''
    returnType: apr_hash_t
    signature: apr_hash_t *oidc_util_key_sets_hash_merge(apr_pool_t *pool, apr_hash_t
      *k1, apr_hash_t *k2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/util/key.c:166,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/util/key.c:169,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/key.c:169,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - key_list
    - kty
    - use
    argTypes:
    - apr_array_header_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 175
    functionName: oidc_util_key_list_first
    functionSourceFile: /src/mod_auth_openidc/src/util/key.c
    functionUses: 5
    functionsReached:
    - APR_ARRAY_IDX
    - _oidc_strlen
    - _oidc_strncmp
    linkageType: ''
    returnType: oidc_jwk_t
    signature: oidc_jwk_t *oidc_util_key_list_first(const apr_array_header_t *key_list,
      int kty, const char *use)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pool_userdata_get
      Src: /src/mod_auth_openidc/src/util/request_state.c:72,1
    - Dst: apr_hash_make
      Src: /src/mod_auth_openidc/src/util/request_state.c:76,1
    - Dst: apr_pool_userdata_set
      Src: /src/mod_auth_openidc/src/util/request_state.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - rr
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: oidc_request_state
    functionSourceFile: /src/mod_auth_openidc/src/util/request_state.c
    functionUses: 0
    functionsReached:
    - apr_pool_userdata_get
    - apr_pool_userdata_set
    - apr_hash_make
    linkageType: ''
    returnType: apr_hash_t
    signature: apr_hash_t *oidc_request_state(request_rec *rr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state
      Src: /src/mod_auth_openidc/src/util/request_state.c:91,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/util/request_state.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: oidc_request_state_set
    functionSourceFile: /src/mod_auth_openidc/src/util/request_state.c
    functionUses: 12
    functionsReached:
    - oidc_request_state
    - apr_hash_set
    linkageType: ''
    returnType: void
    signature: void oidc_request_state_set(request_rec *r, const char *key, const
      char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state
      Src: /src/mod_auth_openidc/src/util/request_state.c:104,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/util/request_state.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - key
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: oidc_request_state_get
    functionSourceFile: /src/mod_auth_openidc/src/util/request_state.c
    functionUses: 30
    functionsReached:
    - oidc_request_state
    - apr_hash_get
    linkageType: ''
    returnType: char
    signature: char *oidc_request_state_get(request_rec *r, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state
      Src: /src/mod_auth_openidc/src/util/request_state.c:117,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/util/request_state.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - key
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: oidc_request_state_json_get
    functionSourceFile: /src/mod_auth_openidc/src/util/request_state.c
    functionUses: 3
    functionsReached:
    - oidc_request_state
    - apr_hash_get
    linkageType: ''
    returnType: oidc_json_t
    signature: oidc_json_t *oidc_request_state_json_get(request_rec *r, const char
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_decref
      Src: /src/mod_auth_openidc/src/util/request_state.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - json
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: oidc_request_state_json_cleanup
    functionSourceFile: /src/mod_auth_openidc/src/util/request_state.c
    functionUses: 0
    functionsReached:
    - oidc_json_decref
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_request_state_json_cleanup(void *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state
      Src: /src/mod_auth_openidc/src/util/request_state.c:139,1
    - Dst: apr_pool_cleanup_register
      Src: /src/mod_auth_openidc/src/util/request_state.c:144,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/util/request_state.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 148
    functionName: oidc_request_state_json_set_new
    functionSourceFile: /src/mod_auth_openidc/src/util/request_state.c
    functionUses: 0
    functionsReached:
    - apr_pool_cleanup_register
    - oidc_request_state
    - apr_hash_set
    linkageType: ''
    returnType: void
    signature: void oidc_request_state_json_set_new(request_rec *r, const char *key,
      oidc_json_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_request_state_json_set_new
      Src: /src/mod_auth_openidc/src/util/request_state.c:157,1
    - Dst: oidc_json_copy
      Src: /src/mod_auth_openidc/src/util/request_state.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - oidc_json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: oidc_request_state_json_set
    functionSourceFile: /src/mod_auth_openidc/src/util/request_state.c
    functionUses: 7
    functionsReached:
    - oidc_request_state_json_set_new
    - oidc_json_copy
    linkageType: ''
    returnType: void
    signature: void oidc_request_state_json_set(request_rec *r, const char *key, const
      oidc_json_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jv_parser_next
      Src: /src/mod_auth_openidc/src/util/jq.c:59,1
    - Dst: jv_is_valid
      Src: /src/mod_auth_openidc/src/util/jq.c:60,1
    - Dst: jq_start
      Src: /src/mod_auth_openidc/src/util/jq.c:61,1
    - Dst: jq_next
      Src: /src/mod_auth_openidc/src/util/jq.c:62,1
    - Dst: jv_is_valid
      Src: /src/mod_auth_openidc/src/util/jq.c:63,1
    - Dst: jv_dump_string
      Src: /src/mod_auth_openidc/src/util/jq.c:64,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/util/jq.c:65,1
    - Dst: jv_string_value
      Src: /src/mod_auth_openidc/src/util/jq.c:65,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/jq.c:66,1
    - Dst: jv_free
      Src: /src/mod_auth_openidc/src/util/jq.c:67,1
    - Dst: jq_next
      Src: /src/mod_auth_openidc/src/util/jq.c:68,1
    - Dst: jv_free
      Src: /src/mod_auth_openidc/src/util/jq.c:70,1
    - Dst: jv_parser_next
      Src: /src/mod_auth_openidc/src/util/jq.c:71,1
    - Dst: jv_invalid_has_msg
      Src: /src/mod_auth_openidc/src/util/jq.c:74,1
    - Dst: jv_copy
      Src: /src/mod_auth_openidc/src/util/jq.c:74,1
    - Dst: jv_invalid_get_msg
      Src: /src/mod_auth_openidc/src/util/jq.c:75,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jq.c:76,1
    - Dst: jv_string_value
      Src: /src/mod_auth_openidc/src/util/jq.c:76,1
    - Dst: jv_free
      Src: /src/mod_auth_openidc/src/util/jq.c:77,1
    - Dst: jv_free
      Src: /src/mod_auth_openidc/src/util/jq.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - r
    - jq
    - parser
    argTypes:
    - request_rec*
    - jq_state*
    - struct jv_parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 83
    functionName: oidc_util_jq_exec
    functionSourceFile: /src/mod_auth_openidc/src/util/jq.c
    functionUses: 0
    functionsReached:
    - jv_dump_string
    - apr_pstrdup
    - jv_copy
    - jv_invalid_get_msg
    - oidc_error
    - jv_is_valid
    - jv_parser_next
    - jq_next
    - oidc_debug
    - jq_start
    - jv_string_value
    - jv_invalid_has_msg
    - jv_free
    linkageType: ''
    returnType: char
    signature: char *oidc_util_jq_exec(request_rec *r, jq_state *jq, struct jv_parser
      *parser)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/util/jq.c:92,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/src/util/jq.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: oidc_jq_filter_cache_ttl
    functionSourceFile: /src/mod_auth_openidc/src/util/jq.c
    functionUses: 0
    functionsReached:
    - _oidc_str_to_int
    - apr_table_get
    linkageType: ''
    returnType: int
    signature: int oidc_jq_filter_cache_ttl(const request_rec *r)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/util/jq.c:104,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/jq.c:112,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/jq.c:118,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/jq.c:122,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/jq.c:123,1
    - Dst: oidc_jq_filter_cache_ttl
      Src: /src/mod_auth_openidc/src/util/jq.c:125,1
    - Dst: oidc_util_hash_string_and_base64url_encode
      Src: /src/mod_auth_openidc/src/util/jq.c:127,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/util/jq.c:128,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jq.c:129,1
    - Dst: oidc_cache_get_jq_filter
      Src: /src/mod_auth_openidc/src/util/jq.c:132,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/jq.c:134,1
    - Dst: jq_init
      Src: /src/mod_auth_openidc/src/util/jq.c:140,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jq.c:142,1
    - Dst: jq_compile
      Src: /src/mod_auth_openidc/src/util/jq.c:147,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jq.c:148,1
    - Dst: jv_parser_new
      Src: /src/mod_auth_openidc/src/util/jq.c:153,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/util/jq.c:155,1
    - Dst: jv_parser_set_buf
      Src: /src/mod_auth_openidc/src/util/jq.c:160,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/util/jq.c:160,1
    - Dst: oidc_util_jq_exec
      Src: /src/mod_auth_openidc/src/util/jq.c:162,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/util/jq.c:165,1
    - Dst: oidc_cache_set_jq_filter
      Src: /src/mod_auth_openidc/src/util/jq.c:166,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/util/jq.c:166,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/util/jq.c:166,1
    - Dst: jv_parser_free
      Src: /src/mod_auth_openidc/src/util/jq.c:172,1
    - Dst: jq_teardown
      Src: /src/mod_auth_openidc/src/util/jq.c:174,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/util/jq.c:176,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 3
    argNames:
    - r
    - json
    - filter
    argTypes:
    - request_rec*
    - oidc_json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 180
    functionName: oidc_util_jq_filter
    functionSourceFile: /src/mod_auth_openidc/src/util/jq.c
    functionUses: 4
    functionsReached:
    - _oidc_strlen
    - jv_parser_free
    - oidc_error
    - jq_init
    - jq_compile
    - apr_time_now
    - oidc_debug
    - oidc_json_encode
    - oidc_jq_filter_cache_ttl
    - apr_pstrcat
    - jv_parser_new
    - oidc_cache_get_jq_filter
    - oidc_util_jq_exec
    - jq_teardown
    - oidc_util_hash_string_and_base64url_encode
    - oidc_cache_set_jq_filter
    - jv_parser_set_buf
    - apr_time_from_sec
    linkageType: ''
    returnType: char
    signature: char *oidc_util_jq_filter(request_rec *r, const oidc_json_t *json,
      const char *filter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/file.c:68,1
    - Dst: apr_temp_dir_get
      Src: /src/mod_auth_openidc/src/cache/file.c:71,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/file.c:73,1
    - Dst: oidc_cache_status2str
      Src: /src/mod_auth_openidc/src/cache/file.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: oidc_cache_file_post_config
    functionSourceFile: /src/mod_auth_openidc/src/cache/file.c
    functionUses: 0
    functionsReached:
    - oidc_serror
    - ap_get_module_config
    - oidc_cache_status2str
    - apr_temp_dir_get
    linkageType: ''
    returnType: int
    signature: int oidc_cache_file_post_config(apr_pool_t *pool, server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/file.c:85,1
    - Dst: oidc_http_url_encode
      Src: /src/mod_auth_openidc/src/cache/file.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - section
    - key
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: oidc_cache_file_name
    functionSourceFile: /src/mod_auth_openidc/src/cache/file.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    - oidc_http_url_encode
    linkageType: ''
    returnType: char
    signature: char *oidc_cache_file_name(request_rec *r, const char *section, const
      char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/file.c:92,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/file.c:93,1
    - Dst: oidc_cache_file_name
      Src: /src/mod_auth_openidc/src/cache/file.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - section
    - key
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: oidc_cache_file_path
    functionSourceFile: /src/mod_auth_openidc/src/cache/file.c
    functionUses: 0
    functionsReached:
    - oidc_cache_file_name
    - ap_get_module_config
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_cache_file_path(request_rec *r, const char *section, const
      char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_file_read_full
      Src: /src/mod_auth_openidc/src/cache/file.c:107,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:111,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:111,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - r
    - path
    - fd
    - buf
    - len
    argTypes:
    - request_rec*
    - char*
    - apr_file_t*
    - void*
    - apr_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 124
    functionName: oidc_cache_file_read
    functionSourceFile: /src/mod_auth_openidc/src/cache/file.c
    functionUses: 0
    functionsReached:
    - apr_file_read_full
    - oidc_error
    - apr_strerror
    linkageType: ''
    returnType: apr_status_t
    signature: "apr_status_t oidc_cache_file_read(request_rec *r, const char *path,
      apr_file_t *fd, void *buf,\n\t\t\t\t\t const apr_size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_file_write_full
      Src: /src/mod_auth_openidc/src/cache/file.c:137,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:141,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:141,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - r
    - path
    - fd
    - buf
    - len
    argTypes:
    - request_rec*
    - char*
    - apr_file_t*
    - void*
    - apr_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 155
    functionName: oidc_cache_file_write
    functionSourceFile: /src/mod_auth_openidc/src/cache/file.c
    functionUses: 0
    functionsReached:
    - apr_file_write_full
    - oidc_error
    - apr_strerror
    linkageType: ''
    returnType: apr_status_t
    signature: "apr_status_t oidc_cache_file_write(request_rec *r, const char *path,
      apr_file_t *fd, const void *buf,\n\t\t\t\t\t  const apr_size_t len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_file_path
      Src: /src/mod_auth_openidc/src/cache/file.c:167,1
    - Dst: oidc_util_file_is_regular
      Src: /src/mod_auth_openidc/src/cache/file.c:172,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/file.c:174,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/cache/file.c:176,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/src/cache/file.c:182,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/file.c:183,1
    - Dst: apr_file_lock
      Src: /src/mod_auth_openidc/src/cache/file.c:188,1
    - Dst: apr_file_seek
      Src: /src/mod_auth_openidc/src/cache/file.c:192,1
    - Dst: apr_file_info_get
      Src: /src/mod_auth_openidc/src/cache/file.c:193,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:197,1
    - Dst: oidc_cache_file_read
      Src: /src/mod_auth_openidc/src/cache/file.c:204,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/cache/file.c:208,1
    - Dst: apr_file_unlock
      Src: /src/mod_auth_openidc/src/cache/file.c:214,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/cache/file.c:215,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/file.c:217,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:224,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/cache/file.c:230,1
    - Dst: oidc_cache_file_read
      Src: /src/mod_auth_openidc/src/cache/file.c:233,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:237,1
    - Dst: apr_file_unlock
      Src: /src/mod_auth_openidc/src/cache/file.c:246,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/cache/file.c:247,1
    - Dst: apr_file_unlock
      Src: /src/mod_auth_openidc/src/cache/file.c:253,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/cache/file.c:254,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:256,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:256,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - r
    - section
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 160
    functionDepth: 4
    functionLinenumber: 160
    functionLinenumberEnd: 259
    functionName: oidc_cache_file_get
    functionSourceFile: /src/mod_auth_openidc/src/cache/file.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - apr_file_open
    - apr_file_info_get
    - oidc_error
    - apr_file_seek
    - apr_file_unlock
    - oidc_util_file_is_regular
    - apr_strerror
    - apr_time_now
    - oidc_debug
    - apr_file_close
    - oidc_cache_file_read
    - apr_palloc
    - oidc_cache_file_path
    - apr_file_lock
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_file_get(request_rec *r, const char *section,
      const char *key, char **value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/src/cache/file.c:278,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/src/cache/file.c:279,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:281,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:282,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/cache/file.c:285,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:286,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:287,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/cache/file.c:294,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/cache/file.c:294,1
    - Dst: oidc_cfg_cache_file_clean_interval_get
      Src: /src/mod_auth_openidc/src/cache/file.c:294,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/file.c:295,1
    - Dst: oidc_cfg_cache_file_clean_interval_get
      Src: /src/mod_auth_openidc/src/cache/file.c:298,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/cache/file.c:299,1
    - Dst: apr_time_from_sec
      Src: /src/mod_auth_openidc/src/cache/file.c:299,1
    - Dst: oidc_cfg_cache_file_clean_interval_get
      Src: /src/mod_auth_openidc/src/cache/file.c:299,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/cache/file.c:300,1
    - Dst: apr_file_mtime_set
      Src: /src/mod_auth_openidc/src/cache/file.c:305,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/cache/file.c:305,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/file.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - r
    - cfg
    - metadata_path
    - rc
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - apr_status_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 310
    functionName: oidc_cache_file_clean_due
    functionSourceFile: /src/mod_auth_openidc/src/cache/file.c
    functionUses: 0
    functionsReached:
    - apr_file_open
    - oidc_error
    - apr_time_sec
    - apr_strerror
    - apr_time_now
    - apr_file_close
    - oidc_debug
    - oidc_cfg_cache_file_clean_interval_get
    - apr_file_mtime_set
    - apr_time_from_sec
    - apr_stat
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_file_clean_due(request_rec *r, const oidc_cfg_t
      *cfg, const char *metadata_path,\n\t\t\t\t\t    apr_status_t *rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_stat
      Src: /src/mod_auth_openidc/src/cache/file.c:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - r
    - path
    - ident
    - have_ident
    argTypes:
    - request_rec*
    - char*
    - apr_finfo_t*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 331
    functionName: oidc_cache_file_is_same
    functionSourceFile: /src/mod_auth_openidc/src/cache/file.c
    functionUses: 0
    functionsReached:
    - apr_stat
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_file_is_same(request_rec *r, const char *path,
      const apr_finfo_t *ident,\n\t\t\t\t\t  apr_byte_t have_ident)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strstr
      Src: /src/mod_auth_openidc/src/cache/file.c:346,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cache/file.c:347,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/file.c:351,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/src/cache/file.c:352,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:353,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:353,1
    - Dst: apr_file_info_get
      Src: /src/mod_auth_openidc/src/cache/file.c:358,1
    - Dst: apr_file_lock
      Src: /src/mod_auth_openidc/src/cache/file.c:364,1
    - Dst: oidc_cache_file_read
      Src: /src/mod_auth_openidc/src/cache/file.c:365,1
    - Dst: apr_file_unlock
      Src: /src/mod_auth_openidc/src/cache/file.c:366,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/cache/file.c:368,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:371,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:372,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/cache/file.c:373,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/file.c:377,1
    - Dst: oidc_cache_file_is_same
      Src: /src/mod_auth_openidc/src/cache/file.c:381,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/file.c:382,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/src/cache/file.c:387,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:389,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - r
    - cfg
    - metadata_filename
    - fi
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - char*
    - apr_finfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 391
    functionName: oidc_cache_file_clean_entry
    functionSourceFile: /src/mod_auth_openidc/src/cache/file.c
    functionUses: 0
    functionsReached:
    - oidc_cache_file_is_same
    - apr_file_open
    - apr_file_info_get
    - oidc_error
    - apr_strerror
    - apr_file_unlock
    - apr_time_now
    - apr_file_remove
    - apr_file_close
    - oidc_debug
    - oidc_cache_file_read
    - apr_psprintf
    - _oidc_strstr
    - apr_file_lock
    - _oidc_strcmp
    linkageType: ''
    returnType: void
    signature: "void oidc_cache_file_clean_entry(request_rec *r, oidc_cfg_t *cfg,
      const char *metadata_filename,\n\t\t\t\t\tconst apr_finfo_t *fi)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/file.c:403,1
    - Dst: oidc_cache_file_path
      Src: /src/mod_auth_openidc/src/cache/file.c:406,1
    - Dst: oidc_cache_file_clean_due
      Src: /src/mod_auth_openidc/src/cache/file.c:409,1
    - Dst: apr_dir_open
      Src: /src/mod_auth_openidc/src/cache/file.c:413,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:414,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:415,1
    - Dst: oidc_cache_file_name
      Src: /src/mod_auth_openidc/src/cache/file.c:419,1
    - Dst: apr_dir_read
      Src: /src/mod_auth_openidc/src/cache/file.c:423,1
    - Dst: oidc_cache_file_clean_entry
      Src: /src/mod_auth_openidc/src/cache/file.c:425,1
    - Dst: apr_dir_close
      Src: /src/mod_auth_openidc/src/cache/file.c:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - r
    argTypes:
    - request_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 396
    functionDepth: 4
    functionLinenumber: 396
    functionLinenumberEnd: 431
    functionName: oidc_cache_file_clean
    functionSourceFile: /src/mod_auth_openidc/src/cache/file.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - oidc_error
    - apr_strerror
    - oidc_cache_file_clean_entry
    - oidc_cache_file_clean_due
    - apr_dir_close
    - apr_dir_read
    - apr_dir_open
    - oidc_cache_file_name
    - oidc_cache_file_path
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_cache_file_clean(request_rec *r)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_rand_str
      Src: /src/mod_auth_openidc/src/cache/file.c:443,1
    - Dst: oidc_cache_file_path
      Src: /src/mod_auth_openidc/src/cache/file.c:447,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/file.c:448,1
    - Dst: oidc_cache_file_clean
      Src: /src/mod_auth_openidc/src/cache/file.c:451,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/src/cache/file.c:455,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:456,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:457,1
    - Dst: apr_file_open
      Src: /src/mod_auth_openidc/src/cache/file.c:464,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:466,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:467,1
    - Dst: apr_file_lock
      Src: /src/mod_auth_openidc/src/cache/file.c:472,1
    - Dst: apr_file_trunc
      Src: /src/mod_auth_openidc/src/cache/file.c:474,1
    - Dst: apr_file_seek
      Src: /src/mod_auth_openidc/src/cache/file.c:475,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/file.c:480,1
    - Dst: oidc_cache_file_write
      Src: /src/mod_auth_openidc/src/cache/file.c:485,1
    - Dst: oidc_cache_file_write
      Src: /src/mod_auth_openidc/src/cache/file.c:488,1
    - Dst: apr_file_unlock
      Src: /src/mod_auth_openidc/src/cache/file.c:492,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/cache/file.c:493,1
    - Dst: apr_file_rename
      Src: /src/mod_auth_openidc/src/cache/file.c:495,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/file.c:496,1
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/file.c:497,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/src/cache/file.c:498,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/file.c:502,1
    - Dst: apr_file_unlock
      Src: /src/mod_auth_openidc/src/cache/file.c:509,1
    - Dst: apr_file_close
      Src: /src/mod_auth_openidc/src/cache/file.c:510,1
    - Dst: apr_file_remove
      Src: /src/mod_auth_openidc/src/cache/file.c:511,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 5
    argNames:
    - r
    - section
    - key
    - value
    - expiry
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 436
    functionDepth: 5
    functionLinenumber: 436
    functionLinenumberEnd: 514
    functionName: oidc_cache_file_set
    functionSourceFile: /src/mod_auth_openidc/src/cache/file.c
    functionUses: 0
    functionsReached:
    - apr_file_open
    - _oidc_strlen
    - oidc_error
    - apr_strerror
    - oidc_util_rand_str
    - apr_file_seek
    - apr_file_unlock
    - apr_file_remove
    - oidc_cache_file_write
    - apr_file_close
    - oidc_debug
    - apr_file_rename
    - apr_psprintf
    - oidc_cache_file_clean
    - apr_file_trunc
    - oidc_cache_file_path
    - apr_file_lock
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_file_set(request_rec *r, const char *section,
      const char *key, const char *value,\n\t\t\t\t      apr_time_t expiry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cache/common.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - global
    argTypes:
    - apr_pool_t*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: oidc_cache_mutex_create
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 4
    functionsReached:
    - apr_pcalloc
    linkageType: ''
    returnType: oidc_cache_mutex_t
    signature: oidc_cache_mutex_t *oidc_cache_mutex_create(apr_pool_t *pool, apr_byte_t
      global)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/common.c:80,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cache/common.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - statcode
    argTypes:
    - apr_pool_t*
    - apr_status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: oidc_cache_status2str
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 3
    functionsReached:
    - apr_pstrdup
    - apr_strerror
    linkageType: ''
    returnType: char
    signature: char *oidc_cache_status2str(apr_pool_t *p, apr_status_t statcode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_temp_dir_get
      Src: /src/mod_auth_openidc/src/cache/common.c:94,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/common.c:96,1
    - Dst: oidc_cache_status2str
      Src: /src/mod_auth_openidc/src/cache/common.c:97,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/common.c:102,1
    - Dst: getpid
      Src: /src/mod_auth_openidc/src/cache/common.c:102,1
    - Dst: apr_global_mutex_create
      Src: /src/mod_auth_openidc/src/cache/common.c:119,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/common.c:122,1
    - Dst: oidc_cache_status2str
      Src: /src/mod_auth_openidc/src/cache/common.c:123,1
    - Dst: ap_unixd_set_global_mutex_perms
      Src: /src/mod_auth_openidc/src/cache/common.c:129,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/common.c:131,1
    - Dst: oidc_cache_status2str
      Src: /src/mod_auth_openidc/src/cache/common.c:132,1
    - Dst: oidc_slog
      Src: /src/mod_auth_openidc/src/cache/common.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - pool
    - s
    - m
    - type
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cache_mutex_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 140
    functionName: oidc_cache_mutex_global_create
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 0
    functionsReached:
    - oidc_serror
    - oidc_cache_status2str
    - apr_temp_dir_get
    - getpid
    - apr_global_mutex_create
    - oidc_slog
    - ap_unixd_set_global_mutex_perms
    - apr_psprintf
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_mutex_global_create(apr_pool_t *pool, server_rec
      *s, oidc_cache_mutex_t *m,\n\t\t\t\t\t\t const char *type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_mutex_global_create
      Src: /src/mod_auth_openidc/src/cache/common.c:150,1
    - Dst: apr_thread_mutex_create
      Src: /src/mod_auth_openidc/src/cache/common.c:155,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/common.c:157,1
    - Dst: oidc_cache_status2str
      Src: /src/mod_auth_openidc/src/cache/common.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - pool
    - s
    - m
    - type
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cache_mutex_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 165
    functionName: oidc_cache_mutex_post_config
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 4
    functionsReached:
    - oidc_serror
    - oidc_cache_mutex_global_create
    - oidc_cache_status2str
    - apr_thread_mutex_create
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_mutex_post_config(apr_pool_t *pool, server_rec
      *s, oidc_cache_mutex_t *m, const char *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_slog
      Src: /src/mod_auth_openidc/src/cache/common.c:172,1
    - Dst: apr_global_mutex_child_init
      Src: /src/mod_auth_openidc/src/cache/common.c:181,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/common.c:183,1
    - Dst: oidc_cache_status2str
      Src: /src/mod_auth_openidc/src/cache/common.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - p
    - s
    - m
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cache_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 193
    functionName: oidc_cache_mutex_child_init
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 3
    functionsReached:
    - oidc_serror
    - apr_global_mutex_child_init
    - oidc_cache_status2str
    - oidc_slog
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_cache_mutex_child_init(apr_pool_t *p, server_rec
      *s, oidc_cache_mutex_t *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_global_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/common.c:203,1
    - Dst: apr_thread_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/common.c:205,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/common.c:208,1
    - Dst: oidc_cache_status2str
      Src: /src/mod_auth_openidc/src/cache/common.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pool
    - s
    - m
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cache_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 215
    functionName: oidc_cache_mutex_lock
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 8
    functionsReached:
    - oidc_serror
    - apr_thread_mutex_lock
    - apr_global_mutex_lock
    - oidc_cache_status2str
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_mutex_lock(apr_pool_t *pool, server_rec *s, oidc_cache_mutex_t
      *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_global_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/common.c:225,1
    - Dst: apr_thread_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/common.c:227,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/common.c:230,1
    - Dst: oidc_cache_status2str
      Src: /src/mod_auth_openidc/src/cache/common.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pool
    - s
    - m
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cache_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 236
    functionName: oidc_cache_mutex_unlock
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 8
    functionsReached:
    - apr_thread_mutex_unlock
    - oidc_serror
    - apr_global_mutex_unlock
    - oidc_cache_status2str
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_mutex_unlock(apr_pool_t *pool, server_rec *s,
      oidc_cache_mutex_t *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_slog
      Src: /src/mod_auth_openidc/src/cache/common.c:245,1
    - Dst: apr_global_mutex_destroy
      Src: /src/mod_auth_openidc/src/cache/common.c:249,1
    - Dst: apr_thread_mutex_destroy
      Src: /src/mod_auth_openidc/src/cache/common.c:252,1
    - Dst: oidc_sdebug
      Src: /src/mod_auth_openidc/src/cache/common.c:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - s
    - m
    argTypes:
    - server_rec*
    - oidc_cache_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 259
    functionName: oidc_cache_mutex_destroy
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 5
    functionsReached:
    - apr_thread_mutex_destroy
    - apr_global_mutex_destroy
    - oidc_sdebug
    - oidc_slog
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_mutex_destroy(server_rec *s, oidc_cache_mutex_t
      *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_jwt_create
      Src: /src/mod_auth_openidc/src/cache/common.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - plaintext
    - passphrase
    - result
    argTypes:
    - request_rec*
    - char*
    - oidc_crypto_passphrase_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: oidc_cache_crypto_encrypt
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 0
    functionsReached:
    - oidc_util_jwt_create
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_crypto_encrypt(request_rec *r, const char *plaintext,\n\t\t\t\t\t\t
      \  const oidc_crypto_passphrase_t *passphrase, char **result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/cache/common.c:278,1
    - Dst: oidc_util_jwt_verify
      Src: /src/mod_auth_openidc/src/cache/common.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - r
    - cache_value
    - cfg_passphrase
    - use_secondary
    - plaintext
    argTypes:
    - request_rec*
    - char*
    - oidc_crypto_passphrase_t*
    - apr_byte_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 270
    functionDepth: 7
    functionLinenumber: 270
    functionLinenumberEnd: 284
    functionName: oidc_cache_crypto_decrypt
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 0
    functionsReached:
    - _oidc_memcpy
    - oidc_util_jwt_verify
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_crypto_decrypt(request_rec *r, const char *cache_value,\n\t\t\t\t\t\t
      \  const oidc_crypto_passphrase_t *cfg_passphrase,\n\t\t\t\t\t\t   apr_byte_t
      use_secondary, char **plaintext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/common.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - section
    - key
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: oidc_cache_section_key
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: char
    signature: char *oidc_cache_section_key(apr_pool_t *pool, const char *section,
      const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_util_hash_string_and_base64url_encode
      Src: /src/mod_auth_openidc/src/cache/common.c:299,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/common.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - key
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: oidc_cache_get_hashed_key
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 0
    functionsReached:
    - oidc_util_hash_string_and_base64url_encode
    - oidc_error
    linkageType: ''
    returnType: char
    signature: char *oidc_cache_get_hashed_key(request_rec *r, const char *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/common.c:314,1
    - Dst: oidc_cache_get_hashed_key
      Src: /src/mod_auth_openidc/src/cache/common.c:317,1
    - Dst: oidc_cache_section_key
      Src: /src/mod_auth_openidc/src/cache/common.c:317,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/common.c:318,1
    - Dst: oidc_cache_get_hashed_key
      Src: /src/mod_auth_openidc/src/cache/common.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - r
    - s_key
    - s_secret
    - encrypted
    - r_key
    argTypes:
    - request_rec*
    - char*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 324
    functionName: oidc_cache_get_key
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_cache_get_hashed_key
    - oidc_error
    - oidc_cache_section_key
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_get_key(request_rec *r, const char *s_key, const
      char *s_secret, int encrypted,\n\t\t\t\t\t    const char **r_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/cache/common.c:332,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/common.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - section
    argTypes:
    - request_rec*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: oidc_cache_section_get
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    - apr_table_get
    linkageType: ''
    returnType: char
    signature: char *oidc_cache_section_get(request_rec *r, const char *section)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/common.c:341,1
    - Dst: oidc_cfg_cache_encrypt_get
      Src: /src/mod_auth_openidc/src/cache/common.c:342,1
    - Dst: oidc_cache_section_get
      Src: /src/mod_auth_openidc/src/cache/common.c:349,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/common.c:351,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/cache/common.c:351,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/src/cache/common.c:354,1
    - Dst: oidc_cache_get_key
      Src: /src/mod_auth_openidc/src/cache/common.c:355,1
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/src/cache/common.c:358,1
    - Dst: oidc_cfg_t*::cache::impl::get
      Src: /src/mod_auth_openidc/src/cache/common.c:361,1
    - Dst: oidc_cfg_crypto_passphrase_secret2_get
      Src: /src/mod_auth_openidc/src/cache/common.c:365,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/common.c:366,1
    - Dst: oidc_cfg_crypto_passphrase_secret2_get
      Src: /src/mod_auth_openidc/src/cache/common.c:367,1
    - Dst: oidc_cache_get_key
      Src: /src/mod_auth_openidc/src/cache/common.c:369,1
    - Dst: oidc_cfg_t*::cache::impl::get
      Src: /src/mod_auth_openidc/src/cache/common.c:371,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/src/cache/common.c:375,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cache/common.c:384,1
    - Dst: oidc_cache_crypto_decrypt
      Src: /src/mod_auth_openidc/src/cache/common.c:388,1
    - Dst: oidc_cfg_crypto_passphrase_get
      Src: /src/mod_auth_openidc/src/cache/common.c:388,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/common.c:393,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/cache/common.c:394,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/common.c:398,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/common.c:398,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/common.c:400,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/cache/common.c:402,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/cache/common.c:403,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 4
    argNames:
    - r
    - section
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 339
    functionDepth: 8
    functionLinenumber: 339
    functionLinenumberEnd: 407
    functionName: oidc_cache_get
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 23
    functionsReached:
    - oidc_util_mask_value
    - oidc_warn
    - oidc_cache_section_get
    - ap_get_module_config
    - apr_pstrdup
    - _oidc_strlen
    - OIDC_METRICS_COUNTER_INC
    - oidc_debug
    - oidc_cfg_cache_encrypt_get
    - OIDC_METRICS_TIMING_START
    - oidc_cfg_crypto_passphrase_secret2_get
    - OIDC_METRICS_TIMING_ADD
    - oidc_cache_crypto_decrypt
    - oidc_cfg_crypto_passphrase_get
    - apr_psprintf
    - oidc_cfg_t*::cache::impl::get
    - oidc_cfg_crypto_passphrase_secret1_get
    - oidc_cache_get_key
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_get(request_rec *r, const char *section, const
      char *key, char **value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/common.c:414,1
    - Dst: oidc_cfg_cache_encrypt_get
      Src: /src/mod_auth_openidc/src/cache/common.c:415,1
    - Dst: oidc_cache_section_get
      Src: /src/mod_auth_openidc/src/cache/common.c:420,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/common.c:422,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/cache/common.c:423,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/common.c:423,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/cache/common.c:424,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/cache/common.c:424,1
    - Dst: oidc_cache_get_key
      Src: /src/mod_auth_openidc/src/cache/common.c:426,1
    - Dst: oidc_cfg_crypto_passphrase_secret1_get
      Src: /src/mod_auth_openidc/src/cache/common.c:426,1
    - Dst: oidc_cache_crypto_encrypt
      Src: /src/mod_auth_openidc/src/cache/common.c:431,1
    - Dst: oidc_cfg_crypto_passphrase_get
      Src: /src/mod_auth_openidc/src/cache/common.c:431,1
    - Dst: OIDC_METRICS_TIMING_START
      Src: /src/mod_auth_openidc/src/cache/common.c:436,1
    - Dst: oidc_cfg_t*::cache::impl::set
      Src: /src/mod_auth_openidc/src/cache/common.c:439,1
    - Dst: OIDC_METRICS_TIMING_ADD
      Src: /src/mod_auth_openidc/src/cache/common.c:441,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/common.c:446,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/common.c:446,1
    - Dst: oidc_util_mask_value
      Src: /src/mod_auth_openidc/src/cache/common.c:448,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/common.c:450,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/cache/common.c:452,1
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/cache/common.c:453,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - r
    - section
    - key
    - value
    - expiry
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 412
    functionDepth: 5
    functionLinenumber: 412
    functionLinenumberEnd: 457
    functionName: oidc_cache_set
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 22
    functionsReached:
    - oidc_util_mask_value
    - oidc_warn
    - oidc_cache_section_get
    - ap_get_module_config
    - _oidc_strlen
    - apr_time_sec
    - oidc_cfg_t*::cache::impl::set
    - apr_time_now
    - oidc_cache_crypto_encrypt
    - oidc_debug
    - OIDC_METRICS_COUNTER_INC
    - oidc_cfg_cache_encrypt_get
    - oidc_cfg_crypto_passphrase_get
    - OIDC_METRICS_TIMING_START
    - OIDC_METRICS_TIMING_ADD
    - apr_psprintf
    - oidc_cfg_crypto_passphrase_secret1_get
    - oidc_cache_get_key
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_set(request_rec *r, const char *section, const
      char *key, const char *value, apr_time_t expiry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cache/common.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 482
    functionName: oidc_cache_backend_get
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 2
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: oidc_cache_t
    signature: oidc_cache_t *oidc_cache_backend_get(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cache/common.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 498
    functionName: oidc_cache_backend_names
    functionSourceFile: /src/mod_auth_openidc/src/cache/common.c
    functionUses: 2
    functionsReached:
    - apr_pcalloc
    linkageType: ''
    returnType: char
    signature: char **oidc_cache_backend_names(apr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cache/memcache.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: oidc_cache_memcache_cfg_create
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 0
    functionsReached:
    - apr_pcalloc
    linkageType: ''
    returnType: void
    signature: void *oidc_cache_memcache_cfg_create(apr_pool_t *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: apr_parse_addr_port
      Src: /src/mod_auth_openidc/src/cache/memcache.c:78,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/memcache.c:80,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/memcache.c:85,1
    - Dst: oidc_sdebug
      Src: /src/mod_auth_openidc/src/cache/memcache.c:92,1
    - Dst: apr_memcache_server_create
      Src: /src/mod_auth_openidc/src/cache/memcache.c:96,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/memcache.c:98,1
    - Dst: apr_memcache_add_server
      Src: /src/mod_auth_openidc/src/cache/memcache.c:103,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/memcache.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 8
    argNames:
    - s
    - p
    - context
    - split
    - min
    - smax
    - hmax
    - ttl
    argTypes:
    - server_rec*
    - apr_pool_t*
    - oidc_cache_cfg_memcache_t*
    - char*
    - apr_uint32_t
    - apr_uint32_t
    - apr_uint32_t
    - apr_interval_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 110
    functionName: oidc_cache_memcache_add_server_impl
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 0
    functionsReached:
    - oidc_serror
    - apr_memcache_server_create
    - apr_parse_addr_port
    - apr_memcache_add_server
    - oidc_sdebug
    linkageType: ''
    returnType: int
    signature: "int oidc_cache_memcache_add_server_impl(server_rec *s, apr_pool_t
      *p, oidc_cache_cfg_memcache_t *context,\n\t\t\t\t\t       char *split, apr_uint32_t
      min, apr_uint32_t smax, apr_uint32_t hmax,\n\t\t\t\t\t       apr_interval_time_t
      ttl)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_memcache_cfg_create
      Src: /src/mod_auth_openidc/src/cache/memcache.c:117,1
    - Dst: APR_OPTIONAL_FN_TYPE
      Src: /src/mod_auth_openidc/src/cache/memcache.c:124,1
    - Dst: oidc_cfg_cache_memcache_servers_get
      Src: /src/mod_auth_openidc/src/cache/memcache.c:133,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/memcache.c:134,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cache/memcache.c:140,1
    - Dst: oidc_cfg_cache_memcache_servers_get
      Src: /src/mod_auth_openidc/src/cache/memcache.c:140,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/cache/memcache.c:141,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/cache/memcache.c:144,1
    - Dst: apr_memcache_create
      Src: /src/mod_auth_openidc/src/cache/memcache.c:148,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/memcache.c:150,1
    - Dst: ap_mpm_query
      Src: /src/mod_auth_openidc/src/cache/memcache.c:158,1
    - Dst: APR_RETRIEVE_OPTIONAL_FN
      Src: /src/mod_auth_openidc/src/cache/memcache.c:159,1
    - Dst: get_h2_num_workers
      Src: /src/mod_auth_openidc/src/cache/memcache.c:161,1
    - Dst: oidc_cfg_cache_memcache_min_get
      Src: /src/mod_auth_openidc/src/cache/memcache.c:168,1
    - Dst: oidc_cfg_cache_memcache_smax_get
      Src: /src/mod_auth_openidc/src/cache/memcache.c:169,1
    - Dst: oidc_cfg_cache_memcache_hmax_get
      Src: /src/mod_auth_openidc/src/cache/memcache.c:170,1
    - Dst: oidc_cfg_cache_memcache_ttl_get
      Src: /src/mod_auth_openidc/src/cache/memcache.c:171,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 3
    argNames:
    - pool
    - s
    - cfg
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cfg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 201
    functionName: oidc_cache_memcache_post_config
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 3
    functionsReached:
    - get_h2_num_workers
    - oidc_serror
    - apr_pstrdup
    - oidc_cfg_cache_memcache_hmax_get
    - ap_mpm_query
    - oidc_cfg_cache_memcache_smax_get
    - oidc_cache_memcache_cfg_create
    - APR_RETRIEVE_OPTIONAL_FN
    - oidc_cfg_cache_memcache_ttl_get
    - apr_memcache_create
    - APR_OPTIONAL_FN_TYPE
    - oidc_cfg_cache_memcache_servers_get
    - oidc_cfg_cache_memcache_min_get
    - apr_strtok
    linkageType: ''
    returnType: int
    signature: int oidc_cache_memcache_post_config(apr_pool_t *pool, server_rec *s,
      oidc_cfg_t *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cache/memcache.c:209,1
    - Dst: oidc_cfg_cache_memcache_servers_get
      Src: /src/mod_auth_openidc/src/cache/memcache.c:209,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/cache/memcache.c:210,1
    - Dst: oidc_cache_cfg_memcache_t*::add_server
      Src: /src/mod_auth_openidc/src/cache/memcache.c:212,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/cache/memcache.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - pool
    - s
    - cfg
    - context
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cfg_t*
    - oidc_cache_cfg_memcache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 220
    functionName: oidc_cache_memcache_add_servers
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 1
    functionsReached:
    - oidc_cfg_cache_memcache_servers_get
    - apr_pstrdup
    - apr_strtok
    - oidc_cache_cfg_memcache_t*::add_server
    linkageType: ''
    returnType: int
    signature: "int oidc_cache_memcache_add_servers(apr_pool_t *pool, server_rec *s,
      const oidc_cfg_t *cfg,\n\t\t\t\t    oidc_cache_cfg_memcache_t *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/memcache.c:234,1
    - Dst: oidc_cache_memcache_post_config
      Src: /src/mod_auth_openidc/src/cache/memcache.c:239,1
    - Dst: oidc_cache_memcache_add_servers
      Src: /src/mod_auth_openidc/src/cache/memcache.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 252
    functionName: oidc_cache_memcache_post_config_hook
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 0
    functionsReached:
    - oidc_cache_memcache_add_servers
    - ap_get_module_config
    - oidc_cache_memcache_post_config
    linkageType: ''
    returnType: int
    signature: int oidc_cache_memcache_post_config_hook(apr_pool_t *pool, server_rec
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_strerror
      Src: /src/mod_auth_openidc/src/cache/memcache.c:261,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/memcache.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - s
    - rv
    argTypes:
    - request_rec*
    - char*
    - apr_status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: oidc_cache_memcache_log_status_error
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 0
    functionsReached:
    - oidc_error
    - apr_strerror
    linkageType: ''
    returnType: void
    signature: void oidc_cache_memcache_log_status_error(request_rec *r, const char
      *s, apr_status_t rv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_section_key
      Src: /src/mod_auth_openidc/src/cache/memcache.c:271,1
    - Dst: oidc_util_hash_string_and_base64url_encode
      Src: /src/mod_auth_openidc/src/cache/memcache.c:275,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/memcache.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - r
    - section
    - key
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 280
    functionName: oidc_cache_memcache_get_key
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 0
    functionsReached:
    - oidc_util_hash_string_and_base64url_encode
    - oidc_error
    - oidc_cache_section_key
    linkageType: ''
    returnType: char
    signature: char *oidc_cache_memcache_get_key(request_rec *r, const char *section,
      const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - context
    argTypes:
    - oidc_cache_cfg_memcache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: oidc_cache_memcache_status_impl
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_memcache_status_impl(const oidc_cache_cfg_memcache_t
      *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_memcache_getp
      Src: /src/mod_auth_openidc/src/cache/memcache.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - context
    - p
    - key
    - baton
    - len
    argTypes:
    - oidc_cache_cfg_memcache_t*
    - apr_pool_t*
    - char*
    - char**
    - apr_size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: oidc_cache_memcache_getp_impl
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 0
    functionsReached:
    - apr_memcache_getp
    linkageType: ''
    returnType: apr_status_t
    signature: "apr_status_t oidc_cache_memcache_getp_impl(oidc_cache_cfg_memcache_t
      *context, apr_pool_t *p, const char *key,\n\t\t\t\t\t\t  char **baton, apr_size_t
      *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_memcache_set
      Src: /src/mod_auth_openidc/src/cache/memcache.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - context
    - key
    - baton
    - len
    - timeout
    argTypes:
    - oidc_cache_cfg_memcache_t*
    - char*
    - char*
    - apr_size_t
    - apr_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: oidc_cache_memcache_set_impl
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 0
    functionsReached:
    - apr_memcache_set
    linkageType: ''
    returnType: apr_status_t
    signature: "apr_status_t oidc_cache_memcache_set_impl(oidc_cache_cfg_memcache_t
      *context, const char *key, char *baton,\n\t\t\t\t\t\t apr_size_t len, apr_uint32_t
      timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_memcache_delete
      Src: /src/mod_auth_openidc/src/cache/memcache.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - key
    argTypes:
    - oidc_cache_cfg_memcache_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: oidc_cache_memcache_delete_impl
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 0
    functionsReached:
    - apr_memcache_delete
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_cache_memcache_delete_impl(oidc_cache_cfg_memcache_t
      *context, const char *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/memcache.c:315,1
    - Dst: oidc_cache_memcache_get_key
      Src: /src/mod_auth_openidc/src/cache/memcache.c:320,1
    - Dst: oidc_cache_cfg_memcache_t*::getp
      Src: /src/mod_auth_openidc/src/cache/memcache.c:325,1
    - Dst: oidc_cache_cfg_memcache_t*::status
      Src: /src/mod_auth_openidc/src/cache/memcache.c:332,1
    - Dst: oidc_cache_memcache_log_status_error
      Src: /src/mod_auth_openidc/src/cache/memcache.c:334,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/memcache.c:339,1
    - Dst: oidc_cache_memcache_log_status_error
      Src: /src/mod_auth_openidc/src/cache/memcache.c:345,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/memcache.c:351,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/memcache.c:352,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/memcache.c:355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - r
    - section
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 313
    functionDepth: 4
    functionLinenumber: 313
    functionLinenumberEnd: 360
    functionName: oidc_cache_memcache_get
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 6
    functionsReached:
    - _oidc_strlen
    - ap_get_module_config
    - oidc_error
    - oidc_cache_cfg_memcache_t*::getp
    - oidc_cache_memcache_get_key
    - oidc_debug
    - oidc_cache_cfg_memcache_t*::status
    - oidc_cache_memcache_log_status_error
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_memcache_get(request_rec *r, const char *section,
      const char *key, char **value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/memcache.c:368,1
    - Dst: oidc_cache_memcache_get_key
      Src: /src/mod_auth_openidc/src/cache/memcache.c:373,1
    - Dst: oidc_cache_cfg_memcache_t*::del
      Src: /src/mod_auth_openidc/src/cache/memcache.c:380,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/memcache.c:383,1
    - Dst: oidc_cache_memcache_log_status_error
      Src: /src/mod_auth_openidc/src/cache/memcache.c:386,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/cache/memcache.c:392,1
    - Dst: oidc_cache_cfg_memcache_t*::set
      Src: /src/mod_auth_openidc/src/cache/memcache.c:395,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/memcache.c:395,1
    - Dst: oidc_cache_memcache_log_status_error
      Src: /src/mod_auth_openidc/src/cache/memcache.c:398,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - r
    - section
    - key
    - value
    - expiry
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 403
    functionName: oidc_cache_memcache_set
    functionSourceFile: /src/mod_auth_openidc/src/cache/memcache.c
    functionUses: 4
    functionsReached:
    - _oidc_strlen
    - ap_get_module_config
    - apr_time_sec
    - oidc_cache_cfg_memcache_t*::del
    - oidc_debug
    - oidc_cache_memcache_get_key
    - oidc_cache_cfg_memcache_t*::set
    - oidc_cache_memcache_log_status_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_memcache_set(request_rec *r, const char *section,
      const char *key, const char *value,\n\t\t\t\t   apr_time_t expiry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: oidc_cache_get_session
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_session(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: oidc_cache_get_nonce
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_nonce(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: oidc_cache_get_jwks
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_jwks(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: oidc_cache_get_access_token
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_access_token(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: oidc_cache_get_refresh_token
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_refresh_token(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: oidc_cache_get_provider
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_provider(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: oidc_cache_get_oauth_provider
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_oauth_provider(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: oidc_cache_get_jti
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_jti(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: oidc_cache_get_request_uri
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_request_uri(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: oidc_cache_get_sid
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_sid(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: oidc_cache_get_signed_jwt
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_signed_jwt(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: oidc_cache_get_jq_filter
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_get_jq_filter(r, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: oidc_cache_set_session
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_session(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: oidc_cache_set_nonce
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_nonce(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: oidc_cache_set_jwks
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_jwks(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: oidc_cache_set_access_token
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_access_token(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: oidc_cache_set_refresh_token
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_refresh_token(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: oidc_cache_set_provider
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_provider(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: oidc_cache_set_oauth_provider
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_oauth_provider(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: oidc_cache_set_jti
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_jti(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: oidc_cache_set_request_uri
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_request_uri(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: oidc_cache_set_sid
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_sid(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: oidc_cache_set_signed_jwt
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_signed_jwt(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - key
    - ','
    - value
    - ','
    - expiry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: oidc_cache_set_jq_filter
    functionSourceFile: /src/mod_auth_openidc/src/cache/cache.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cache_set_jq_filter(r, key, value, expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cache/redis.c:58,1
    - Dst: oidc_cache_mutex_create
      Src: /src/mod_auth_openidc/src/cache/redis.c:59,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/src/cache/redis.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: oidc_cache_redis_cfg_create
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - oidc_cache_mutex_create
    - getenv
    - apr_pcalloc
    linkageType: ''
    returnType: oidc_cache_cfg_redis_t
    signature: oidc_cache_cfg_redis_t *oidc_cache_redis_cfg_create(apr_pool_t *pool)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_redis_cfg_create
      Src: /src/mod_auth_openidc/src/cache/redis.c:81,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/redis.c:86,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cache/redis.c:92,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cache/redis.c:95,1
    - Dst: oidc_cfg_cache_redis_database_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:98,1
    - Dst: oidc_cfg_cache_redis_database_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:99,1
    - Dst: oidc_cfg_cache_redis_connect_timeout_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:101,1
    - Dst: oidc_cfg_cache_redis_connect_timeout_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:102,1
    - Dst: oidc_cfg_cache_redis_keepalive_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:104,1
    - Dst: oidc_cfg_cache_redis_keepalive_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:105,1
    - Dst: oidc_cfg_cache_redis_timeout_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:107,1
    - Dst: oidc_cfg_cache_redis_timeout_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:108,1
    - Dst: oidc_cache_mutex_post_config
      Src: /src/mod_auth_openidc/src/cache/redis.c:110,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - pool
    - s
    - cfg
    - name
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cfg_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 114
    functionName: oidc_cache_redis_post_config
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 3
    functionsReached:
    - oidc_serror
    - apr_pstrdup
    - oidc_cache_redis_cfg_create
    - oidc_cfg_cache_redis_database_get
    - oidc_cfg_cache_redis_keepalive_get
    - oidc_cfg_cache_redis_timeout_get
    - oidc_cache_mutex_post_config
    - oidc_cfg_cache_redis_connect_timeout_get
    linkageType: ''
    returnType: int
    signature: int oidc_cache_redis_post_config(apr_pool_t *pool, server_rec *s, oidc_cfg_t
      *cfg, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisFree
      Src: /src/mod_auth_openidc/src/cache/redis.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - context
    argTypes:
    - oidc_cache_cfg_redis_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: oidc_cache_redis_disconnect
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 1
    functionsReached:
    - redisFree
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_cache_redis_disconnect(oidc_cache_cfg_redis_t *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/cache/redis.c:144,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cache/redis.c:144,1
    - Dst: strrchr
      Src: /src/mod_auth_openidc/src/cache/redis.c:146,1
    - Dst: apr_pstrcat
      Src: /src/mod_auth_openidc/src/cache/redis.c:147,1
    - Dst: apr_strtok
      Src: /src/mod_auth_openidc/src/cache/redis.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pool
    - str
    argTypes:
    - apr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 153
    functionName: oidc_cache_redis_redact
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 1
    functionsReached:
    - apr_pstrcat
    - apr_pstrdup
    - apr_strtok
    - strrchr
    linkageType: ''
    returnType: char
    signature: char *oidc_cache_redis_redact(apr_pool_t *pool, const char *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/redis.c:163,1
    - Dst: oidc_cache_redis_post_config
      Src: /src/mod_auth_openidc/src/cache/redis.c:168,1
    - Dst: apr_parse_addr_port
      Src: /src/mod_auth_openidc/src/cache/redis.c:175,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/redis.c:177,1
    - Dst: oidc_cache_redis_redact
      Src: /src/mod_auth_openidc/src/cache/redis.c:178,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/redis.c:183,1
    - Dst: oidc_cache_redis_redact
      Src: /src/mod_auth_openidc/src/cache/redis.c:184,1
    - Dst: getenv
      Src: /src/mod_auth_openidc/src/cache/redis.c:194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 160
    functionDepth: 4
    functionLinenumber: 160
    functionLinenumberEnd: 197
    functionName: oidc_cache_redis_post_config_hook
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - oidc_serror
    - oidc_cache_redis_post_config
    - ap_get_module_config
    - oidc_cache_redis_redact
    - apr_parse_addr_port
    - getenv
    linkageType: ''
    returnType: int
    signature: int oidc_cache_redis_post_config_hook(apr_pool_t *pool, server_rec
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/redis.c:203,1
    - Dst: oidc_slog
      Src: /src/mod_auth_openidc/src/cache/redis.c:206,1
    - Dst: oidc_cache_mutex_child_init
      Src: /src/mod_auth_openidc/src/cache/redis.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: oidc_cache_redis_child_init
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 6
    functionsReached:
    - ap_get_module_config
    - oidc_cache_mutex_child_init
    - oidc_slog
    linkageType: ''
    returnType: int
    signature: int oidc_cache_redis_child_init(apr_pool_t *p, server_rec *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freeReplyObject
      Src: /src/mod_auth_openidc/src/cache/redis.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - reply
    argTypes:
    - redisReply**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: oidc_cache_redis_reply_free
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - freeReplyObject
    linkageType: ''
    returnType: void
    signature: void oidc_cache_redis_reply_free(redisReply **reply)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/redis.c:231,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/redis.c:238,1
    - Dst: redisEnableKeepAlive
      Src: /src/mod_auth_openidc/src/cache/redis.c:239,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/redis.c:240,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/redis.c:246,1
    - Dst: redisEnableKeepAliveWithInterval
      Src: /src/mod_auth_openidc/src/cache/redis.c:247,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/redis.c:248,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/redis.c:255,1
    - Dst: redisEnableKeepAlive
      Src: /src/mod_auth_openidc/src/cache/redis.c:256,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/redis.c:257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - r
    - rctx
    - keepalive
    argTypes:
    - request_rec*
    - redisContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 266
    functionName: oidc_cache_redis_set_keepalive
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 2
    functionsReached:
    - redisEnableKeepAlive
    - redisEnableKeepAliveWithInterval
    - oidc_debug
    - oidc_error
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_redis_set_keepalive(request_rec *r, redisContext
      *rctx, const int keepalive)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: redisCommand
      Src: /src/mod_auth_openidc/src/cache/redis.c:276,1
    - Dst: redisCommand
      Src: /src/mod_auth_openidc/src/cache/redis.c:278,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/redis.c:281,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/redis.c:286,1
    - Dst: oidc_cache_redis_reply_free
      Src: /src/mod_auth_openidc/src/cache/redis.c:290,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - r
    - rctx
    - username
    - password
    argTypes:
    - request_rec*
    - redisContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 293
    functionName: oidc_cache_redis_set_auth
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 2
    functionsReached:
    - oidc_debug
    - oidc_cache_redis_reply_free
    - oidc_error
    - redisCommand
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_redis_set_auth(request_rec *r, redisContext *rctx,
      const char *username, const char *password)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: redisCommand
      Src: /src/mod_auth_openidc/src/cache/redis.c:302,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/redis.c:304,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/redis.c:309,1
    - Dst: oidc_cache_redis_reply_free
      Src: /src/mod_auth_openidc/src/cache/redis.c:314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - r
    - rctx
    - database
    argTypes:
    - request_rec*
    - redisContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 317
    functionName: oidc_cache_redis_set_database
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 2
    functionsReached:
    - oidc_debug
    - oidc_cache_redis_reply_free
    - oidc_error
    - redisCommand
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_redis_set_database(request_rec *r, redisContext
      *rctx, const int database)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/redis.c:323,1
    - Dst: redisConnectWithTimeout
      Src: /src/mod_auth_openidc/src/cache/redis.c:324,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/redis.c:327,1
    - Dst: redisFree
      Src: /src/mod_auth_openidc/src/cache/redis.c:330,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/redis.c:334,1
    - Dst: redisSetTimeout
      Src: /src/mod_auth_openidc/src/cache/redis.c:336,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/redis.c:337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - r
    - host
    - port
    - ct
    - t
    - msg
    argTypes:
    - request_rec*
    - char*
    - int
    - struct timeval
    - struct timeval
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 340
    functionName: oidc_cache_redis_connect_with_timeout
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 1
    functionsReached:
    - oidc_error
    - redisSetTimeout
    - oidc_debug
    - redisFree
    - redisConnectWithTimeout
    linkageType: ''
    returnType: redisContext
    signature: "redisContext *oidc_cache_redis_connect_with_timeout(request_rec *r,
      const char *host, int port, struct timeval ct,\n\t\t\t\t\t\t    struct timeval
      t, const char *msg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/redis.c:360,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/redis.c:365,1
    - Dst: redisFree
      Src: /src/mod_auth_openidc/src/cache/redis.c:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 374
    functionName: oidc_cache_redis_conn_return
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - redisFree
    - oidc_cache_mutex_unlock
    - oidc_cache_mutex_lock
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_cache_redis_conn_return(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_pool_userdata_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:379,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cache/redis.c:381,1
    - Dst: apr_pool_userdata_set
      Src: /src/mod_auth_openidc/src/cache/redis.c:385,1
    - Dst: apr_pool_cleanup_register
      Src: /src/mod_auth_openidc/src/cache/redis.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - r
    - context
    argTypes:
    - request_rec*
    - oidc_cache_cfg_redis_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 389
    functionName: oidc_cache_redis_conn_get
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - apr_pool_cleanup_register
    - apr_pool_userdata_get
    - apr_pcalloc
    - apr_pool_userdata_set
    linkageType: ''
    returnType: oidc_cache_redis_conn_t
    signature: oidc_cache_redis_conn_t *oidc_cache_redis_conn_get(request_rec *r,
      oidc_cache_cfg_redis_t *context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_redis_connect_with_timeout
      Src: /src/mod_auth_openidc/src/cache/redis.c:397,1
    - Dst: oidc_cache_redis_set_keepalive
      Src: /src/mod_auth_openidc/src/cache/redis.c:402,1
    - Dst: oidc_cache_redis_set_auth
      Src: /src/mod_auth_openidc/src/cache/redis.c:405,1
    - Dst: oidc_cache_redis_set_database
      Src: /src/mod_auth_openidc/src/cache/redis.c:408,1
    - Dst: redisFree
      Src: /src/mod_auth_openidc/src/cache/redis.c:416,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - r
    - context
    - rctx
    argTypes:
    - request_rec*
    - oidc_cache_cfg_redis_t*
    - redisContext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 421
    functionName: oidc_cache_redis_rctx_connect
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - oidc_cache_redis_set_auth
    - oidc_cache_redis_set_keepalive
    - redisFree
    - oidc_cache_redis_connect_with_timeout
    - oidc_cache_redis_set_database
    linkageType: ''
    returnType: apr_status_t
    signature: "apr_status_t oidc_cache_redis_rctx_connect(request_rec *r, const oidc_cache_cfg_redis_t
      *context,\n\t\t\t\t\t\t  redisContext **rctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_redis_rctx_connect
      Src: /src/mod_auth_openidc/src/cache/redis.c:434,1
    - Dst: oidc_cache_redis_conn_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:437,1
    - Dst: redisFree
      Src: /src/mod_auth_openidc/src/cache/redis.c:443,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/redis.c:448,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/redis.c:451,1
    - Dst: redisFree
      Src: /src/mod_auth_openidc/src/cache/redis.c:457,1
    - Dst: oidc_cache_redis_rctx_connect
      Src: /src/mod_auth_openidc/src/cache/redis.c:461,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - r
    - context
    argTypes:
    - request_rec*
    - oidc_cache_cfg_redis_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 462
    functionName: oidc_cache_redis_connect
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - oidc_cache_mutex_unlock
    - oidc_cache_redis_rctx_connect
    - oidc_cache_redis_conn_get
    - oidc_cache_mutex_lock
    - redisFree
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_cache_redis_connect(request_rec *r, oidc_cache_cfg_redis_t
      *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/redis.c:466,1
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/redis.c:469,1
    - Dst: redisFree
      Src: /src/mod_auth_openidc/src/cache/redis.c:471,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/redis.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - r
    - context
    argTypes:
    - request_rec*
    - oidc_cache_cfg_redis_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 473
    functionName: oidc_cache_redis_idle_flush
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - redisFree
    - oidc_cache_mutex_unlock
    - oidc_debug
    - oidc_cache_mutex_lock
    linkageType: ''
    returnType: void
    signature: void oidc_cache_redis_idle_flush(request_rec *r, oidc_cache_cfg_redis_t
      *context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_redis_conn_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:481,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cache/redis.c:484,1
    - Dst: redisvCommand
      Src: /src/mod_auth_openidc/src/cache/redis.c:488,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cache/redis.c:489,1
    - Dst: oidc_cache_redis_conn_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:495,1
    - Dst: redisFree
      Src: /src/mod_auth_openidc/src/cache/redis.c:496,1
    - Dst: oidc_cache_redis_idle_flush
      Src: /src/mod_auth_openidc/src/cache/redis.c:499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - r
    - context
    - errstr
    - format
    - ap
    argTypes:
    - request_rec*
    - oidc_cache_cfg_redis_t*
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 503
    functionName: oidc_cache_redis_command
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - oidc_cache_redis_idle_flush
    - apr_pstrdup
    - redisvCommand
    - oidc_cache_redis_conn_get
    - redisFree
    linkageType: ''
    returnType: redisReply
    signature: "redisReply *oidc_cache_redis_command(request_rec *r, oidc_cache_cfg_redis_t
      *context, char **errstr, const char *format,\n\t\t\t\t     va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_table_get
      Src: /src/mod_auth_openidc/src/cache/redis.c:506,1
    - Dst: _oidc_str_to_int
      Src: /src/mod_auth_openidc/src/cache/redis.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - env_var_name
    - default_value
    argTypes:
    - request_rec*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 508
    functionName: oidc_cache_redis_env2int
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - _oidc_str_to_int
    - apr_table_get
    linkageType: ''
    returnType: int
    signature: int oidc_cache_redis_env2int(const request_rec *r, const char *env_var_name,
      const int default_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - r
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 522
    functionName: OIDC_REDIS_WARN_OR_ERROR
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_REDIS_WARN_OR_ERROR(cond, r, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_debug
      Src: /src/mod_auth_openidc/src/cache/redis.c:525,1
    - Dst: apr_time_as_msec
      Src: /src/mod_auth_openidc/src/cache/redis.c:525,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/redis.c:527,1
    - Dst: apr_sleep
      Src: /src/mod_auth_openidc/src/cache/redis.c:528,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/redis.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - r
    - context
    - interval
    argTypes:
    - request_rec*
    - oidc_cache_cfg_redis_t*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 532
    functionName: oidc_cache_redis_backoff
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - apr_sleep
    - oidc_cache_mutex_unlock
    - oidc_debug
    - apr_time_as_msec
    - oidc_cache_mutex_lock
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_redis_backoff(request_rec *r, const oidc_cache_cfg_redis_t
      *context, apr_time_t interval)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/redis.c:544,1
    - Dst: oidc_cache_redis_env2int
      Src: /src/mod_auth_openidc/src/cache/redis.c:545,1
    - Dst: apr_time_from_msec
      Src: /src/mod_auth_openidc/src/cache/redis.c:546,1
    - Dst: oidc_cache_redis_env2int
      Src: /src/mod_auth_openidc/src/cache/redis.c:547,1
    - Dst: OIDC_METRICS_COUNTER_INC
      Src: /src/mod_auth_openidc/src/cache/redis.c:553,1
    - Dst: oidc_cache_cfg_redis_t*::connect
      Src: /src/mod_auth_openidc/src/cache/redis.c:556,1
    - Dst: OIDC_REDIS_WARN_OR_ERROR
      Src: /src/mod_auth_openidc/src/cache/redis.c:557,1
    - Dst: oidc_cache_redis_backoff
      Src: /src/mod_auth_openidc/src/cache/redis.c:559,1
    - Dst: va_start
      Src: /src/mod_auth_openidc/src/cache/redis.c:566,1
    - Dst: oidc_cache_cfg_redis_t*::command
      Src: /src/mod_auth_openidc/src/cache/redis.c:568,1
    - Dst: va_end
      Src: /src/mod_auth_openidc/src/cache/redis.c:569,1
    - Dst: OIDC_REDIS_WARN_OR_ERROR
      Src: /src/mod_auth_openidc/src/cache/redis.c:577,1
    - Dst: oidc_cache_redis_reply_free
      Src: /src/mod_auth_openidc/src/cache/redis.c:582,1
    - Dst: oidc_cache_cfg_redis_t*::disconnect
      Src: /src/mod_auth_openidc/src/cache/redis.c:585,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - r
    - context
    - mutex_held
    - format
    argTypes:
    - request_rec*
    - oidc_cache_cfg_redis_t*
    - apr_byte_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 589
    functionName: oidc_cache_redis_exec
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - va_end
    - oidc_cache_redis_backoff
    - apr_time_from_msec
    - OIDC_METRICS_COUNTER_INC
    - oidc_cache_redis_reply_free
    - oidc_cache_cfg_redis_t*::connect
    - oidc_cache_cfg_redis_t*::disconnect
    - va_start
    - oidc_cache_redis_env2int
    - OIDC_REDIS_WARN_OR_ERROR
    - oidc_cache_cfg_redis_t*::command
    linkageType: ''
    returnType: redisReply
    signature: "redisReply *oidc_cache_redis_exec(request_rec *r, oidc_cache_cfg_redis_t
      *context, apr_byte_t *mutex_held,\n\t\t\t\t\t const char *format, ...)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/redis.c:596,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/redis.c:604,1
    - Dst: oidc_cache_redis_exec
      Src: /src/mod_auth_openidc/src/cache/redis.c:608,1
    - Dst: oidc_cache_section_key
      Src: /src/mod_auth_openidc/src/cache/redis.c:608,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/redis.c:621,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/redis.c:627,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/redis.c:628,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/redis.c:629,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cache/redis.c:634,1
    - Dst: oidc_cache_redis_reply_free
      Src: /src/mod_auth_openidc/src/cache/redis.c:642,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/redis.c:646,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 4
    argNames:
    - r
    - section
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 594
    functionDepth: 4
    functionLinenumber: 594
    functionLinenumberEnd: 650
    functionName: oidc_cache_redis_get
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 13
    functionsReached:
    - _oidc_strlen
    - ap_get_module_config
    - oidc_error
    - apr_pstrdup
    - oidc_cache_mutex_unlock
    - oidc_cache_redis_reply_free
    - oidc_cache_section_key
    - oidc_cache_redis_exec
    - oidc_cache_mutex_lock
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_redis_get(request_rec *r, const char *section,
      const char *key, char **value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/redis.c:658,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/redis.c:667,1
    - Dst: oidc_cache_redis_exec
      Src: /src/mod_auth_openidc/src/cache/redis.c:674,1
    - Dst: oidc_cache_section_key
      Src: /src/mod_auth_openidc/src/cache/redis.c:675,1
    - Dst: apr_time_sec
      Src: /src/mod_auth_openidc/src/cache/redis.c:680,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/cache/redis.c:680,1
    - Dst: oidc_cache_redis_exec
      Src: /src/mod_auth_openidc/src/cache/redis.c:683,1
    - Dst: oidc_cache_section_key
      Src: /src/mod_auth_openidc/src/cache/redis.c:684,1
    - Dst: oidc_cache_redis_reply_free
      Src: /src/mod_auth_openidc/src/cache/redis.c:690,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/redis.c:694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - r
    - section
    - key
    - value
    - expiry
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 655
    functionDepth: 4
    functionLinenumber: 655
    functionLinenumberEnd: 698
    functionName: oidc_cache_redis_set
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 8
    functionsReached:
    - oidc_cache_mutex_unlock
    - ap_get_module_config
    - apr_time_sec
    - apr_time_now
    - oidc_cache_redis_reply_free
    - oidc_cache_section_key
    - oidc_cache_redis_exec
    - oidc_cache_mutex_lock
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_redis_set(request_rec *r, const char *section,
      const char *key, const char *value,\n\t\t\t\tapr_time_t expiry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/redis.c:701,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/redis.c:705,1
    - Dst: oidc_cache_cfg_redis_t*::disconnect
      Src: /src/mod_auth_openidc/src/cache/redis.c:706,1
    - Dst: redisFree
      Src: /src/mod_auth_openidc/src/cache/redis.c:709,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/redis.c:711,1
    - Dst: oidc_cache_mutex_destroy
      Src: /src/mod_auth_openidc/src/cache/redis.c:712,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/redis.c:713,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 719
    functionName: oidc_cache_redis_destroy
    functionSourceFile: /src/mod_auth_openidc/src/cache/redis.c
    functionUses: 0
    functionsReached:
    - oidc_serror
    - oidc_cache_mutex_unlock
    - ap_get_module_config
    - oidc_cache_cfg_redis_t*::disconnect
    - oidc_cache_mutex_lock
    - redisFree
    - oidc_cache_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int oidc_cache_redis_destroy(apr_pool_t *pool, server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APR_ALIGN
      Src: /src/mod_auth_openidc/src/cache/shm.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - oidc_cache_shm_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: oidc_cache_shm_buckets
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - APR_ALIGN
    linkageType: ''
    returnType: apr_uint32_t
    signature: apr_uint32_t *oidc_cache_shm_buckets(oidc_cache_shm_header_t *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_shm_buckets
      Src: /src/mod_auth_openidc/src/cache/shm.c:107,1
    - Dst: APR_ALIGN
      Src: /src/mod_auth_openidc/src/cache/shm.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hdr
    - idx
    argTypes:
    - oidc_cache_shm_header_t*
    - apr_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: oidc_cache_shm_slot
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_shm_buckets
    - APR_ALIGN
    linkageType: ''
    returnType: oidc_cache_shm_entry_t
    signature: oidc_cache_shm_entry_t *oidc_cache_shm_slot(oidc_cache_shm_header_t
      *hdr, apr_uint32_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APR_ALIGN
      Src: /src/mod_auth_openidc/src/cache/shm.c:117,1
    - Dst: apr_shm_baseaddr_get
      Src: /src/mod_auth_openidc/src/cache/shm.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - oidc_cache_cfg_shm_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: oidc_cache_shm_base
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - apr_shm_baseaddr_get
    - APR_ALIGN
    linkageType: ''
    returnType: oidc_cache_shm_header_t
    signature: oidc_cache_shm_header_t *oidc_cache_shm_base(const oidc_cache_cfg_shm_t
      *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 4
    argNames:
    - size_max
    - entry_size_max
    - nbuckets
    - result
    argTypes:
    - int
    - int
    - apr_uint32_t
    - apr_size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: oidc_cache_shm_segment_size
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_shm_segment_size(int size_max, int entry_size_max,
      apr_uint32_t nbuckets, apr_size_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - apr_uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: oidc_cache_shm_rotate_left
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_uint64_t
    signature: apr_uint64_t oidc_cache_shm_rotate_left(apr_uint64_t v, unsigned int
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: oidc_cache_shm_load64_le
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: apr_uint64_t
    signature: apr_uint64_t oidc_cache_shm_load64_le(const unsigned char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - v0
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 164
    functionName: OIDC_CACHE_SHM_SIPROUND
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OIDC_CACHE_SHM_SIPROUND(v0, v1, v2, v3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_shm_load64_le
      Src: /src/mod_auth_openidc/src/cache/shm.c:176,1
    - Dst: OIDC_CACHE_SHM_SIPROUND
      Src: /src/mod_auth_openidc/src/cache/shm.c:178,1
    - Dst: OIDC_CACHE_SHM_SIPROUND
      Src: /src/mod_auth_openidc/src/cache/shm.c:179,1
    - Dst: OIDC_CACHE_SHM_SIPROUND
      Src: /src/mod_auth_openidc/src/cache/shm.c:187,1
    - Dst: OIDC_CACHE_SHM_SIPROUND
      Src: /src/mod_auth_openidc/src/cache/shm.c:188,1
    - Dst: OIDC_CACHE_SHM_SIPROUND
      Src: /src/mod_auth_openidc/src/cache/shm.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - data
    - len
    - key
    argTypes:
    - unsigned char*
    - apr_size_t
    - apr_uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 194
    functionName: oidc_cache_shm_siphash
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 1
    functionsReached:
    - OIDC_CACHE_SHM_SIPROUND
    - oidc_cache_shm_load64_le
    linkageType: ''
    returnType: apr_uint64_t
    signature: apr_uint64_t oidc_cache_shm_siphash(const unsigned char *data, apr_size_t
      len, const apr_uint64_t key[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_shm_siphash
      Src: /src/mod_auth_openidc/src/cache/shm.c:197,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/shm.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - key
    argTypes:
    - char*
    - apr_uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: oidc_cache_shm_hash
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_cache_shm_siphash
    linkageType: ''
    returnType: apr_uint64_t
    signature: apr_uint64_t oidc_cache_shm_hash(const char *s, const apr_uint64_t
      key[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry_size_max
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: oidc_cache_shm_value_size_max
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: apr_ssize_t
    signature: apr_ssize_t oidc_cache_shm_value_size_max(int entry_size_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - hdr
    - t
    - idx
    argTypes:
    - oidc_cache_shm_header_t*
    - oidc_cache_shm_entry_t*
    - apr_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: oidc_cache_shm_slot_free
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void oidc_cache_shm_slot_free(oidc_cache_shm_header_t *hdr, oidc_cache_shm_entry_t
      *t, apr_uint32_t idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_shm_buckets
      Src: /src/mod_auth_openidc/src/cache/shm.c:217,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:218,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/shm.c:220,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:223,1
    - Dst: oidc_cache_shm_hash
      Src: /src/mod_auth_openidc/src/cache/shm.c:225,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/shm.c:227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - r
    - hdr
    - visited
    - error
    argTypes:
    - request_rec*
    - oidc_cache_shm_header_t*
    - apr_byte_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 234
    functionName: oidc_cache_shm_validate_buckets
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_shm_slot
    - oidc_cache_shm_hash
    - oidc_cache_shm_buckets
    - apr_psprintf
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_shm_validate_buckets(request_rec *r, oidc_cache_shm_header_t
      *hdr, apr_byte_t *visited,\n\t\t\t\t\t\t  const char **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:238,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:240,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/shm.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - r
    - hdr
    - visited
    - error
    argTypes:
    - request_rec*
    - oidc_cache_shm_header_t*
    - apr_byte_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 247
    functionName: oidc_cache_shm_validate_free_list
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_shm_slot
    - apr_psprintf
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_shm_validate_free_list(request_rec *r, oidc_cache_shm_header_t
      *hdr, apr_byte_t *visited,\n\t\t\t\t\t\t    const char **error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/cache/shm.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - r
    - hdr
    - visited
    - error
    argTypes:
    - request_rec*
    - oidc_cache_shm_header_t*
    - apr_byte_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 258
    functionName: oidc_cache_shm_validate_ownership
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - apr_psprintf
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_shm_validate_ownership(request_rec *r, const
      oidc_cache_shm_header_t *hdr,\n\t\t\t\t\t\t    const apr_byte_t *visited, const
      char **error)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/shm.c:265,1
    - Dst: oidc_cache_shm_base
      Src: /src/mod_auth_openidc/src/cache/shm.c:267,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/shm.c:271,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cache/shm.c:273,1
    - Dst: oidc_cache_shm_validate_buckets
      Src: /src/mod_auth_openidc/src/cache/shm.c:274,1
    - Dst: oidc_cache_shm_validate_free_list
      Src: /src/mod_auth_openidc/src/cache/shm.c:275,1
    - Dst: oidc_cache_shm_validate_ownership
      Src: /src/mod_auth_openidc/src/cache/shm.c:276,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/shm.c:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - r
    - error
    argTypes:
    - request_rec*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 280
    functionName: oidc_cache_shm_validate
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 5
    functionsReached:
    - oidc_cache_shm_validate_ownership
    - ap_get_module_config
    - oidc_cache_mutex_unlock
    - oidc_cache_shm_base
    - oidc_cache_shm_validate_free_list
    - oidc_cache_mutex_lock
    - apr_pcalloc
    - oidc_cache_shm_validate_buckets
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_shm_validate(request_rec *r, const char **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/cache/shm.c:284,1
    - Dst: oidc_cache_mutex_create
      Src: /src/mod_auth_openidc/src/cache/shm.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 289
    functionName: oidc_cache_shm_cfg_create
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_mutex_create
    - apr_pcalloc
    linkageType: ''
    returnType: void
    signature: void *oidc_cache_shm_cfg_create(apr_pool_t *pool)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/shm.c:295,1
    - Dst: oidc_cfg_cache_shm_size_max_get
      Src: /src/mod_auth_openidc/src/cache/shm.c:296,1
    - Dst: oidc_cfg_cache_shm_entry_size_max_get
      Src: /src/mod_auth_openidc/src/cache/shm.c:297,1
    - Dst: oidc_cache_shm_cfg_create
      Src: /src/mod_auth_openidc/src/cache/shm.c:301,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/shm.c:309,1
    - Dst: oidc_cache_shm_segment_size
      Src: /src/mod_auth_openidc/src/cache/shm.c:314,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/shm.c:315,1
    - Dst: apr_shm_create
      Src: /src/mod_auth_openidc/src/cache/shm.c:323,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/shm.c:325,1
    - Dst: oidc_cache_shm_base
      Src: /src/mod_auth_openidc/src/cache/shm.c:330,1
    - Dst: APR_ALIGN
      Src: /src/mod_auth_openidc/src/cache/shm.c:334,1
    - Dst: apr_generate_random_bytes
      Src: /src/mod_auth_openidc/src/cache/shm.c:335,1
    - Dst: oidc_serror
      Src: /src/mod_auth_openidc/src/cache/shm.c:336,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/cache/shm.c:340,1
    - Dst: oidc_cache_shm_buckets
      Src: /src/mod_auth_openidc/src/cache/shm.c:340,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:342,1
    - Dst: oidc_cache_mutex_post_config
      Src: /src/mod_auth_openidc/src/cache/shm.c:349,1
    - Dst: oidc_sdebug
      Src: /src/mod_auth_openidc/src/cache/shm.c:353,1
    - Dst: oidc_slog
      Src: /src/mod_auth_openidc/src/cache/shm.c:358,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 362
    functionName: oidc_cache_shm_post_config
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_serror
    - _oidc_memset
    - ap_get_module_config
    - oidc_cache_shm_buckets
    - oidc_cache_shm_cfg_create
    - oidc_cache_shm_base
    - oidc_cfg_cache_shm_size_max_get
    - oidc_cache_shm_segment_size
    - apr_shm_create
    - apr_generate_random_bytes
    - oidc_cache_mutex_post_config
    - oidc_cache_shm_slot
    - oidc_slog
    - oidc_sdebug
    - oidc_cfg_cache_shm_entry_size_max_get
    - APR_ALIGN
    linkageType: ''
    returnType: int
    signature: int oidc_cache_shm_post_config(apr_pool_t *pool, server_rec *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/shm.c:368,1
    - Dst: oidc_slog
      Src: /src/mod_auth_openidc/src/cache/shm.c:371,1
    - Dst: oidc_cache_mutex_child_init
      Src: /src/mod_auth_openidc/src/cache/shm.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 379
    functionName: oidc_cache_shm_child_init
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - ap_get_module_config
    - oidc_cache_mutex_child_init
    - oidc_slog
    linkageType: ''
    returnType: int
    signature: int oidc_cache_shm_child_init(apr_pool_t *p, server_rec *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_section_key
      Src: /src/mod_auth_openidc/src/cache/shm.c:386,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/shm.c:389,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/shm.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - r
    - section
    - key
    argTypes:
    - request_rec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: oidc_cache_shm_get_key
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - _oidc_strlen
    - oidc_error
    - oidc_cache_section_key
    linkageType: ''
    returnType: char
    signature: char *oidc_cache_shm_get_key(request_rec *r, const char *section, const
      char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:402,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/cache/shm.c:403,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - hdr
    - bucket
    - section_key
    - prev
    argTypes:
    - oidc_cache_shm_header_t*
    - apr_uint32_t*
    - char*
    - apr_uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: oidc_cache_shm_find
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_shm_slot
    - _oidc_strcmp
    linkageType: ''
    returnType: apr_uint32_t
    signature: "apr_uint32_t oidc_cache_shm_find(oidc_cache_shm_header_t *hdr, const
      apr_uint32_t *bucket,\n\t\t\t\t\tconst char *section_key, apr_uint32_t *prev)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/shm.c:415,1
    - Dst: oidc_cache_shm_get_key
      Src: /src/mod_auth_openidc/src/cache/shm.c:418,1
    - Dst: oidc_cache_shm_base
      Src: /src/mod_auth_openidc/src/cache/shm.c:423,1
    - Dst: oidc_cache_shm_hash
      Src: /src/mod_auth_openidc/src/cache/shm.c:424,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/shm.c:427,1
    - Dst: oidc_cache_shm_buckets
      Src: /src/mod_auth_openidc/src/cache/shm.c:430,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/cache/shm.c:431,1
    - Dst: oidc_cache_shm_find
      Src: /src/mod_auth_openidc/src/cache/shm.c:433,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:435,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/cache/shm.c:439,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:442,1
    - Dst: oidc_cache_shm_slot_free
      Src: /src/mod_auth_openidc/src/cache/shm.c:445,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/shm.c:448,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - r
    - section
    - key
    - value
    argTypes:
    - request_rec*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 413
    functionDepth: 3
    functionLinenumber: 413
    functionLinenumberEnd: 449
    functionName: oidc_cache_shm_get
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_shm_get_key
    - apr_pstrdup
    - ap_get_module_config
    - oidc_cache_shm_buckets
    - oidc_cache_mutex_unlock
    - oidc_cache_shm_base
    - oidc_cache_shm_find
    - oidc_cache_shm_hash
    - apr_time_now
    - oidc_cache_shm_slot
    - oidc_cache_mutex_lock
    - oidc_cache_shm_slot_free
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_shm_get(request_rec *r, const char *section,
      const char *key, char **value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:455,1
    - Dst: oidc_cache_shm_hash
      Src: /src/mod_auth_openidc/src/cache/shm.c:456,1
    - Dst: oidc_cache_shm_buckets
      Src: /src/mod_auth_openidc/src/cache/shm.c:457,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:459,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - hdr
    - idx
    argTypes:
    - oidc_cache_shm_header_t*
    - apr_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 470
    functionName: oidc_cache_shm_unlink
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_shm_slot
    - oidc_cache_shm_hash
    - oidc_cache_shm_buckets
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_cache_shm_unlink(oidc_cache_shm_header_t *hdr, apr_uint32_t
      idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:480,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:496,1
    - Dst: oidc_cache_shm_unlink
      Src: /src/mod_auth_openidc/src/cache/shm.c:506,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 3
    argNames:
    - hdr
    - current_time
    - pressure_age
    argTypes:
    - oidc_cache_shm_header_t*
    - apr_time_t
    - apr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 473
    functionDepth: 4
    functionLinenumber: 473
    functionLinenumberEnd: 510
    functionName: oidc_cache_shm_evict
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_shm_slot
    - oidc_cache_shm_unlink
    linkageType: ''
    returnType: apr_uint32_t
    signature: "apr_uint32_t oidc_cache_shm_evict(oidc_cache_shm_header_t *hdr, apr_time_t
      current_time,\n\t\t\t\t\t apr_time_t *pressure_age)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:514,1
    - Dst: _oidc_strcpy
      Src: /src/mod_auth_openidc/src/cache/shm.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hdr
    - idx
    - value
    - expiry
    - access
    argTypes:
    - oidc_cache_shm_header_t*
    - apr_uint32_t
    - char*
    - apr_time_t
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: oidc_cache_shm_entry_update
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_shm_slot
    - _oidc_strcpy
    linkageType: ''
    returnType: void
    signature: "void oidc_cache_shm_entry_update(oidc_cache_shm_header_t *hdr, apr_uint32_t
      idx, const char *value,\n\t\t\t\t\tapr_time_t expiry, apr_time_t access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:523,1
    - Dst: _oidc_strncpy
      Src: /src/mod_auth_openidc/src/cache/shm.c:526,1
    - Dst: oidc_cache_shm_entry_update
      Src: /src/mod_auth_openidc/src/cache/shm.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - hdr
    - bucket
    - idx
    - section_key
    - value
    - expiry
    - access
    argTypes:
    - oidc_cache_shm_header_t*
    - apr_uint32_t*
    - apr_uint32_t
    - char*
    - char*
    - apr_time_t
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 529
    functionName: oidc_cache_shm_entry_insert
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_shm_slot
    - oidc_cache_shm_entry_update
    - _oidc_strncpy
    linkageType: ''
    returnType: void
    signature: "void oidc_cache_shm_entry_insert(oidc_cache_shm_header_t *hdr, apr_uint32_t
      *bucket, apr_uint32_t idx,\n\t\t\t\t\tconst char *section_key, const char *value,
      apr_time_t expiry,\n\t\t\t\t\tapr_time_t access)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_warn
      Src: /src/mod_auth_openidc/src/cache/shm.c:534,1
    - Dst: oidc_cfg_cache_shm_size_max_get
      Src: /src/mod_auth_openidc/src/cache/shm.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - r
    - cfg
    - pressure_age
    argTypes:
    - request_rec*
    - oidc_cfg_t*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 539
    functionName: oidc_cache_shm_warn_pressure
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_warn
    - oidc_cfg_cache_shm_size_max_get
    linkageType: ''
    returnType: void
    signature: void oidc_cache_shm_warn_pressure(request_rec *r, const oidc_cfg_t
      *cfg, apr_time_t pressure_age)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/shm.c:547,1
    - Dst: oidc_cfg_cache_shm_entry_size_max_get
      Src: /src/mod_auth_openidc/src/cache/shm.c:549,1
    - Dst: oidc_cache_shm_get_key
      Src: /src/mod_auth_openidc/src/cache/shm.c:551,1
    - Dst: oidc_cache_shm_value_size_max
      Src: /src/mod_auth_openidc/src/cache/shm.c:556,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/cache/shm.c:557,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/shm.c:562,1
    - Dst: oidc_cache_shm_base
      Src: /src/mod_auth_openidc/src/cache/shm.c:569,1
    - Dst: oidc_cache_shm_hash
      Src: /src/mod_auth_openidc/src/cache/shm.c:570,1
    - Dst: oidc_cache_shm_buckets
      Src: /src/mod_auth_openidc/src/cache/shm.c:572,1
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/shm.c:573,1
    - Dst: oidc_cache_shm_find
      Src: /src/mod_auth_openidc/src/cache/shm.c:577,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:580,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:582,1
    - Dst: oidc_cache_shm_slot_free
      Src: /src/mod_auth_openidc/src/cache/shm.c:585,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/shm.c:587,1
    - Dst: apr_time_now
      Src: /src/mod_auth_openidc/src/cache/shm.c:590,1
    - Dst: oidc_cache_shm_entry_update
      Src: /src/mod_auth_openidc/src/cache/shm.c:593,1
    - Dst: oidc_cache_shm_slot
      Src: /src/mod_auth_openidc/src/cache/shm.c:597,1
    - Dst: oidc_cache_shm_evict
      Src: /src/mod_auth_openidc/src/cache/shm.c:599,1
    - Dst: oidc_cache_shm_entry_insert
      Src: /src/mod_auth_openidc/src/cache/shm.c:602,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/shm.c:605,1
    - Dst: oidc_error
      Src: /src/mod_auth_openidc/src/cache/shm.c:607,1
    - Dst: oidc_cache_shm_warn_pressure
      Src: /src/mod_auth_openidc/src/cache/shm.c:612,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 5
    argNames:
    - r
    - section
    - key
    - value
    - expiry
    argTypes:
    - request_rec*
    - char*
    - char*
    - char*
    - apr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 544
    functionDepth: 5
    functionLinenumber: 544
    functionLinenumberEnd: 614
    functionName: oidc_cache_shm_set
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_shm_get_key
    - oidc_cache_mutex_unlock
    - ap_get_module_config
    - apr_time_now
    - oidc_cache_shm_entry_update
    - oidc_cache_shm_entry_insert
    - oidc_cache_shm_warn_pressure
    - oidc_cache_shm_slot
    - oidc_cache_shm_evict
    - oidc_error
    - oidc_cache_shm_find
    - oidc_cache_shm_hash
    - _oidc_strlen
    - oidc_cache_shm_base
    - oidc_cache_shm_buckets
    - oidc_cache_shm_value_size_max
    - oidc_cfg_cache_shm_entry_size_max_get
    - oidc_cache_mutex_lock
    - oidc_cache_shm_slot_free
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_cache_shm_set(request_rec *r, const char *section,
      const char *key, const char *value,\n\t\t\t\t     apr_time_t expiry)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_mutex_lock
      Src: /src/mod_auth_openidc/src/cache/shm.c:619,1
    - Dst: apr_shm_destroy
      Src: /src/mod_auth_openidc/src/cache/shm.c:624,1
    - Dst: oidc_sdebug
      Src: /src/mod_auth_openidc/src/cache/shm.c:625,1
    - Dst: oidc_cache_mutex_unlock
      Src: /src/mod_auth_openidc/src/cache/shm.c:627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pool
    - s
    - context
    argTypes:
    - apr_pool_t*
    - server_rec*
    - oidc_cache_cfg_shm_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 630
    functionName: oidc_cache_shm_destroy_segment
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - apr_shm_destroy
    - oidc_cache_mutex_unlock
    - oidc_cache_mutex_lock
    - oidc_sdebug
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_cache_shm_destroy_segment(apr_pool_t *pool, server_rec
      *s, oidc_cache_cfg_shm_t *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_cache_mutex_destroy
      Src: /src/mod_auth_openidc/src/cache/shm.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - server_rec*
    - oidc_cache_cfg_shm_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 638
    functionName: oidc_cache_shm_destroy_mutex
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_mutex_destroy
    linkageType: ''
    returnType: apr_status_t
    signature: apr_status_t oidc_cache_shm_destroy_mutex(server_rec *s, oidc_cache_cfg_shm_t
      *context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ap_get_module_config
      Src: /src/mod_auth_openidc/src/cache/shm.c:641,1
    - Dst: oidc_slog
      Src: /src/mod_auth_openidc/src/cache/shm.c:645,1
    - Dst: oidc_cache_shm_destroy_segment
      Src: /src/mod_auth_openidc/src/cache/shm.c:651,1
    - Dst: oidc_cache_shm_destroy_mutex
      Src: /src/mod_auth_openidc/src/cache/shm.c:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - apr_pool_t*
    - server_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 640
    functionDepth: 3
    functionLinenumber: 640
    functionLinenumberEnd: 655
    functionName: oidc_cache_shm_destroy
    functionSourceFile: /src/mod_auth_openidc/src/cache/shm.c
    functionUses: 0
    functionsReached:
    - oidc_cache_shm_destroy_mutex
    - oidc_cache_shm_destroy_segment
    - ap_get_module_config
    - oidc_slog
    linkageType: ''
    returnType: int
    signature: int oidc_cache_shm_destroy(apr_pool_t *pool, server_rec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - cjose_err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: oidc_cjose_e2s
    functionSourceFile: /src/mod_auth_openidc/src/jose/internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: oidc_cjose_e2s(pool, cjose_err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:79,1
    - Dst: BIO_s_mem
      Src: /src/mod_auth_openidc/src/jose/jwk.c:79,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:80,1
    - Dst: PEM_write_bio_X509
      Src: /src/mod_auth_openidc/src/jose/jwk.c:84,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:85,1
    - Dst: PEM_read_bio
      Src: /src/mod_auth_openidc/src/jose/jwk.c:88,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:89,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:96,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:98,1
    - Dst: EVP_EncodeBlock
      Src: /src/mod_auth_openidc/src/jose/jwk.c:102,1
    - Dst: BIO_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:106,1
    - Dst: OPENSSL_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:109,1
    - Dst: OPENSSL_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:112,1
    - Dst: OPENSSL_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:115,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - p
    - x509_cert
    - b64_encoded_certificate
    - err
    argTypes:
    - apr_pool_t*
    - X509*
    - char**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 119
    functionName: oidc_jose_util_get_b64encoded_certificate_data
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - EVP_EncodeBlock
    - OPENSSL_free
    - BIO_s_mem
    - PEM_write_bio_X509
    - apr_pcalloc
    - BIO_free
    - oidc_jose_error_openssl
    - PEM_read_bio
    linkageType: ''
    returnType: int
    signature: "int oidc_jose_util_get_b64encoded_certificate_data(apr_pool_t *p,
      const X509 *x509_cert,\n\t\t\t\t\t\t\t  char **b64_encoded_certificate, oidc_jose_error_t
      *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - apr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: oidc_jwk_new
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - apr_pcalloc
    linkageType: ''
    returnType: oidc_jwk_t
    signature: oidc_jwk_t *oidc_jwk_new(apr_pool_t *pool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:144,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:146,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jwk.c:150,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jwk.c:150,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:151,1
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:156,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:158,1
    - Dst: _oidc_jwk_parse_x5c
      Src: /src/mod_auth_openidc/src/jose/jwk.c:162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - pool
    - json
    - err
    argTypes:
    - apr_pool_t*
    - json_t*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 167
    functionName: _oidc_jwk_parse_x5c_spec
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - oidc_jose_get_string
    - json_object_get
    - _oidc_jwk_parse_x5c
    - oidc_jose_error
    - _oidc_strcmp
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *_oidc_jwk_parse_x5c_spec(apr_pool_t *pool, const json_t
      *json, oidc_jose_error_t *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:174,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:176,1
    - Dst: cjose_jwk_get_kid
      Src: /src/mod_auth_openidc/src/jose/jwk.c:176,1
    - Dst: cjose_jwk_get_kty
      Src: /src/mod_auth_openidc/src/jose/jwk.c:177,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pool
    - cjose_jwk
    - use
    argTypes:
    - apr_pool_t*
    - cjose_jwk_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: oidc_jwk_from_cjose
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - cjose_jwk_get_kty
    - oidc_jwk_new
    - cjose_jwk_get_kid
    linkageType: ''
    returnType: oidc_jwk_t
    signature: oidc_jwk_t *oidc_jwk_from_cjose(apr_pool_t *pool, cjose_jwk_t *cjose_jwk,
      const char *use)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/jose/jwk.c:194,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:196,1
    - Dst: cjose_jwk_import
      Src: /src/mod_auth_openidc/src/jose/jwk.c:200,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jwk.c:200,1
    - Dst: _oidc_jwk_parse_x5c_spec
      Src: /src/mod_auth_openidc/src/jose/jwk.c:205,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:207,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwk.c:207,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:212,1
    - Dst: oidc_jwk_from_cjose
      Src: /src/mod_auth_openidc/src/jose/jwk.c:214,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:217,1
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:220,1
    - Dst: json_is_array
      Src: /src/mod_auth_openidc/src/jose/jwk.c:221,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/jose/jwk.c:222,1
    - Dst: json_array_size
      Src: /src/mod_auth_openidc/src/jose/jwk.c:222,1
    - Dst: json_array_size
      Src: /src/mod_auth_openidc/src/jose/jwk.c:223,1
    - Dst: json_array_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:224,1
    - Dst: json_is_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:225,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/jose/jwk.c:226,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:226,1
    - Dst: json_string_value
      Src: /src/mod_auth_openidc/src/jose/jwk.c:226,1
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:231,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:233,1
    - Dst: json_string_value
      Src: /src/mod_auth_openidc/src/jose/jwk.c:233,1
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:236,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:238,1
    - Dst: json_string_value
      Src: /src/mod_auth_openidc/src/jose/jwk.c:238,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - pool
    - json
    - err
    argTypes:
    - apr_pool_t*
    - json_t*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 243
    functionName: oidc_jwk_parse
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 7
    functionsReached:
    - _oidc_jwk_parse_x5c_spec
    - _oidc_strlen
    - cjose_jwk_import
    - apr_pstrdup
    - oidc_jose_get_string
    - json_is_string
    - json_object_get
    - json_string_value
    - oidc_json_encode
    - oidc_jwk_from_cjose
    - oidc_cjose_e2s
    - json_is_array
    - json_array_get
    - json_array_size
    - apr_array_make
    - APR_ARRAY_PUSH
    - oidc_jose_error
    linkageType: ''
    returnType: oidc_jwk_t
    signature: oidc_jwk_t *oidc_jwk_parse(apr_pool_t *pool, const json_t *json, oidc_jose_error_t
      *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:250,1
    - Dst: cjose_jwk_retain
      Src: /src/mod_auth_openidc/src/jose/jwk.c:251,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:252,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:254,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:255,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/jose/jwk.c:258,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/jose/jwk.c:260,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/jose/jwk.c:260,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:262,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - pool
    - src
    argTypes:
    - apr_pool_t*
    - oidc_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 265
    functionName: oidc_jwk_copy
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 4
    functionsReached:
    - apr_pstrdup
    - APR_ARRAY_PUSH
    - APR_ARRAY_IDX
    - oidc_jwk_new
    - apr_array_make
    - cjose_jwk_retain
    linkageType: ''
    returnType: oidc_jwk_t
    signature: oidc_jwk_t *oidc_jwk_copy(apr_pool_t *pool, const oidc_jwk_t *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_release
      Src: /src/mod_auth_openidc/src/jose/jwk.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - jwk
    argTypes:
    - oidc_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: oidc_jwk_destroy
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 73
    functionsReached:
    - cjose_jwk_release
    linkageType: ''
    returnType: void
    signature: void oidc_jwk_destroy(oidc_jwk_t *jwk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/jose/jwk.c:285,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/jose/jwk.c:285,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/jose/jwk.c:287,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:288,1
    - Dst: apr_hash_set
      Src: /src/mod_auth_openidc/src/jose/jwk.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - keys
    argTypes:
    - apr_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 291
    functionName: oidc_jwk_list_destroy_hash
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 18
    functionsReached:
    - apr_hash_set
    - apr_hash_this
    - apr_hash_next
    - oidc_jwk_destroy
    - apr_hash_first
    linkageType: ''
    returnType: void
    signature: void oidc_jwk_list_destroy_hash(apr_hash_t *keys)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/jose/jwk.c:302,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/jose/jwk.c:304,1
    - Dst: oidc_jwk_copy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:304,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/jose/jwk.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - src
    argTypes:
    - apr_pool_t*
    - apr_array_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 307
    functionName: oidc_jwk_list_copy
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 5
    functionsReached:
    - APR_ARRAY_PUSH
    - APR_ARRAY_IDX
    - oidc_jwk_copy
    - apr_array_make
    linkageType: ''
    returnType: apr_array_header_t
    signature: apr_array_header_t *oidc_jwk_list_copy(apr_pool_t *pool, apr_array_header_t
      *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_pop
      Src: /src/mod_auth_openidc/src/jose/jwk.c:316,1
    - Dst: oidc_jwk_destroy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - keys_list
    argTypes:
    - apr_array_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: oidc_jwk_list_destroy
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 10
    functionsReached:
    - apr_array_pop
    - oidc_jwk_destroy
    linkageType: ''
    returnType: void
    signature: void oidc_jwk_list_destroy(apr_array_header_t *keys_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_parse
      Src: /src/mod_auth_openidc/src/jose/jwk.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pool
    - json
    - jwk
    - err
    argTypes:
    - apr_pool_t*
    - json_t*
    - oidc_jwk_t**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: oidc_jwk_parse_json
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 8
    functionsReached:
    - oidc_jwk_parse
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jwk_parse_json(apr_pool_t *pool, const json_t *json,
      oidc_jwk_t **jwk, oidc_jose_error_t *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:334,1
    - Dst: json_is_array
      Src: /src/mod_auth_openidc/src/jose/jwk.c:335,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:336,1
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/jose/jwk.c:339,1
    - Dst: json_array_size
      Src: /src/mod_auth_openidc/src/jose/jwk.c:339,1
    - Dst: json_array_size
      Src: /src/mod_auth_openidc/src/jose/jwk.c:340,1
    - Dst: json_array_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:341,1
    - Dst: oidc_jwk_parse_json
      Src: /src/mod_auth_openidc/src/jose/jwk.c:345,1
    - Dst: oidc_jwk_list_destroy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:348,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/jose/jwk.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - pool
    - json
    - jwk_list
    - err
    argTypes:
    - apr_pool_t*
    - json_t*
    - apr_array_header_t**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 332
    functionDepth: 5
    functionLinenumber: 332
    functionLinenumberEnd: 355
    functionName: oidc_jwks_parse_json
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 4
    functionsReached:
    - json_object_get
    - oidc_jwk_parse_json
    - json_is_array
    - json_array_get
    - json_array_size
    - oidc_jwk_list_destroy
    - apr_array_make
    - APR_ARRAY_PUSH
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwks_parse_json(apr_pool_t *pool, const json_t *json,
      apr_array_header_t **jwk_list,\n\t\t\t\toidc_jose_error_t *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:361,1
    - Dst: json_is_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 366
    functionName: oidc_is_jwk
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 4
    functionsReached:
    - json_object_get
    - json_is_string
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_is_jwk(const json_t *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:372,1
    - Dst: json_is_array
      Src: /src/mod_auth_openidc/src/jose/jwk.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: oidc_is_jwks
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 4
    functionsReached:
    - json_object_get
    - json_is_array
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_is_jwks(const json_t *json)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_to_json
      Src: /src/mod_auth_openidc/src/jose/jwk.c:395,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:397,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwk.c:397,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/src/jose/jwk.c:401,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:403,1
    - Dst: json_object_set_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:408,1
    - Dst: json_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:408,1
    - Dst: json_object_set_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:412,1
    - Dst: json_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:412,1
    - Dst: json_array
      Src: /src/mod_auth_openidc/src/jose/jwk.c:416,1
    - Dst: json_array_append_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:418,1
    - Dst: json_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:418,1
    - Dst: APR_ARRAY_IDX
      Src: /src/mod_auth_openidc/src/jose/jwk.c:418,1
    - Dst: json_object_set_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:419,1
    - Dst: json_object_set_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:424,1
    - Dst: json_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:424,1
    - Dst: json_object_set_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:428,1
    - Dst: json_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:428,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/jose/jwk.c:431,1
    - Dst: json_decref
      Src: /src/mod_auth_openidc/src/jose/jwk.c:438,1
    - Dst: cjose_get_dealloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:440,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 4
    argNames:
    - pool
    - jwk
    - s_json
    - oidc_err
    argTypes:
    - apr_pool_t*
    - oidc_jwk_t*
    - char**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 443
    functionName: oidc_jwk_to_json
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 14
    functionsReached:
    - json_string
    - APR_ARRAY_IDX
    - cjose_jwk_to_json
    - json_loads
    - oidc_json_encode
    - oidc_cjose_e2s
    - json_array
    - json_decref
    - json_array_append_new
    - cjose_get_dealloc
    - oidc_jose_error
    - json_object_set_new
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jwk_to_json(apr_pool_t *pool, const oidc_jwk_t *jwk,
      char **s_json, oidc_jose_error_t *oidc_err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_to_json
      Src: /src/mod_auth_openidc/src/jose/jwk.c:456,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:458,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwk.c:458,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:461,1
    - Dst: cjose_get_dealloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - pool
    - jwk
    - s_json
    - err
    argTypes:
    - apr_pool_t*
    - oidc_jwk_t*
    - char**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 465
    functionName: oidc_jwk_to_public_json
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 5
    functionsReached:
    - apr_pstrdup
    - cjose_jwk_to_json
    - oidc_cjose_e2s
    - cjose_get_dealloc
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jwk_to_public_json(apr_pool_t *pool, const oidc_jwk_t
      *jwk, char **s_json, oidc_jose_error_t *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/mod_auth_openidc/src/jose/jwk.c:477,1
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/mod_auth_openidc/src/jose/jwk.c:479,1
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/mod_auth_openidc/src/jose/jwk.c:481,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - jwk
    argTypes:
    - oidc_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 485
    functionName: oidc_jwk_default_jws_alg
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 4
    functionsReached:
    - cjose_jwk_EC_get_curve
    linkageType: ''
    returnType: char
    signature: char *oidc_jwk_default_jws_alg(const oidc_jwk_t *jwk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:496,1
    - Dst: oidc_jose_hash_and_base64url_encode
      Src: /src/mod_auth_openidc/src/jose/jwk.c:499,1
    - Dst: cjose_jwk_set_kid
      Src: /src/mod_auth_openidc/src/jose/jwk.c:506,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jwk.c:506,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:507,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwk.c:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - pool
    - cjose_jwk
    - s_kid
    - key_params
    - key_params_len
    - err
    argTypes:
    - apr_pool_t*
    - cjose_jwk_t*
    - char*
    - char*
    - int
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 512
    functionName: oidc_jwk_set_or_generate_kid
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - apr_pstrdup
    - _oidc_strlen
    - cjose_jwk_set_kid
    - oidc_cjose_e2s
    - oidc_jose_hash_and_base64url_encode
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwk_set_or_generate_kid(apr_pool_t *pool, cjose_jwk_t
      *cjose_jwk, const char *s_kid,\n\t\t\t\t\t       const char *key_params, int
      key_params_len, oidc_jose_error_t *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_create_oct_spec
      Src: /src/mod_auth_openidc/src/jose/jwk.c:521,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:523,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwk.c:523,1
    - Dst: oidc_jwk_set_or_generate_kid
      Src: /src/mod_auth_openidc/src/jose/jwk.c:528,1
    - Dst: cjose_jwk_release
      Src: /src/mod_auth_openidc/src/jose/jwk.c:529,1
    - Dst: oidc_jwk_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:533,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:535,1
    - Dst: cjose_jwk_get_kid
      Src: /src/mod_auth_openidc/src/jose/jwk.c:535,1
    - Dst: cjose_jwk_get_kty
      Src: /src/mod_auth_openidc/src/jose/jwk.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - pool
    - skid
    - key
    - key_len
    - set_kid
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - unsigned char*
    - unsigned int
    - apr_byte_t
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 538
    functionName: oidc_jwk_create_symmetric_key
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 14
    functionsReached:
    - apr_pstrdup
    - cjose_jwk_release
    - cjose_jwk_get_kid
    - oidc_jwk_set_or_generate_kid
    - oidc_cjose_e2s
    - cjose_jwk_get_kty
    - oidc_jwk_new
    - cjose_jwk_create_oct_spec
    - oidc_jose_error
    linkageType: ''
    returnType: oidc_jwk_t
    signature: "oidc_jwk_t *oidc_jwk_create_symmetric_key(apr_pool_t *pool, const
      char *skid, const unsigned char *key,\n\t\t\t\t\t  unsigned int key_len, apr_byte_t
      set_kid, oidc_jose_error_t *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/mod_auth_openidc/src/jose/jwk.c:550,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:551,1
    - Dst: X509_get_pubkey
      Src: /src/mod_auth_openidc/src/jose/jwk.c:557,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:559,1
    - Dst: oidc_jose_util_get_b64encoded_certificate_data
      Src: /src/mod_auth_openidc/src/jose/jwk.c:565,1
    - Dst: X509_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:574,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 6
    argNames:
    - pool
    - input
    - encoded_certificate
    - pkey
    - rx509
    - err
    argTypes:
    - apr_pool_t*
    - BIO*
    - char**
    - EVP_PKEY**
    - X509**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 577
    functionName: oidc_jwk_x509_read
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_get_pubkey
    - PEM_read_bio_X509_AUX
    - oidc_jose_util_get_b64encoded_certificate_data
    - oidc_jose_error_openssl
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwk_x509_read(apr_pool_t *pool, BIO *input, char **encoded_certificate,
      EVP_PKEY **pkey,\n\t\t\t\t     X509 **rx509, oidc_jose_error_t *err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/jose/jwk.c:591,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/mod_auth_openidc/src/jose/jwk.c:595,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/mod_auth_openidc/src/jose/jwk.c:596,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:597,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/mod_auth_openidc/src/jose/jwk.c:600,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/mod_auth_openidc/src/jose/jwk.c:603,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:605,1
    - Dst: RSA_get0_key
      Src: /src/mod_auth_openidc/src/jose/jwk.c:610,1
    - Dst: RSA_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:617,1
    - Dst: BN_num_bytes
      Src: /src/mod_auth_openidc/src/jose/jwk.c:621,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:622,1
    - Dst: BN_bn2bin
      Src: /src/mod_auth_openidc/src/jose/jwk.c:623,1
    - Dst: BN_num_bytes
      Src: /src/mod_auth_openidc/src/jose/jwk.c:626,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:627,1
    - Dst: BN_bn2bin
      Src: /src/mod_auth_openidc/src/jose/jwk.c:628,1
    - Dst: BN_num_bytes
      Src: /src/mod_auth_openidc/src/jose/jwk.c:632,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:633,1
    - Dst: BN_bn2bin
      Src: /src/mod_auth_openidc/src/jose/jwk.c:634,1
    - Dst: cjose_jwk_create_RSA_spec
      Src: /src/mod_auth_openidc/src/jose/jwk.c:637,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:639,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwk.c:639,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:644,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:645,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:646,1
    - Dst: BN_clear_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:654,1
    - Dst: BN_clear_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:656,1
    - Dst: BN_clear_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:658,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 6
    argNames:
    - pool
    - pkey
    - oidc_jwk
    - fp
    - fp_len
    - err
    argTypes:
    - apr_pool_t*
    - EVP_PKEY*
    - oidc_jwk_t**
    - char**
    - int*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 662
    functionName: _oidc_jwk_rsa_key_to_jwk
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - _oidc_memset
    - BN_num_bytes
    - BN_bn2bin
    - RSA_free
    - _oidc_memcpy
    - oidc_cjose_e2s
    - EVP_PKEY_get1_RSA
    - RSA_get0_key
    - EVP_PKEY_get_bn_param
    - apr_pcalloc
    - BN_clear_free
    - oidc_jose_error_openssl
    - oidc_jose_error
    - cjose_jwk_create_RSA_spec
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t _oidc_jwk_rsa_key_to_jwk(apr_pool_t *pool, const EVP_PKEY
      *pkey, oidc_jwk_t **oidc_jwk, char **fp,\n\t\t\t\t\t   int *fp_len, oidc_jose_error_t
      *err)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/mod_auth_openidc/src/jose/jwk.c:684,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/mod_auth_openidc/src/jose/jwk.c:685,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:686,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/mod_auth_openidc/src/jose/jwk.c:689,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/mod_auth_openidc/src/jose/jwk.c:690,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:692,1
    - Dst: OBJ_sn2nid
      Src: /src/mod_auth_openidc/src/jose/jwk.c:695,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/mod_auth_openidc/src/jose/jwk.c:697,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:699,1
    - Dst: EC_KEY_get0_group
      Src: /src/mod_auth_openidc/src/jose/jwk.c:702,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/mod_auth_openidc/src/jose/jwk.c:703,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/mod_auth_openidc/src/jose/jwk.c:704,1
    - Dst: BN_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:705,1
    - Dst: BN_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:706,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/mod_auth_openidc/src/jose/jwk.c:707,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:708,1
    - Dst: EC_KEY_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:709,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/mod_auth_openidc/src/jose/jwk.c:713,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:715,1
    - Dst: EC_KEY_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:716,1
    - Dst: EC_KEY_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:719,1
    - Dst: _oidc_memset
      Src: /src/mod_auth_openidc/src/jose/jwk.c:722,1
    - Dst: BN_num_bytes
      Src: /src/mod_auth_openidc/src/jose/jwk.c:726,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:727,1
    - Dst: BN_bn2bin
      Src: /src/mod_auth_openidc/src/jose/jwk.c:728,1
    - Dst: BN_num_bytes
      Src: /src/mod_auth_openidc/src/jose/jwk.c:730,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:731,1
    - Dst: BN_bn2bin
      Src: /src/mod_auth_openidc/src/jose/jwk.c:732,1
    - Dst: BN_num_bytes
      Src: /src/mod_auth_openidc/src/jose/jwk.c:735,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:736,1
    - Dst: BN_bn2bin
      Src: /src/mod_auth_openidc/src/jose/jwk.c:737,1
    - Dst: cjose_jwk_create_EC_spec
      Src: /src/mod_auth_openidc/src/jose/jwk.c:740,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:742,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwk.c:742,1
    - Dst: htonl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:746,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:748,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:749,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:750,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:751,1
    - Dst: BN_clear_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:758,1
    - Dst: BN_clear_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:760,1
    - Dst: BN_clear_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:763,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 6
    argNames:
    - pool
    - pkey
    - oidc_jwk
    - fp
    - fp_len
    - err
    argTypes:
    - apr_pool_t*
    - EVP_PKEY*
    - oidc_jwk_t**
    - char**
    - int*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 766
    functionName: _oidc_jwk_ec_key_to_jwk
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - BN_num_bytes
    - EVP_PKEY_get1_EC_KEY
    - EC_KEY_free
    - htonl
    - EC_GROUP_get_curve_name
    - oidc_cjose_e2s
    - EVP_PKEY_get_bn_param
    - OBJ_sn2nid
    - EC_KEY_get0_private_key
    - BN_new
    - oidc_jose_error_openssl
    - oidc_jose_error
    - EVP_PKEY_get_utf8_string_param
    - EC_KEY_get0_public_key
    - EC_KEY_get0_group
    - _oidc_memset
    - BN_bn2bin
    - EC_POINT_get_affine_coordinates_GFp
    - _oidc_memcpy
    - cjose_jwk_create_EC_spec
    - apr_pcalloc
    - BN_clear_free
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t _oidc_jwk_ec_key_to_jwk(apr_pool_t *pool, const EVP_PKEY
      *pkey, oidc_jwk_t **oidc_jwk, char **fp,\n\t\t\t\t\t  int *fp_len, oidc_jose_error_t
      *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_array_make
      Src: /src/mod_auth_openidc/src/jose/jwk.c:785,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:787,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/jose/jwk.c:790,1
    - Dst: i2d_X509
      Src: /src/mod_auth_openidc/src/jose/jwk.c:794,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:796,1
    - Dst: OPENSSL_malloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:799,1
    - Dst: i2d_X509
      Src: /src/mod_auth_openidc/src/jose/jwk.c:801,1
    - Dst: i2d_X509
      Src: /src/mod_auth_openidc/src/jose/jwk.c:803,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:806,1
    - Dst: oidc_jose_hash_and_base64url_encode
      Src: /src/mod_auth_openidc/src/jose/jwk.c:810,1
    - Dst: oidc_jose_hash_and_base64url_encode
      Src: /src/mod_auth_openidc/src/jose/jwk.c:812,1
    - Dst: oidc_jwk_x509_read
      Src: /src/mod_auth_openidc/src/jose/jwk.c:815,1
    - Dst: APR_ARRAY_PUSH
      Src: /src/mod_auth_openidc/src/jose/jwk.c:816,1
    - Dst: OPENSSL_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:822,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 6
    argNames:
    - pool
    - input
    - jwk
    - x509
    - first_pem
    - err
    argTypes:
    - apr_pool_t*
    - BIO*
    - oidc_jwk_t*
    - X509*
    - char*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 824
    functionName: oidc_jwk_populate_cert_info
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - apr_array_make
    - oidc_jwk_x509_read
    - OPENSSL_malloc
    - OPENSSL_free
    - oidc_jose_hash_and_base64url_encode
    - i2d_X509
    - APR_ARRAY_PUSH
    - oidc_jose_error_openssl
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwk_populate_cert_info(apr_pool_t *pool, BIO *input,
      oidc_jwk_t *jwk, const X509 *x509,\n\t\t\t\t\t      const char *first_pem, oidc_jose_error_t
      *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PUBKEY
      Src: /src/mod_auth_openidc/src/jose/jwk.c:830,1
    - Dst: BIO_reset
      Src: /src/mod_auth_openidc/src/jose/jwk.c:835,1
    - Dst: oidc_jwk_x509_read
      Src: /src/mod_auth_openidc/src/jose/jwk.c:838,1
    - Dst: oidc_jwk_populate_cert_info
      Src: /src/mod_auth_openidc/src/jose/jwk.c:841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - pool
    - input
    - jwk
    - pkey
    - out_x509
    - err
    argTypes:
    - apr_pool_t*
    - BIO*
    - oidc_jwk_t*
    - EVP_PKEY**
    - X509**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 827
    functionDepth: 4
    functionLinenumber: 827
    functionLinenumberEnd: 842
    functionName: oidc_jwk_pem_bio_read_public
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - BIO_reset
    - oidc_jwk_populate_cert_info
    - PEM_read_bio_PUBKEY
    - oidc_jwk_x509_read
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwk_pem_bio_read_public(apr_pool_t *pool, BIO *input,
      oidc_jwk_t *jwk, EVP_PKEY **pkey,\n\t\t\t\t\t       X509 **out_x509, oidc_jose_error_t
      *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/mod_auth_openidc/src/jose/jwk.c:850,1
    - Dst: EVP_PKEY_base_id
      Src: /src/mod_auth_openidc/src/jose/jwk.c:852,1
    - Dst: EVP_PKEY_type
      Src: /src/mod_auth_openidc/src/jose/jwk.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 856
    functionName: oidc_jwk_pkey_base_id
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get_base_id
    - EVP_PKEY_base_id
    - EVP_PKEY_type
    linkageType: ''
    returnType: int
    signature: int oidc_jwk_pkey_base_id(const EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_pkey_base_id
      Src: /src/mod_auth_openidc/src/jose/jwk.c:864,1
    - Dst: _oidc_jwk_rsa_key_to_jwk
      Src: /src/mod_auth_openidc/src/jose/jwk.c:866,1
    - Dst: _oidc_jwk_ec_key_to_jwk
      Src: /src/mod_auth_openidc/src/jose/jwk.c:869,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:872,1
    - Dst: oidc_jwk_pkey_base_id
      Src: /src/mod_auth_openidc/src/jose/jwk.c:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - pool
    - pkey
    - jwk
    - fp
    - fp_len
    - err
    argTypes:
    - apr_pool_t*
    - EVP_PKEY*
    - oidc_jwk_t**
    - char**
    - int*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 862
    functionDepth: 2
    functionLinenumber: 862
    functionLinenumberEnd: 875
    functionName: oidc_jwk_pkey_to_jwk
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - _oidc_jwk_ec_key_to_jwk
    - oidc_jwk_pkey_base_id
    - _oidc_jwk_rsa_key_to_jwk
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwk_pkey_to_jwk(apr_pool_t *pool, const EVP_PKEY *pkey,
      oidc_jwk_t **jwk, char **fp, int *fp_len,\n\t\t\t\t       oidc_jose_error_t
      *err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:886,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/mod_auth_openidc/src/jose/jwk.c:889,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:890,1
    - Dst: oidc_jwk_pem_bio_read_public
      Src: /src/mod_auth_openidc/src/jose/jwk.c:893,1
    - Dst: oidc_jwk_pkey_to_jwk
      Src: /src/mod_auth_openidc/src/jose/jwk.c:897,1
    - Dst: oidc_jwk_set_or_generate_kid
      Src: /src/mod_auth_openidc/src/jose/jwk.c:900,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwk.c:903,1
    - Dst: cjose_jwk_get_kid
      Src: /src/mod_auth_openidc/src/jose/jwk.c:903,1
    - Dst: cjose_jwk_get_kty
      Src: /src/mod_auth_openidc/src/jose/jwk.c:904,1
    - Dst: EVP_PKEY_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:911,1
    - Dst: X509_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:913,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 6
    argNames:
    - pool
    - input
    - kid
    - oidc_jwk
    - is_private_key
    - err
    argTypes:
    - apr_pool_t*
    - BIO*
    - char*
    - oidc_jwk_t**
    - apr_byte_t
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 877
    functionDepth: 5
    functionLinenumber: 877
    functionLinenumberEnd: 916
    functionName: oidc_jwk_pem_bio_to_jwk
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 3
    functionsReached:
    - apr_pstrdup
    - EVP_PKEY_free
    - cjose_jwk_get_kid
    - oidc_jwk_set_or_generate_kid
    - X509_free
    - oidc_jwk_pem_bio_read_public
    - PEM_read_bio_PrivateKey
    - cjose_jwk_get_kty
    - oidc_jwk_new
    - oidc_jwk_pkey_to_jwk
    - oidc_jose_error_openssl
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwk_pem_bio_to_jwk(apr_pool_t *pool, BIO *input, const
      char *kid, oidc_jwk_t **oidc_jwk,\n\t\t\t\t   apr_byte_t is_private_key, oidc_jose_error_t
      *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/mod_auth_openidc/src/jose/jwk.c:926,1
    - Dst: BIO_s_file
      Src: /src/mod_auth_openidc/src/jose/jwk.c:926,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:927,1
    - Dst: BIO_read_filename
      Src: /src/mod_auth_openidc/src/jose/jwk.c:931,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:932,1
    - Dst: oidc_jwk_pem_bio_to_jwk
      Src: /src/mod_auth_openidc/src/jose/jwk.c:936,1
    - Dst: BIO_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:944,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - pool
    - is_private_key
    - kid
    - filename
    - jwk
    - err
    argTypes:
    - apr_pool_t*
    - apr_byte_t
    - char*
    - char*
    - oidc_jwk_t**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 921
    functionDepth: 6
    functionLinenumber: 921
    functionLinenumberEnd: 947
    functionName: oidc_jwk_parse_pem_key
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 0
    functionsReached:
    - oidc_jwk_pem_bio_to_jwk
    - BIO_new
    - BIO_s_file
    - BIO_read_filename
    - BIO_free
    - oidc_jose_error_openssl
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwk_parse_pem_key(apr_pool_t *pool, apr_byte_t is_private_key,
      const char *kid,\n\t\t\t\t\t const char *filename, oidc_jwk_t **jwk, oidc_jose_error_t
      *err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:962,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:964,1
    - Dst: json_is_array
      Src: /src/mod_auth_openidc/src/jose/jwk.c:967,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:968,1
    - Dst: json_array_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:973,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:975,1
    - Dst: json_is_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:978,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwk.c:979,1
    - Dst: json_string_value
      Src: /src/mod_auth_openidc/src/jose/jwk.c:983,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jwk.c:992,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jwk.c:994,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jwk.c:994,1
    - Dst: apr_palloc
      Src: /src/mod_auth_openidc/src/jose/jwk.c:995,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:998,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jwk.c:998,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jwk.c:999,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1003,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1007,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1007,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1008,1
    - Dst: BIO_new_mem_buf
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1013,1
    - Dst: oidc_jose_error_openssl
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1015,1
    - Dst: json_object_get
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1019,1
    - Dst: json_is_string
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1020,1
    - Dst: json_string_value
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1021,1
    - Dst: oidc_jwk_pem_bio_to_jwk
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1026,1
    - Dst: BIO_free
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1029,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 4
    argNames:
    - pool
    - json
    - jwk
    - err
    argTypes:
    - apr_pool_t*
    - json_t*
    - cjose_jwk_t**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 955
    functionDepth: 6
    functionLinenumber: 955
    functionLinenumberEnd: 1032
    functionName: _oidc_jwk_parse_x5c
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 1
    functionsReached:
    - _oidc_strlen
    - json_is_string
    - oidc_jwk_pem_bio_to_jwk
    - json_object_get
    - json_string_value
    - oidc_jose_error
    - _oidc_memcpy
    - json_array_get
    - BIO_free
    - apr_palloc
    - oidc_jose_error_openssl
    - json_is_array
    - BIO_new_mem_buf
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t _oidc_jwk_parse_x5c(apr_pool_t *pool, const json_t *json,
      cjose_jwk_t **jwk, oidc_jose_error_t *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_parse_pem_key
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pool
    - kid
    - filename
    - jwk
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - oidc_jwk_t**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1037
    functionDepth: 7
    functionLinenumber: 1037
    functionLinenumberEnd: 1040
    functionName: oidc_jwk_parse_pem_private_key
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 7
    functionsReached:
    - oidc_jwk_parse_pem_key
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwk_parse_pem_private_key(apr_pool_t *pool, const
      char *kid, const char *filename, oidc_jwk_t **jwk,\n\t\t\t\t\t  oidc_jose_error_t
      *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwk_parse_pem_key
      Src: /src/mod_auth_openidc/src/jose/jwk.c:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pool
    - kid
    - filename
    - jwk
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - char*
    - oidc_jwk_t**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1045
    functionDepth: 7
    functionLinenumber: 1045
    functionLinenumberEnd: 1048
    functionName: oidc_jwk_parse_pem_public_key
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwk.c
    functionUses: 9
    functionsReached:
    - oidc_jwk_parse_pem_key
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwk_parse_pem_public_key(apr_pool_t *pool, const char
      *kid, const char *filename, oidc_jwk_t **jwk,\n\t\t\t\t\t oidc_jose_error_t
      *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/jose/jwe.c:60,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwe.c:63,1
    - Dst: oidc_alg2kty
      Src: /src/mod_auth_openidc/src/jose/jwe.c:69,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwe.c:70,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jwe.c:75,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwe.c:76,1
    - Dst: cjose_jwe_decrypt
      Src: /src/mod_auth_openidc/src/jose/jwe.c:80,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwe.c:82,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwe.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 7
    argNames:
    - pool
    - jwe
    - keys
    - kid
    - alg
    - content_len
    - err
    argTypes:
    - apr_pool_t*
    - cjose_jwe_t*
    - apr_hash_t*
    - char*
    - char*
    - size_t*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 85
    functionName: oidc_jwe_decrypt_by_kid
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwe.c
    functionUses: 0
    functionsReached:
    - apr_hash_get
    - oidc_jose_error
    - oidc_cjose_e2s
    - oidc_alg2kty
    - cjose_jwe_decrypt
    - _oidc_strcmp
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *oidc_jwe_decrypt_by_kid(apr_pool_t *pool, cjose_jwe_t *jwe,
      apr_hash_t *keys, const char *kid,\n\t\t\t\t\tconst char *alg, size_t *content_len,
      oidc_jose_error_t *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/jose/jwe.c:98,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/jose/jwe.c:98,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/jose/jwe.c:99,1
    - Dst: oidc_alg2kty
      Src: /src/mod_auth_openidc/src/jose/jwe.c:101,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jwe.c:103,1
    - Dst: cjose_jwe_decrypt
      Src: /src/mod_auth_openidc/src/jose/jwe.c:107,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwe.c:113,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/jose/jwe.c:116,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwe.c:118,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwe.c:122,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 6
    argNames:
    - pool
    - jwe
    - keys
    - alg
    - content_len
    - err
    argTypes:
    - apr_pool_t*
    - cjose_jwe_t*
    - apr_hash_t*
    - char*
    - size_t*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 124
    functionName: oidc_jwe_decrypt_any
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwe.c
    functionUses: 0
    functionsReached:
    - apr_hash_first
    - apr_hash_this
    - oidc_jose_error
    - apr_hash_count
    - oidc_cjose_e2s
    - apr_hash_next
    - oidc_alg2kty
    - cjose_jwe_decrypt
    - _oidc_strcmp
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *oidc_jwe_decrypt_any(apr_pool_t *pool, cjose_jwe_t *jwe,
      apr_hash_t *keys, const char *alg,\n\t\t\t\t     size_t *content_len, oidc_jose_error_t
      *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwe_get_protected
      Src: /src/mod_auth_openidc/src/jose/jwe.c:133,1
    - Dst: cjose_header_get
      Src: /src/mod_auth_openidc/src/jose/jwe.c:134,1
    - Dst: cjose_header_get
      Src: /src/mod_auth_openidc/src/jose/jwe.c:135,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/jose/jwe.c:137,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwe.c:138,1
    - Dst: oidc_jwe_decrypt_by_kid
      Src: /src/mod_auth_openidc/src/jose/jwe.c:143,1
    - Dst: oidc_jwe_decrypt_any
      Src: /src/mod_auth_openidc/src/jose/jwe.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - pool
    - jwe
    - keys
    - content_len
    - err
    argTypes:
    - apr_pool_t*
    - cjose_jwe_t*
    - apr_hash_t*
    - size_t*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: oidc_jwe_decrypt_impl
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwe_get_protected
    - apr_hash_count
    - oidc_jwe_decrypt_any
    - cjose_header_get
    - oidc_jose_error
    - oidc_jwe_decrypt_by_kid
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *oidc_jwe_decrypt_impl(apr_pool_t *pool, cjose_jwe_t *jwe,
      apr_hash_t *keys, size_t *content_len,\n\t\t\t\t      oidc_jose_error_t *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwe_import
      Src: /src/mod_auth_openidc/src/jose/jwe.c:154,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jwe.c:154,1
    - Dst: oidc_jwe_decrypt_impl
      Src: /src/mod_auth_openidc/src/jose/jwe.c:157,1
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jwe.c:159,1
    - Dst: _oidc_memcpy
      Src: /src/mod_auth_openidc/src/jose/jwe.c:160,1
    - Dst: cjose_get_dealloc
      Src: /src/mod_auth_openidc/src/jose/jwe.c:162,1
    - Dst: cjose_jwe_release
      Src: /src/mod_auth_openidc/src/jose/jwe.c:166,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwe.c:168,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jwe.c:170,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwe.c:172,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwe.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 7
    argNames:
    - pool
    - input_json
    - keys
    - plaintext
    - plaintext_len
    - err
    - import_must_succeed
    argTypes:
    - apr_pool_t*
    - char*
    - apr_hash_t*
    - char**
    - int*
    - oidc_jose_error_t*
    - apr_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 175
    functionName: oidc_jwe_decrypt
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwe.c
    functionUses: 9
    functionsReached:
    - _oidc_strlen
    - apr_pstrdup
    - _oidc_memcpy
    - oidc_jwe_decrypt_impl
    - oidc_cjose_e2s
    - apr_pcalloc
    - cjose_jwe_release
    - cjose_get_dealloc
    - oidc_jose_error
    - cjose_jwe_import
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwe_decrypt(apr_pool_t *pool, const char *input_json,
      apr_hash_t *keys, char **plaintext,\n\t\t\t    int *plaintext_len, oidc_jose_error_t
      *err, apr_byte_t import_must_succeed)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwt_hdr_set
      Src: /src/mod_auth_openidc/src/jose/jwe.c:186,1
    - Dst: oidc_jwt_hdr_set
      Src: /src/mod_auth_openidc/src/jose/jwe.c:188,1
    - Dst: oidc_jwt_hdr_set
      Src: /src/mod_auth_openidc/src/jose/jwe.c:190,1
    - Dst: oidc_jwt_hdr_set
      Src: /src/mod_auth_openidc/src/jose/jwe.c:192,1
    - Dst: cjose_jwe_encrypt
      Src: /src/mod_auth_openidc/src/jose/jwe.c:196,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwe.c:198,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwe.c:198,1
    - Dst: cjose_jwe_export
      Src: /src/mod_auth_openidc/src/jose/jwe.c:202,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jwe.c:204,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jwe.c:204,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jwe.c:208,1
    - Dst: cjose_get_dealloc
      Src: /src/mod_auth_openidc/src/jose/jwe.c:209,1
    - Dst: cjose_jwe_release
      Src: /src/mod_auth_openidc/src/jose/jwe.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 7
    argNames:
    - pool
    - jwe
    - jwk
    - payload
    - payload_len
    - serialized
    - err
    argTypes:
    - apr_pool_t*
    - oidc_jwt_t*
    - oidc_jwk_t*
    - char*
    - int
    - char**
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 213
    functionName: oidc_jwt_encrypt
    functionSourceFile: /src/mod_auth_openidc/src/jose/jwe.c
    functionUses: 7
    functionsReached:
    - oidc_jwt_hdr_set
    - apr_pstrdup
    - oidc_cjose_e2s
    - cjose_jwe_encrypt
    - cjose_jwe_export
    - cjose_jwe_release
    - cjose_get_dealloc
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwt_encrypt(apr_pool_t *pool, oidc_jwt_t *jwe, const
      oidc_jwk_t *jwk, const char *payload,\n\t\t\t    int payload_len, char **serialized,
      oidc_jose_error_t *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set_new
      Src: /src/mod_auth_openidc/src/jose/jws.c:60,1
    - Dst: json_string
      Src: /src/mod_auth_openidc/src/jose/jws.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - jwt
    - key
    - value
    argTypes:
    - oidc_jwt_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: oidc_jwt_hdr_set
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 1
    functionsReached:
    - json_string
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void oidc_jwt_hdr_set(oidc_jwt_t *jwt, const char *key, const char
      *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pcalloc
      Src: /src/mod_auth_openidc/src/jose/jws.c:67,1
    - Dst: json_object
      Src: /src/mod_auth_openidc/src/jose/jws.c:69,1
    - Dst: json_object
      Src: /src/mod_auth_openidc/src/jose/jws.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pool
    - create_header
    - create_payload
    argTypes:
    - apr_pool_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: oidc_jwt_new
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 44
    functionsReached:
    - json_object
    - apr_pcalloc
    linkageType: ''
    returnType: oidc_jwt_t
    signature: oidc_jwt_t *oidc_jwt_new(apr_pool_t *pool, int create_header, int create_payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jws_get_protected
      Src: /src/mod_auth_openidc/src/jose/jws.c:82,1
    - Dst: cjose_header_get
      Src: /src/mod_auth_openidc/src/jose/jws.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - jwt
    - key
    argTypes:
    - oidc_jwt_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: oidc_jwt_hdr_get
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 3
    functionsReached:
    - cjose_jws_get_protected
    - cjose_header_get
    linkageType: ''
    returnType: char
    signature: char *oidc_jwt_hdr_get(oidc_jwt_t *jwt, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/mod_auth_openidc/src/jose/jws.c:91,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:93,1
    - Dst: json_object_set_new
      Src: /src/mod_auth_openidc/src/jose/jws.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - jwt
    - key
    - raw_json
    - err
    argTypes:
    - oidc_jwt_t*
    - char*
    - char*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: oidc_jwt_hdr_set_json
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 2
    functionsReached:
    - json_loads
    - oidc_jose_error
    - json_object_set_new
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jwt_hdr_set_json(oidc_jwt_t *jwt, const char *key,
      const char *raw_json, oidc_jose_error_t *err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:113,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/jose/jws.c:116,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:118,1
    - Dst: cjose_base64url_encode
      Src: /src/mod_auth_openidc/src/jose/jws.c:123,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jws.c:123,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:125,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jws.c:125,1
    - Dst: apr_pstrmemdup
      Src: /src/mod_auth_openidc/src/jose/jws.c:129,1
    - Dst: cjose_get_dealloc
      Src: /src/mod_auth_openidc/src/jose/jws.c:130,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/jose/jws.c:131,1
    - Dst: cjose_jws_export
      Src: /src/mod_auth_openidc/src/jose/jws.c:137,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:138,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jws.c:138,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jws.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - pool
    - jwt
    - err
    argTypes:
    - apr_pool_t*
    - oidc_jwt_t*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 146
    functionName: oidc_jose_jwt_serialize
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 26
    functionsReached:
    - cjose_get_dealloc
    - _oidc_strlen
    - apr_pstrdup
    - cjose_jws_export
    - oidc_json_encode
    - oidc_cjose_e2s
    - apr_psprintf
    - cjose_base64url_encode
    - apr_pstrmemdup
    - oidc_jose_error
    - _oidc_strcmp
    linkageType: ''
    returnType: char
    signature: char *oidc_jose_jwt_serialize(apr_pool_t *pool, oidc_jwt_t *jwt, oidc_jose_error_t
      *err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:152,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:154,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:156,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:158,1
    - Dst: _oidc_strncmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:161,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:164,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:164,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:165,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:167,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - alg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 170
    functionName: oidc_alg2kty
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 3
    functionsReached:
    - _oidc_strncmp
    - _oidc_strcmp
    linkageType: ''
    returnType: int
    signature: int oidc_alg2kty(const char *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oidc_alg2kty
      Src: /src/mod_auth_openidc/src/jose/jws.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jwt
    argTypes:
    - oidc_jwt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: oidc_jwt_alg2kty
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 4
    functionsReached:
    - oidc_alg2kty
    linkageType: ''
    returnType: int
    signature: int oidc_jwt_alg2kty(const oidc_jwt_t *jwt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:187,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:189,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:191,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:194,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:194,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:195,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:197,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:197,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:198,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:200,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:200,1
    - Dst: _oidc_strcmp
      Src: /src/mod_auth_openidc/src/jose/jws.c:201,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 1
    argNames:
    - alg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 205
    functionName: oidc_alg2keysize
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 7
    functionsReached:
    - _oidc_strcmp
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int oidc_alg2keysize(const char *alg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apr_pstrndup
      Src: /src/mod_auth_openidc/src/jose/jws.c:220,1
    - Dst: json_loads
      Src: /src/mod_auth_openidc/src/jose/jws.c:221,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:225,1
    - Dst: json_is_object
      Src: /src/mod_auth_openidc/src/jose/jws.c:230,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:231,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/src/jose/jws.c:236,1
    - Dst: oidc_jose_get_timestamp
      Src: /src/mod_auth_openidc/src/jose/jws.c:239,1
    - Dst: oidc_jose_get_timestamp
      Src: /src/mod_auth_openidc/src/jose/jws.c:242,1
    - Dst: oidc_jose_get_string
      Src: /src/mod_auth_openidc/src/jose/jws.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - pool
    - s_payload
    - s_payload_len
    - payload
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - size_t
    - oidc_jwt_payload_t*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 248
    functionName: oidc_jose_parse_payload
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 0
    functionsReached:
    - apr_pstrndup
    - oidc_jose_get_string
    - json_is_object
    - json_loads
    - oidc_jose_get_timestamp
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jose_parse_payload(apr_pool_t *pool, const char *s_payload,
      size_t s_payload_len,\n\t\t\t\t\t  oidc_jwt_payload_t *payload, oidc_jose_error_t
      *err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwe_decrypt
      Src: /src/mod_auth_openidc/src/jose/jws.c:259,1
    - Dst: oidc_jwt_new
      Src: /src/mod_auth_openidc/src/jose/jws.c:262,1
    - Dst: cjose_jws_import
      Src: /src/mod_auth_openidc/src/jose/jws.c:267,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jws.c:267,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:269,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jws.c:269,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/jose/jws.c:270,1
    - Dst: cjose_jws_get_protected
      Src: /src/mod_auth_openidc/src/jose/jws.c:275,1
    - Dst: json_copy
      Src: /src/mod_auth_openidc/src/jose/jws.c:276,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/jose/jws.c:278,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jws.c:280,1
    - Dst: cjose_header_get
      Src: /src/mod_auth_openidc/src/jose/jws.c:280,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jws.c:281,1
    - Dst: cjose_header_get
      Src: /src/mod_auth_openidc/src/jose/jws.c:281,1
    - Dst: apr_pstrdup
      Src: /src/mod_auth_openidc/src/jose/jws.c:282,1
    - Dst: cjose_header_get
      Src: /src/mod_auth_openidc/src/jose/jws.c:282,1
    - Dst: cjose_jws_get_plaintext
      Src: /src/mod_auth_openidc/src/jose/jws.c:286,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/jose/jws.c:287,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:289,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jws.c:289,1
    - Dst: oidc_jose_uncompress
      Src: /src/mod_auth_openidc/src/jose/jws.c:296,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/jose/jws.c:298,1
    - Dst: oidc_jose_parse_payload
      Src: /src/mod_auth_openidc/src/jose/jws.c:306,1
    - Dst: oidc_jwt_destroy
      Src: /src/mod_auth_openidc/src/jose/jws.c:307,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 6
    argNames:
    - pool
    - input_json
    - j_jwt
    - keys
    - compress
    - err
    argTypes:
    - apr_pool_t*
    - char*
    - oidc_jwt_t**
    - apr_hash_t*
    - apr_byte_t
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 313
    functionName: oidc_jwt_parse
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 10
    functionsReached:
    - _oidc_strlen
    - oidc_jwt_new
    - apr_pstrdup
    - oidc_jose_uncompress
    - cjose_jws_import
    - oidc_json_encode
    - oidc_cjose_e2s
    - oidc_jwt_destroy
    - cjose_jws_get_protected
    - oidc_jwe_decrypt
    - json_copy
    - cjose_jws_get_plaintext
    - oidc_jose_parse_payload
    - cjose_header_get
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwt_parse(apr_pool_t *pool, const char *input_json,
      oidc_jwt_t **j_jwt, apr_hash_t *keys,\n\t\t\t  apr_byte_t compress, oidc_jose_error_t
      *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_decref
      Src: /src/mod_auth_openidc/src/jose/jws.c:321,1
    - Dst: json_decref
      Src: /src/mod_auth_openidc/src/jose/jws.c:326,1
    - Dst: cjose_jws_release
      Src: /src/mod_auth_openidc/src/jose/jws.c:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - jwt
    argTypes:
    - oidc_jwt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 335
    functionName: oidc_jwt_destroy
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 84
    functionsReached:
    - json_decref
    - cjose_jws_release
    linkageType: ''
    returnType: void
    signature: void oidc_jwt_destroy(oidc_jwt_t *jwt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwt_hdr_set
      Src: /src/mod_auth_openidc/src/jose/jws.c:346,1
    - Dst: oidc_jwt_hdr_set
      Src: /src/mod_auth_openidc/src/jose/jws.c:348,1
    - Dst: oidc_jwt_hdr_set
      Src: /src/mod_auth_openidc/src/jose/jws.c:350,1
    - Dst: oidc_jwt_hdr_set
      Src: /src/mod_auth_openidc/src/jose/jws.c:352,1
    - Dst: cjose_jws_release
      Src: /src/mod_auth_openidc/src/jose/jws.c:355,1
    - Dst: oidc_json_encode
      Src: /src/mod_auth_openidc/src/jose/jws.c:358,1
    - Dst: oidc_jose_compress
      Src: /src/mod_auth_openidc/src/jose/jws.c:363,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jws.c:363,1
    - Dst: _oidc_strlen
      Src: /src/mod_auth_openidc/src/jose/jws.c:369,1
    - Dst: cjose_jws_sign
      Src: /src/mod_auth_openidc/src/jose/jws.c:373,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:376,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jws.c:376,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - pool
    - jwt
    - jwk
    - compress
    - err
    argTypes:
    - apr_pool_t*
    - oidc_jwt_t*
    - oidc_jwk_t*
    - apr_byte_t
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 381
    functionName: oidc_jwt_sign
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 26
    functionsReached:
    - oidc_jwt_hdr_set
    - _oidc_strlen
    - cjose_jws_release
    - oidc_json_encode
    - oidc_cjose_e2s
    - oidc_jose_compress
    - cjose_jws_sign
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwt_sign(apr_pool_t *pool, oidc_jwt_t *jwt, const
      oidc_jwk_t *jwk, apr_byte_t compress,\n\t\t\t oidc_jose_error_t *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jws_verify
      Src: /src/mod_auth_openidc/src/jose/jws.c:394,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:396,1
    - Dst: oidc_cjose_e2s
      Src: /src/mod_auth_openidc/src/jose/jws.c:396,1
    - Dst: oidc_jose_version_deprecated
      Src: /src/mod_auth_openidc/src/jose/jws.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - pool
    - jwt
    - jwk
    - err
    argTypes:
    - apr_pool_t*
    - oidc_jwt_t*
    - oidc_jwk_t*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 401
    functionName: oidc_jwt_verify_with_key
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 0
    functionsReached:
    - oidc_jose_version_deprecated
    - cjose_jws_verify
    - oidc_cjose_e2s
    - oidc_jose_error
    linkageType: ''
    returnType: apr_byte_t
    signature: "apr_byte_t oidc_jwt_verify_with_key(apr_pool_t *pool, oidc_jwt_t *jwt,
      const oidc_jwk_t *jwk,\n\t\t\t\t\t   oidc_jose_error_t *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apr_hash_first
      Src: /src/mod_auth_openidc/src/jose/jws.c:410,1
    - Dst: apr_hash_next
      Src: /src/mod_auth_openidc/src/jose/jws.c:410,1
    - Dst: apr_hash_this
      Src: /src/mod_auth_openidc/src/jose/jws.c:411,1
    - Dst: oidc_jwt_alg2kty
      Src: /src/mod_auth_openidc/src/jose/jws.c:412,1
    - Dst: oidc_jwt_verify_with_key
      Src: /src/mod_auth_openidc/src/jose/jws.c:413,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:419,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/jose/jws.c:420,1
    - Dst: apr_hash_count
      Src: /src/mod_auth_openidc/src/jose/jws.c:421,1
    - Dst: apr_psprintf
      Src: /src/mod_auth_openidc/src/jose/jws.c:423,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - pool
    - jwt
    - keys
    - err
    argTypes:
    - apr_pool_t*
    - oidc_jwt_t*
    - apr_hash_t*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 428
    functionName: oidc_jwt_verify_any
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 0
    functionsReached:
    - apr_hash_first
    - apr_hash_this
    - oidc_jwt_alg2kty
    - apr_hash_count
    - apr_hash_next
    - apr_psprintf
    - oidc_jose_error
    - oidc_jwt_verify_with_key
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jwt_verify_any(apr_pool_t *pool, oidc_jwt_t *jwt, apr_hash_t
      *keys, oidc_jose_error_t *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: oidc_jwt_verify_any
      Src: /src/mod_auth_openidc/src/jose/jws.c:433,1
    - Dst: apr_hash_get
      Src: /src/mod_auth_openidc/src/jose/jws.c:435,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:437,1
    - Dst: oidc_jwt_alg2kty
      Src: /src/mod_auth_openidc/src/jose/jws.c:443,1
    - Dst: oidc_jose_error
      Src: /src/mod_auth_openidc/src/jose/jws.c:444,1
    - Dst: oidc_jwt_verify_with_key
      Src: /src/mod_auth_openidc/src/jose/jws.c:449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - pool
    - jwt
    - keys
    - err
    argTypes:
    - apr_pool_t*
    - oidc_jwt_t*
    - apr_hash_t*
    - oidc_jose_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 430
    functionDepth: 4
    functionLinenumber: 430
    functionLinenumberEnd: 450
    functionName: oidc_jwt_verify
    functionSourceFile: /src/mod_auth_openidc/src/jose/jws.c
    functionUses: 11
    functionsReached:
    - oidc_jwt_verify_any
    - oidc_jwt_alg2kty
    - apr_hash_get
    - oidc_jose_error
    - oidc_jwt_verify_with_key
    linkageType: ''
    returnType: apr_byte_t
    signature: apr_byte_t oidc_jwt_verify(apr_pool_t *pool, oidc_jwt_t *jwt, apr_hash_t
      *keys, oidc_jose_error_t *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cjose_header_get
      Src: /src/cjose/test/check_jwe.c:88,1
    - Dst: cjose_jwk_get_kid
      Src: /src/cjose/test/check_jwe.c:95,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jwe.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - jwe
    - hdr
    - data
    argTypes:
    - cjose_jwe_t*
    - cjose_header_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: cjose_multi_key_locator
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cjose_header_get
    - cjose_jwk_get_kid
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *cjose_multi_key_locator(cjose_jwe_t *jwe, cjose_header_t
      *hdr, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - jwe
    - hdr
    - data
    argTypes:
    - cjose_jwe_t*
    - cjose_header_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: cjose_multi_key_locator_none
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *cjose_multi_key_locator_none(cjose_jwe_t *jwe, cjose_header_t
      *hdr, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:115,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:115,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:116,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:122,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:122,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:123,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:130,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:131,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:137,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:137,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:140,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:141,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jwe.c:141,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:143,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:144,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 146
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - strlen
    - cjose_jwk_release
    - ck_assert_msg
    - strncmp
    - cjose_jwe_release
    - cjose_get_dealloc
    - cjose_jwe_decrypt
    - cjose_jwe_import
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwe_node_jose_encrypt_self_decrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:153,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:153,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:154,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:160,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:161,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:161,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:166,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:166,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:172,1
    - Dst: cjose_jwe_encrypt
      Src: /src/cjose/test/check_jwe.c:173,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:174,1
    - Dst: cjose_jwe_export
      Src: /src/cjose/test/check_jwe.c:179,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:180,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:184,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:184,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:185,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:193,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:194,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:200,1
    - Dst: json_equal
      Src: /src/cjose/test/check_jwe.c:200,1
    - Dst: cjose_jwe_get_protected
      Src: /src/cjose/test/check_jwe.c:200,1
    - Dst: cjose_jwe_get_protected
      Src: /src/cjose/test/check_jwe.c:200,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:201,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:201,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:204,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:205,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jwe.c:205,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:207,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:208,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:209,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:210,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:211,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 4
    argNames:
    - alg
    - enc
    - key
    - plain1
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 213
    functionName: _self_encrypt_self_decrypt_with_key
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_header_set
    - cjose_jwe_get_protected
    - strlen
    - cjose_jwk_release
    - ck_assert
    - json_equal
    - cjose_jwe_encrypt
    - cjose_jwe_export
    - cjose_header_release
    - ck_assert_msg
    - strncmp
    - cjose_jwe_release
    - cjose_get_dealloc
    - cjose_header_new
    - cjose_jwe_decrypt
    - cjose_jwe_import
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST _self_encrypt_self_decrypt_with_key(const char *alg, const
      char *enc, const char *key, const char *plain1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:217,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:220,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:223,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:225,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:228,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:231,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:233,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:236,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:239,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:241,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:243,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:245,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:247,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:249,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:251,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:253,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:255,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:257,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:259,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:261,1
    - Dst: _self_encrypt_self_decrypt_with_key
      Src: /src/cjose/test/check_jwe.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - plain1
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 264
    functionName: _self_encrypt_self_decrypt
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - _self_encrypt_self_decrypt_with_key
    linkageType: ''
    returnType: void
    signature: void _self_encrypt_self_decrypt(const char *plain1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _self_encrypt_self_decrypt
      Src: /src/cjose/test/check_jwe.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 280
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - _self_encrypt_self_decrypt
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwe_self_encrypt_self_decrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:288,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:288,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:289,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:295,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:296,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:296,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:301,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:301,1
    - Dst: malloc
      Src: /src/cjose/test/check_jwe.c:307,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:308,1
    - Dst: RAND_bytes
      Src: /src/cjose/test/check_jwe.c:308,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:311,1
    - Dst: cjose_jwe_encrypt_iv
      Src: /src/cjose/test/check_jwe.c:312,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:313,1
    - Dst: cjose_jwe_export
      Src: /src/cjose/test/check_jwe.c:318,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:319,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:323,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:323,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:324,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:332,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:333,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:339,1
    - Dst: json_equal
      Src: /src/cjose/test/check_jwe.c:339,1
    - Dst: cjose_jwe_get_protected
      Src: /src/cjose/test/check_jwe.c:339,1
    - Dst: cjose_jwe_get_protected
      Src: /src/cjose/test/check_jwe.c:339,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:340,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:340,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:343,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:344,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jwe.c:344,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:346,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:347,1
    - Dst: free
      Src: /src/cjose/test/check_jwe.c:348,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:349,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:350,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:351,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 5
    argNames:
    - alg
    - enc
    - key
    - iv_len
    - plain1
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 353
    functionName: _self_encrypt_self_decrypt_with_key_iv
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwe_get_protected
    - cjose_header_set
    - cjose_jwk_release
    - cjose_jwe_export
    - RAND_bytes
    - cjose_jwe_encrypt_iv
    - cjose_jwe_import
    - free
    - ck_assert
    - ck_assert_msg
    - strncmp
    - cjose_jwe_release
    - cjose_jwk_import
    - strlen
    - cjose_get_dealloc
    - cjose_header_new
    - cjose_jwe_decrypt
    - json_equal
    - cjose_header_release
    - malloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST _self_encrypt_self_decrypt_with_key_iv(const char *alg, const
      char *enc, const char *key, size_t iv_len, const char *plain1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _self_encrypt_self_decrypt_with_key_iv
      Src: /src/cjose/test/check_jwe.c:371,1
    - Dst: _self_encrypt_self_decrypt_with_key_iv
      Src: /src/cjose/test/check_jwe.c:374,1
    - Dst: _self_encrypt_self_decrypt_with_key_iv
      Src: /src/cjose/test/check_jwe.c:377,1
    - Dst: _self_encrypt_self_decrypt_with_key_iv
      Src: /src/cjose/test/check_jwe.c:379,1
    - Dst: _self_encrypt_self_decrypt_with_key_iv
      Src: /src/cjose/test/check_jwe.c:381,1
    - Dst: _self_encrypt_self_decrypt_with_key_iv
      Src: /src/cjose/test/check_jwe.c:383,1
    - Dst: _self_encrypt_self_decrypt_with_key_iv
      Src: /src/cjose/test/check_jwe.c:385,1
    - Dst: _self_encrypt_self_decrypt_with_key_iv
      Src: /src/cjose/test/check_jwe.c:387,1
    - Dst: _self_encrypt_self_decrypt_with_key_iv
      Src: /src/cjose/test/check_jwe.c:389,1
    - Dst: _self_encrypt_self_decrypt_with_key_iv
      Src: /src/cjose/test/check_jwe.c:399,1
    - Dst: _self_encrypt_self_decrypt_with_key_iv
      Src: /src/cjose/test/check_jwe.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - plain1
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 402
    functionName: _self_encrypt_self_decrypt_iv
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - _self_encrypt_self_decrypt_with_key_iv
    linkageType: ''
    returnType: void
    signature: void _self_encrypt_self_decrypt_iv(const char *plain1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _self_encrypt_self_decrypt_iv
      Src: /src/cjose/test/check_jwe.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 418
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - _self_encrypt_self_decrypt_iv
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwe_self_encrypt_self_decrypt_iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _self_encrypt_self_decrypt
      Src: /src/cjose/test/check_jwe.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 421
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - _self_encrypt_self_decrypt
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_self_encrypt_self_decrypt_short)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _self_encrypt_self_decrypt
      Src: /src/cjose/test/check_jwe.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - _self_encrypt_self_decrypt
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_self_encrypt_self_decrypt_empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/cjose/test/check_jwe.c:431,1
    - Dst: memset
      Src: /src/cjose/test/check_jwe.c:432,1
    - Dst: free
      Src: /src/cjose/test/check_jwe.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 436
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    - malloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_self_encrypt_self_decrypt_large)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/cjose/test/check_jwe.c:444,1
    - Dst: malloc
      Src: /src/cjose/test/check_jwe.c:445,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:446,1
    - Dst: RAND_bytes
      Src: /src/cjose/test/check_jwe.c:446,1
    - Dst: _self_encrypt_self_decrypt
      Src: /src/cjose/test/check_jwe.c:448,1
    - Dst: free
      Src: /src/cjose/test/check_jwe.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 451
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - random
    - free
    - ck_assert_msg
    - _self_encrypt_self_decrypt
    - RAND_bytes
    - malloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_self_encrypt_self_decrypt_many)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:461,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:473,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:473,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:474,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:480,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:481,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:481,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:486,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:486,1
    - Dst: cjose_jwe_encrypt
      Src: /src/cjose/test/check_jwe.c:492,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:493,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:494,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:497,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:497,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:502,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:502,1
    - Dst: cjose_jwe_encrypt
      Src: /src/cjose/test/check_jwe.c:508,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:509,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:510,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:512,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 514
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_header_set
    - strlen
    - cjose_jwk_release
    - cjose_jwe_encrypt
    - cjose_header_release
    - ck_assert_msg
    - cjose_header_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_encrypt_with_bad_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:524,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:541,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:542,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:542,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:547,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:547,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:555,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:555,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:556,1
    - Dst: cjose_jwe_encrypt
      Src: /src/cjose/test/check_jwe.c:561,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:562,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:563,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:565,1
    - Dst: cjose_jwe_encrypt
      Src: /src/cjose/test/check_jwe.c:568,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:569,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:570,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 573
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_header_set
    - strlen
    - cjose_jwk_release
    - cjose_jwe_encrypt
    - cjose_header_release
    - ck_assert_msg
    - cjose_header_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_encrypt_with_bad_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:593,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:593,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:594,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:600,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:601,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:601,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:606,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:606,1
    - Dst: cjose_jwe_encrypt
      Src: /src/cjose/test/check_jwe.c:611,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:612,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:613,1
    - Dst: cjose_jwe_encrypt
      Src: /src/cjose/test/check_jwe.c:615,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:616,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:617,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:619,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 621
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_header_set
    - strlen
    - cjose_jwk_release
    - cjose_jwe_encrypt
    - cjose_header_release
    - ck_assert_msg
    - cjose_header_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_encrypt_with_bad_content)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:629,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:629,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:630,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:636,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:636,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:637,1
    - Dst: cjose_jwe_export
      Src: /src/cjose/test/check_jwe.c:643,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:644,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:650,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jwe.c:650,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:650,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:652,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:653,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 655
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - strlen
    - cjose_jwk_release
    - cjose_jwe_export
    - ck_assert_msg
    - strncmp
    - cjose_jwe_release
    - cjose_get_dealloc
    - cjose_jwe_import
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_import_export_compare)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:762,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:762,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:763,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 766
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - strlen
    - cjose_jwe_import
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_import_invalid_serialization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:797,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:797,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:798,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:804,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:804,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:805,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:811,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:811,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:812,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:815,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:815,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:816,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:821,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:821,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:822,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:824,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:824,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:825,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:827,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:830,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 832
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - strlen
    - cjose_jwk_release
    - ck_assert_msg
    - cjose_jwe_release
    - cjose_jwe_decrypt
    - cjose_jwe_import
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_decrypt_bad_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:850,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:850,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:851,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:857,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:857,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:858,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:865,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:866,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:872,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:872,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:875,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:876,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jwe.c:876,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:878,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:879,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:888,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:888,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:889,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:896,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:897,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:899,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:908,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:908,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:909,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:916,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:917,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:919,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:928,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:928,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:929,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:936,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:937,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:939,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:948,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:948,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:949,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:956,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:957,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:959,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:968,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:968,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:969,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:976,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:977,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:979,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 981
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - strlen
    - cjose_jwk_release
    - ck_assert_msg
    - strncmp
    - cjose_jwe_release
    - cjose_get_dealloc
    - cjose_jwe_decrypt
    - cjose_jwe_import
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_decrypt_aes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:994,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:994,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:995,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:1000,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1000,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1001,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:1008,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1009,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1014,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1014,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1017,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1018,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jwe.c:1018,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1020,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1021,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:1023,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1023,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1024,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:1031,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1032,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1037,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 1039
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - strlen
    - cjose_jwk_release
    - ck_assert_msg
    - strncmp
    - cjose_jwe_release
    - cjose_get_dealloc
    - cjose_jwe_decrypt
    - cjose_jwe_import
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_decrypt_aes_gcm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:1050,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1050,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1051,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:1053,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1054,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1054,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1055,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1055,1
    - Dst: cjose_jwe_encrypt
      Src: /src/cjose/test/check_jwe.c:1058,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1058,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1059,1
    - Dst: cjose_jwe_export
      Src: /src/cjose/test/check_jwe.c:1061,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1062,1
    - Dst: strchr
      Src: /src/cjose/test/check_jwe.c:1065,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1066,1
    - Dst: strchr
      Src: /src/cjose/test/check_jwe.c:1067,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1068,1
    - Dst: memset
      Src: /src/cjose/test/check_jwe.c:1073,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1076,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_jwe.c:1076,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1081,1
    - Dst: malloc
      Src: /src/cjose/test/check_jwe.c:1083,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1084,1
    - Dst: memcpy
      Src: /src/cjose/test/check_jwe.c:1085,1
    - Dst: memcpy
      Src: /src/cjose/test/check_jwe.c:1087,1
    - Dst: memcpy
      Src: /src/cjose/test/check_jwe.c:1088,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:1092,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1093,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:1097,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1098,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1099,1
    - Dst: free
      Src: /src/cjose/test/check_jwe.c:1101,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1102,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1103,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1104,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1105,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:1106,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 3
    argNames:
    - alg
    - enc
    - key
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1108
    functionName: _decrypt_oversized_aes_kw_ek
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cjose_header_set
    - cjose_jwk_release
    - cjose_jwe_export
    - cjose_base64url_encode
    - strchr
    - cjose_jwe_import
    - free
    - ck_assert
    - ck_assert_msg
    - cjose_jwe_release
    - cjose_jwk_import
    - strlen
    - memset
    - cjose_get_dealloc
    - cjose_header_new
    - cjose_jwe_decrypt
    - cjose_jwe_encrypt
    - cjose_header_release
    - malloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST _decrypt_oversized_aes_kw_ek(const char *alg, const char *enc,
      const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decrypt_oversized_aes_kw_ek
      Src: /src/cjose/test/check_jwe.c:1112,1
    - Dst: _decrypt_oversized_aes_kw_ek
      Src: /src/cjose/test/check_jwe.c:1113,1
    - Dst: _decrypt_oversized_aes_kw_ek
      Src: /src/cjose/test/check_jwe.c:1114,1
    - Dst: _decrypt_oversized_aes_kw_ek
      Src: /src/cjose/test/check_jwe.c:1115,1
    - Dst: _decrypt_oversized_aes_kw_ek
      Src: /src/cjose/test/check_jwe.c:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1117
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - _decrypt_oversized_aes_kw_ek
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwe_decrypt_aes_kw_oversized_ek)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:1232,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1232,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1233,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:1239,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1239,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1240,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:1247,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1248,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1254,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1254,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1257,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1258,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jwe.c:1258,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1261,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1262,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:1263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1265
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - strlen
    - cjose_jwk_release
    - ck_assert_msg
    - strncmp
    - cjose_jwe_release
    - cjose_get_dealloc
    - cjose_jwe_decrypt
    - cjose_jwe_import
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_decrypt_rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwe_import_json
      Src: /src/cjose/test/check_jwe.c:1276,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1276,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1277,1
    - Dst: cjose_jwe_decrypt_multi
      Src: /src/cjose/test/check_jwe.c:1283,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1284,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1288,1
    - Dst: memcmp
      Src: /src/cjose/test/check_jwe.c:1288,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1288,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1290,1
    - Dst: cjose_jwe_export_json
      Src: /src/cjose/test/check_jwe.c:1292,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1293,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1297,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jwe.c:1297,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1299,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - json
    - match_json
    - rec
    argTypes:
    - char*
    - char*
    - cjose_jwe_recipient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1270
    functionDepth: 1
    functionLinenumber: 1270
    functionLinenumberEnd: 1302
    functionName: _cjose_test_json_serial
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - cjose_jwe_decrypt_multi
    - strlen
    - strcmp
    - cjose_jwe_export_json
    - ck_assert_msg
    - cjose_jwe_release
    - cjose_jwe_import_json
    - memcmp
    linkageType: ''
    returnType: void
    signature: void _cjose_test_json_serial(const char *json, const char *match_json,
      cjose_jwe_recipient_t *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:1314,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1315,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1316,1
    - Dst: cjose_jwe_encrypt_multi
      Src: /src/cjose/test/check_jwe.c:1320,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1321,1
    - Dst: cjose_jwe_export_json
      Src: /src/cjose/test/check_jwe.c:1325,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1326,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1331,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:1332,1
    - Dst: cjose_jwe_import_json
      Src: /src/cjose/test/check_jwe.c:1336,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1336,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1337,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:1342,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1343,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1347,1
    - Dst: free
      Src: /src/cjose/test/check_jwe.c:1349,1
    - Dst: free
      Src: /src/cjose/test/check_jwe.c:1350,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - key
    argTypes:
    - cjose_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1352
    functionName: _cjose_test_empty_headers
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_header_set
    - strlen
    - free
    - cjose_header_release
    - cjose_jwe_export_json
    - ck_assert_msg
    - cjose_jwe_release
    - cjose_jwe_import_json
    - cjose_jwe_encrypt_multi
    - cjose_header_new
    - cjose_jwe_decrypt
    linkageType: ''
    returnType: void
    signature: void _cjose_test_empty_headers(const cjose_jwk_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:1443,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1443,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1444,1
    - Dst: memset
      Src: /src/cjose/test/check_jwe.c:1449,1
    - Dst: snprintf
      Src: /src/cjose/test/check_jwe.c:1450,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1452,1
    - Dst: cjose_jwk_set_kid
      Src: /src/cjose/test/check_jwe.c:1452,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1452,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1461,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:1461,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1461,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1462,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:1469,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1471,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1471,1
    - Dst: cjose_jwe_encrypt_multi
      Src: /src/cjose/test/check_jwe.c:1477,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1477,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1478,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/test/check_jwe.c:1485,1
    - Dst: cjose_jwe_decrypt_multi
      Src: /src/cjose/test/check_jwe.c:1486,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1487,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1488,1
    - Dst: cjose_jwe_decrypt_multi
      Src: /src/cjose/test/check_jwe.c:1490,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1491,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1495,1
    - Dst: memcmp
      Src: /src/cjose/test/check_jwe.c:1495,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1495,1
    - Dst: cjose_jwe_export
      Src: /src/cjose/test/check_jwe.c:1498,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1499,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1502,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1503,1
    - Dst: _cjose_test_json_serial
      Src: /src/cjose/test/check_jwe.c:1505,1
    - Dst: _cjose_test_json_serial
      Src: /src/cjose/test/check_jwe.c:1506,1
    - Dst: _cjose_test_json_serial
      Src: /src/cjose/test/check_jwe.c:1507,1
    - Dst: _cjose_test_empty_headers
      Src: /src/cjose/test/check_jwe.c:1508,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:1512,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:1513,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:1516,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1518
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_header_set
    - cjose_jwe_decrypt_multi
    - cjose_jwk_release
    - cjose_jwe_export
    - _cjose_test_json_serial
    - ck_assert_msg
    - cjose_jwe_release
    - cjose_jwe_encrypt_multi
    - _cjose_test_empty_headers
    - cjose_jwk_import
    - strlen
    - CJOSE_ERROR
    - memset
    - cjose_get_dealloc
    - cjose_header_new
    - cjose_jwk_set_kid
    - cjose_header_release
    - snprintf
    - memcmp
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwe_multiple_recipients)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:1531,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1531,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1532,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:1534,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1535,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1536,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1536,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1537,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1537,1
    - Dst: cjose_jwe_encrypt
      Src: /src/cjose/test/check_jwe.c:1544,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1544,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1545,1
    - Dst: cjose_jwe_export
      Src: /src/cjose/test/check_jwe.c:1547,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1548,1
    - Dst: strchr
      Src: /src/cjose/test/check_jwe.c:1551,1
    - Dst: strchr
      Src: /src/cjose/test/check_jwe.c:1552,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1553,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1555,1
    - Dst: memcpy
      Src: /src/cjose/test/check_jwe.c:1556,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1559,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1560,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1563,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jwe.c:1563,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:1566,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:1567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - alg
    - enc
    - jwk_str
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1568
    functionName: _assert_cbc_cek_random
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cjose_jwk_import
    - cjose_header_set
    - strlen
    - cjose_jwk_release
    - ck_assert
    - strcmp
    - strchr
    - cjose_jwe_encrypt
    - cjose_jwe_export
    - cjose_header_release
    - ck_assert_msg
    - cjose_jwe_release
    - cjose_get_dealloc
    - cjose_header_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST _assert_cbc_cek_random(const char *alg, const char *enc, const
      char *jwk_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _assert_cbc_cek_random
      Src: /src/cjose/test/check_jwe.c:1572,1
    - Dst: _assert_cbc_cek_random
      Src: /src/cjose/test/check_jwe.c:1573,1
    - Dst: _assert_cbc_cek_random
      Src: /src/cjose/test/check_jwe.c:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1570
    functionDepth: 2
    functionLinenumber: 1570
    functionLinenumberEnd: 1575
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - _assert_cbc_cek_random
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwe_encrypt_cbc_cek_random)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:1585,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1585,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1586,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:1588,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1589,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1589,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1590,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1590,1
    - Dst: cjose_jwe_encrypt
      Src: /src/cjose/test/check_jwe.c:1593,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1593,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1594,1
    - Dst: cjose_jwe_export
      Src: /src/cjose/test/check_jwe.c:1596,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1597,1
    - Dst: memset
      Src: /src/cjose/test/check_jwe.c:1602,1
    - Dst: RSA_size
      Src: /src/cjose/test/check_jwe.c:1604,1
    - Dst: malloc
      Src: /src/cjose/test/check_jwe.c:1605,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1606,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1607,1
    - Dst: RSA_public_encrypt
      Src: /src/cjose/test/check_jwe.c:1607,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1611,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_jwe.c:1611,1
    - Dst: strchr
      Src: /src/cjose/test/check_jwe.c:1614,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1615,1
    - Dst: strchr
      Src: /src/cjose/test/check_jwe.c:1616,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1617,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1620,1
    - Dst: malloc
      Src: /src/cjose/test/check_jwe.c:1622,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1623,1
    - Dst: memcpy
      Src: /src/cjose/test/check_jwe.c:1624,1
    - Dst: memcpy
      Src: /src/cjose/test/check_jwe.c:1626,1
    - Dst: memcpy
      Src: /src/cjose/test/check_jwe.c:1627,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:1631,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1632,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:1635,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1636,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1637,1
    - Dst: free
      Src: /src/cjose/test/check_jwe.c:1639,1
    - Dst: free
      Src: /src/cjose/test/check_jwe.c:1640,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1641,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1642,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1643,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1644,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:1645,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1576
    functionDepth: 1
    functionLinenumber: 1576
    functionLinenumberEnd: 1647
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cjose_header_set
    - cjose_jwk_release
    - cjose_jwe_export
    - cjose_base64url_encode
    - strchr
    - cjose_jwe_import
    - free
    - ck_assert
    - ck_assert_msg
    - cjose_jwe_release
    - cjose_jwk_import
    - strlen
    - RSA_size
    - memset
    - cjose_get_dealloc
    - cjose_header_new
    - cjose_jwe_decrypt
    - RSA_public_encrypt
    - cjose_jwe_encrypt
    - cjose_header_release
    - malloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_decrypt_rsa_wrong_cek_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:1658,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1658,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1659,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:1661,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1662,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1662,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1663,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1663,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1666,1
    - Dst: memset
      Src: /src/cjose/test/check_jwe.c:1667,1
    - Dst: cjose_jwe_encrypt_iv
      Src: /src/cjose/test/check_jwe.c:1669,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1669,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1670,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1671,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:1673,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:1674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - alg
    - enc
    - key
    - iv_len
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1675
    functionName: _encrypt_with_bad_iv_length
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwe_encrypt_iv
    - cjose_jwk_import
    - cjose_header_set
    - strlen
    - cjose_jwk_release
    - ck_assert
    - cjose_header_release
    - ck_assert_msg
    - memset
    - cjose_header_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST _encrypt_with_bad_iv_length(const char *alg, const char *enc,
      const char *key, size_t iv_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _encrypt_with_bad_iv_length
      Src: /src/cjose/test/check_jwe.c:1679,1
    - Dst: _encrypt_with_bad_iv_length
      Src: /src/cjose/test/check_jwe.c:1680,1
    - Dst: _encrypt_with_bad_iv_length
      Src: /src/cjose/test/check_jwe.c:1681,1
    - Dst: _encrypt_with_bad_iv_length
      Src: /src/cjose/test/check_jwe.c:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1677
    functionDepth: 2
    functionLinenumber: 1677
    functionLinenumberEnd: 1683
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - _encrypt_with_bad_iv_length
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwe_encrypt_iv_bad_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwe.c:1691,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1691,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1692,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jwe.c:1694,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1695,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1696,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1696,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1697,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jwe.c:1697,1
    - Dst: cjose_jwe_encrypt
      Src: /src/cjose/test/check_jwe.c:1700,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1700,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1701,1
    - Dst: cjose_jwe_export
      Src: /src/cjose/test/check_jwe.c:1703,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1704,1
    - Dst: cjose_jwe_import
      Src: /src/cjose/test/check_jwe.c:1706,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1706,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1707,1
    - Dst: cjose_jwe_decrypt
      Src: /src/cjose/test/check_jwe.c:1711,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwe.c:1712,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1713,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwe.c:1713,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwe.c:1714,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jwe.c:1714,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1716,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwe.c:1717,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1718,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/test/check_jwe.c:1719,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jwe.c:1720,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwe.c:1721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1722
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_header_set
    - strlen
    - cjose_jwk_release
    - ck_assert
    - cjose_jwe_encrypt
    - cjose_jwe_export
    - cjose_header_release
    - ck_assert_msg
    - strncmp
    - cjose_jwe_release
    - cjose_get_dealloc
    - cjose_header_new
    - cjose_jwe_decrypt
    - cjose_jwe_import
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwe_ecdh_es_null_err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/cjose/test/check_jwe.c:1727,1
    - Dst: tcase_create
      Src: /src/cjose/test/check_jwe.c:1729,1
    - Dst: tcase_set_timeout
      Src: /src/cjose/test/check_jwe.c:1730,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1731,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1732,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1733,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1734,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1735,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1736,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1737,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1738,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1739,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1740,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1741,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1742,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1743,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1744,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1745,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1746,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1747,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1748,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1749,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1750,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1751,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwe.c:1752,1
    - Dst: suite_add_tcase
      Src: /src/cjose/test/check_jwe.c:1753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1723
    functionDepth: 0
    functionLinenumber: 1723
    functionLinenumberEnd: 1756
    functionName: cjose_jwe_suite
    functionSourceFile: /src/cjose/test/check_jwe.c
    functionUses: 0
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_set_timeout
    - tcase_add_test
    - suite_add_tcase
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *cjose_jwe_suite(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:18,1
    - Dst: cjose_base64_encode
      Src: /src/cjose/test/check_base64.c:18,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:19,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:20,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:21,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:27,1
    - Dst: cjose_base64_encode
      Src: /src/cjose/test/check_base64.c:27,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:28,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:29,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:30,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:36,1
    - Dst: cjose_base64_encode
      Src: /src/cjose/test/check_base64.c:36,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:37,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:38,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:39,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:45,1
    - Dst: cjose_base64_encode
      Src: /src/cjose/test/check_base64.c:45,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:46,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:47,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:48,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:54,1
    - Dst: cjose_base64_encode
      Src: /src/cjose/test/check_base64.c:54,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:55,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:56,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:57,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:63,1
    - Dst: cjose_base64_encode
      Src: /src/cjose/test/check_base64.c:63,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:64,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:65,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:66,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:72,1
    - Dst: cjose_base64_encode
      Src: /src/cjose/test/check_base64.c:72,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:73,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:74,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:75,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:82,1
    - Dst: cjose_base64_encode
      Src: /src/cjose/test/check_base64.c:82,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:83,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:84,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:85,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:92,1
    - Dst: cjose_base64_encode
      Src: /src/cjose/test/check_base64.c:92,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:93,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:94,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:95,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:102,1
    - Dst: cjose_base64_encode
      Src: /src/cjose/test/check_base64.c:102,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:103,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:104,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 106
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_base64.c
    functionUses: 0
    functionsReached:
    - ck_assert
    - ck_assert_int_eq
    - ck_assert_str_eq
    - cjose_get_dealloc
    - cjose_base64_encode
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_base64_encode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:118,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_base64.c:118,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:119,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:120,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:121,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:127,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_base64.c:127,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:128,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:129,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:130,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:136,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_base64.c:136,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:137,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:138,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:139,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:145,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_base64.c:145,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:146,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:147,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:148,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:154,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_base64.c:154,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:155,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:156,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:157,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:163,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_base64.c:163,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:164,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:165,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:166,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:172,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_base64.c:172,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:173,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:174,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:175,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:182,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_base64.c:182,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_base64.c:183,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:184,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:185,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:192,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_base64.c:192,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:193,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:194,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:195,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:202,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_base64.c:202,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:203,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:204,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 206
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_base64.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - ck_assert
    - ck_assert_int_eq
    - ck_assert_str_eq
    - cjose_base64url_encode
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_base64url_encode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:220,1
    - Dst: cjose_base64_decode
      Src: /src/cjose/test/check_base64.c:220,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:221,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:222,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:223,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:229,1
    - Dst: cjose_base64_decode
      Src: /src/cjose/test/check_base64.c:229,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:230,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:231,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:232,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:238,1
    - Dst: cjose_base64_decode
      Src: /src/cjose/test/check_base64.c:238,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:239,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:240,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:241,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:247,1
    - Dst: cjose_base64_decode
      Src: /src/cjose/test/check_base64.c:247,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:248,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:249,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:250,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:256,1
    - Dst: cjose_base64_decode
      Src: /src/cjose/test/check_base64.c:256,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:257,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:258,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:259,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:265,1
    - Dst: cjose_base64_decode
      Src: /src/cjose/test/check_base64.c:265,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:266,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:267,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:268,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:274,1
    - Dst: cjose_base64_decode
      Src: /src/cjose/test/check_base64.c:274,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:275,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:276,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:277,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:284,1
    - Dst: cjose_base64_decode
      Src: /src/cjose/test/check_base64.c:284,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:285,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:286,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:287,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:294,1
    - Dst: cjose_base64_decode
      Src: /src/cjose/test/check_base64.c:294,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:295,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:296,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:297,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:304,1
    - Dst: cjose_base64_decode
      Src: /src/cjose/test/check_base64.c:304,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:305,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:306,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:307,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:314,1
    - Dst: cjose_base64_decode
      Src: /src/cjose/test/check_base64.c:314,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:315,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:316,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 318
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_base64.c
    functionUses: 0
    functionsReached:
    - ck_assert
    - ck_assert_bin_eq
    - ck_assert_int_eq
    - cjose_get_dealloc
    - cjose_base64_decode
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_base64_decode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:332,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_base64.c:332,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:333,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:334,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:335,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:341,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_base64.c:341,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:342,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:343,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:344,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:350,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_base64.c:350,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:351,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:352,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:353,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:359,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_base64.c:359,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:360,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:361,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:362,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:368,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_base64.c:368,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:369,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:370,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:371,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:377,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_base64.c:377,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:378,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:379,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:380,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:386,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_base64.c:386,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:387,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:388,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:389,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:395,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_base64.c:395,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_base64.c:396,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_base64.c:397,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_base64.c:398,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:405,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_base64.c:405,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:406,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:407,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:408,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:415,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_base64.c:415,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:416,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:417,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:418,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:425,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_base64.c:425,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:426,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:427,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_base64.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 429
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_base64.c
    functionUses: 0
    functionsReached:
    - ck_assert
    - cjose_base64url_decode
    - ck_assert_bin_eq
    - ck_assert_int_eq
    - cjose_get_dealloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_base64url_decode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/cjose/test/check_base64.c:434,1
    - Dst: tcase_create
      Src: /src/cjose/test/check_base64.c:436,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_base64.c:437,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_base64.c:438,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_base64.c:439,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_base64.c:440,1
    - Dst: suite_add_tcase
      Src: /src/cjose/test/check_base64.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 444
    functionName: cjose_base64_suite
    functionSourceFile: /src/cjose/test/check_base64.c
    functionUses: 0
    functionsReached:
    - tcase_create
    - suite_create
    - suite_add_tcase
    - tcase_add_test
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *cjose_base64_suite(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/cjose/test/check_util.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - amt
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: test_alloc
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *test_alloc(size_t amt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/cjose/test/check_util.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - amt
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: test_realloc
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *test_realloc(void *ptr, size_t amt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cjose/test/check_util.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: test_dealloc
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void test_dealloc(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: test_alloc_reset
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_alloc_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:42,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/test/check_util.c:42,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:43,1
    - Dst: cjose_get_realloc
      Src: /src/cjose/test/check_util.c:43,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:44,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_util.c:44,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:45,1
    - Dst: cjose_get_alloc3
      Src: /src/cjose/test/check_util.c:45,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:46,1
    - Dst: cjose_get_realloc3
      Src: /src/cjose/test/check_util.c:46,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:47,1
    - Dst: cjose_get_dealloc3
      Src: /src/cjose/test/check_util.c:47,1
    - Dst: cjose_set_alloc_funcs
      Src: /src/cjose/test/check_util.c:50,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:51,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/test/check_util.c:51,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:52,1
    - Dst: cjose_get_realloc
      Src: /src/cjose/test/check_util.c:52,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:53,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_util.c:53,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:54,1
    - Dst: cjose_get_alloc3
      Src: /src/cjose/test/check_util.c:54,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:55,1
    - Dst: cjose_get_realloc3
      Src: /src/cjose/test/check_util.c:55,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:56,1
    - Dst: cjose_get_dealloc3
      Src: /src/cjose/test/check_util.c:56,1
    - Dst: test_alloc_reset
      Src: /src/cjose/test/check_util.c:63,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/test/check_util.c:66,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:67,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:68,1
    - Dst: cjose_get_realloc
      Src: /src/cjose/test/check_util.c:71,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:72,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:73,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:74,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_util.c:77,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:78,1
    - Dst: test_alloc_reset
      Src: /src/cjose/test/check_util.c:81,1
    - Dst: cjose_get_alloc3
      Src: /src/cjose/test/check_util.c:84,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:85,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:86,1
    - Dst: cjose_get_realloc3
      Src: /src/cjose/test/check_util.c:89,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:90,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:91,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:92,1
    - Dst: cjose_get_dealloc3
      Src: /src/cjose/test/check_util.c:95,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:96,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:99,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/test/check_util.c:99,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:100,1
    - Dst: cjose_get_realloc
      Src: /src/cjose/test/check_util.c:100,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:101,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_util.c:101,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:102,1
    - Dst: cjose_get_alloc3
      Src: /src/cjose/test/check_util.c:102,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:103,1
    - Dst: cjose_get_realloc3
      Src: /src/cjose/test/check_util.c:103,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:104,1
    - Dst: cjose_get_dealloc3
      Src: /src/cjose/test/check_util.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 105
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc3
    - test_alloc_reset
    - cjose_get_realloc3
    - cjose_get_alloc
    - cjose_set_alloc_funcs
    - ck_assert
    - cjose_get_alloc3
    - cjose_get_dealloc
    - cjose_get_realloc
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_set_allocators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_alloc_reset
      Src: /src/cjose/test/check_util.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: test_alloc3_reset
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached:
    - test_alloc_reset
    linkageType: ''
    returnType: void
    signature: void test_alloc3_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/cjose/test/check_util.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - amt
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: test_alloc3
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *test_alloc3(size_t amt, const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/cjose/test/check_util.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ptr
    - amt
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: test_realloc3
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *test_realloc3(void *ptr, size_t amt, const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cjose/test/check_util.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ptr
    - file
    - line
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: test_dealloc3
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void test_dealloc3(void *ptr, const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:152,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/test/check_util.c:152,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:153,1
    - Dst: cjose_get_realloc
      Src: /src/cjose/test/check_util.c:153,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:154,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_util.c:154,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:155,1
    - Dst: cjose_get_alloc3
      Src: /src/cjose/test/check_util.c:155,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:156,1
    - Dst: cjose_get_realloc3
      Src: /src/cjose/test/check_util.c:156,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:157,1
    - Dst: cjose_get_dealloc3
      Src: /src/cjose/test/check_util.c:157,1
    - Dst: cjose_set_alloc_ex_funcs
      Src: /src/cjose/test/check_util.c:159,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:161,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/test/check_util.c:161,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:162,1
    - Dst: cjose_get_realloc
      Src: /src/cjose/test/check_util.c:162,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:163,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_util.c:163,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:164,1
    - Dst: cjose_get_alloc3
      Src: /src/cjose/test/check_util.c:164,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:165,1
    - Dst: cjose_get_realloc3
      Src: /src/cjose/test/check_util.c:165,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:166,1
    - Dst: cjose_get_dealloc3
      Src: /src/cjose/test/check_util.c:166,1
    - Dst: test_alloc3_reset
      Src: /src/cjose/test/check_util.c:175,1
    - Dst: cjose_get_alloc3
      Src: /src/cjose/test/check_util.c:180,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:181,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:182,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:183,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:184,1
    - Dst: cjose_get_realloc3
      Src: /src/cjose/test/check_util.c:189,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:190,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:191,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:192,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:193,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:194,1
    - Dst: cjose_get_dealloc3
      Src: /src/cjose/test/check_util.c:199,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:200,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:201,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:202,1
    - Dst: test_alloc3_reset
      Src: /src/cjose/test/check_util.c:205,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/test/check_util.c:208,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:209,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:210,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:211,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:212,1
    - Dst: cjose_get_realloc
      Src: /src/cjose/test/check_util.c:215,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:216,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:217,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:218,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:219,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:220,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_util.c:223,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:224,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:225,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:226,1
    - Dst: test_alloc3_reset
      Src: /src/cjose/test/check_util.c:228,1
    - Dst: cjose_set_alloc_ex_funcs
      Src: /src/cjose/test/check_util.c:230,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:232,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/test/check_util.c:232,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:233,1
    - Dst: cjose_get_realloc
      Src: /src/cjose/test/check_util.c:233,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:234,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_util.c:234,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:235,1
    - Dst: cjose_get_alloc3
      Src: /src/cjose/test/check_util.c:235,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:236,1
    - Dst: cjose_get_realloc3
      Src: /src/cjose/test/check_util.c:236,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:237,1
    - Dst: cjose_get_dealloc3
      Src: /src/cjose/test/check_util.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 238
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc3
    - cjose_get_realloc3
    - cjose_get_alloc
    - ck_assert
    - test_alloc3_reset
    - cjose_get_alloc3
    - cjose_get_dealloc
    - cjose_set_alloc_ex_funcs
    - cjose_get_realloc
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_set_allocators_ex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:245,1
    - Dst: cjose_err_message
      Src: /src/cjose/test/check_util.c:245,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:246,1
    - Dst: cjose_err_message
      Src: /src/cjose/test/check_util.c:246,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:247,1
    - Dst: cjose_err_message
      Src: /src/cjose/test/check_util.c:247,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:248,1
    - Dst: cjose_err_message
      Src: /src/cjose/test/check_util.c:248,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_util.c:249,1
    - Dst: cjose_err_message
      Src: /src/cjose/test/check_util.c:249,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_util.c:250,1
    - Dst: cjose_err_message
      Src: /src/cjose/test/check_util.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached:
    - cjose_err_message
    - ck_assert
    - ck_assert_str_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_err_message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/cjose/test/check_util.c:256,1
    - Dst: tcase_create
      Src: /src/cjose/test/check_util.c:258,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_util.c:259,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_util.c:260,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_util.c:261,1
    - Dst: suite_add_tcase
      Src: /src/cjose/test/check_util.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 265
    functionName: cjose_util_suite
    functionSourceFile: /src/cjose/test/check_util.c
    functionUses: 0
    functionsReached:
    - tcase_create
    - suite_create
    - suite_add_tcase
    - tcase_add_test
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *cjose_util_suite(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/cjose/test/check_cjose.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 16
    functionName: cjose_suite
    functionSourceFile: /src/cjose/test/check_cjose.c
    functionUses: 0
    functionsReached:
    - suite_create
    linkageType: ''
    returnType: Suite
    signature: Suite *cjose_suite(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_crypto_strings
      Src: /src/cjose/test/check_cjose.c:21,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/cjose/test/check_cjose.c:22,1
    - Dst: srunner_create
      Src: /src/cjose/test/check_cjose.c:25,1
    - Dst: cjose_suite
      Src: /src/cjose/test/check_cjose.c:25,1
    - Dst: srunner_set_fork_status
      Src: /src/cjose/test/check_cjose.c:27,1
    - Dst: srunner_add_suite
      Src: /src/cjose/test/check_cjose.c:29,1
    - Dst: cjose_version_suite
      Src: /src/cjose/test/check_cjose.c:29,1
    - Dst: srunner_add_suite
      Src: /src/cjose/test/check_cjose.c:30,1
    - Dst: cjose_util_suite
      Src: /src/cjose/test/check_cjose.c:30,1
    - Dst: srunner_add_suite
      Src: /src/cjose/test/check_cjose.c:31,1
    - Dst: cjose_base64_suite
      Src: /src/cjose/test/check_cjose.c:31,1
    - Dst: srunner_add_suite
      Src: /src/cjose/test/check_cjose.c:32,1
    - Dst: cjose_concatkdf_suite
      Src: /src/cjose/test/check_cjose.c:32,1
    - Dst: srunner_add_suite
      Src: /src/cjose/test/check_cjose.c:33,1
    - Dst: cjose_jwk_suite
      Src: /src/cjose/test/check_cjose.c:33,1
    - Dst: srunner_add_suite
      Src: /src/cjose/test/check_cjose.c:34,1
    - Dst: cjose_jwe_suite
      Src: /src/cjose/test/check_cjose.c:34,1
    - Dst: srunner_add_suite
      Src: /src/cjose/test/check_cjose.c:35,1
    - Dst: cjose_jws_suite
      Src: /src/cjose/test/check_cjose.c:35,1
    - Dst: srunner_add_suite
      Src: /src/cjose/test/check_cjose.c:36,1
    - Dst: cjose_header_suite
      Src: /src/cjose/test/check_cjose.c:36,1
    - Dst: srunner_run_all
      Src: /src/cjose/test/check_cjose.c:38,1
    - Dst: srunner_ntests_failed
      Src: /src/cjose/test/check_cjose.c:39,1
    - Dst: srunner_free
      Src: /src/cjose/test/check_cjose.c:40,1
    - Dst: EVP_cleanup
      Src: /src/cjose/test/check_cjose.c:43,1
    - Dst: ERR_free_strings
      Src: /src/cjose/test/check_cjose.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 47
    functionName: main
    functionSourceFile: /src/cjose/test/check_cjose.c
    functionUses: 14
    functionsReached:
    - EVP_cleanup
    - srunner_create
    - srunner_set_fork_status
    - srunner_ntests_failed
    - cjose_concatkdf_suite
    - cjose_version_suite
    - cjose_util_suite
    - cjose_base64_suite
    - cjose_suite
    - cjose_jwk_suite
    - cjose_jws_suite
    - srunner_run_all
    - srunner_add_suite
    - OpenSSL_add_all_algorithms
    - cjose_jwe_suite
    - srunner_free
    - ERR_load_crypto_strings
    - cjose_header_suite
    - ERR_free_strings
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/test/check_jwk.c:32,1
    - Dst: json_string_value
      Src: /src/cjose/test/check_jwk.c:35,1
    - Dst: json_object_get
      Src: /src/cjose/test/check_jwk.c:39,1
    - Dst: json_string_value
      Src: /src/cjose/test/check_jwk.c:42,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jwk.c:47,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - left_json
    - right_json
    - attrs
    argTypes:
    - json_t*
    - json_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 53
    functionName: _match_string_attrs
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - json_object_get
    - strcmp
    - json_string_value
    linkageType: ''
    returnType: bool
    signature: bool _match_string_attrs(json_t *left_json, json_t *right_json, const
      char **attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:58,1
    - Dst: cjose_jwk_name_for_kty
      Src: /src/cjose/test/check_jwk.c:58,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:59,1
    - Dst: cjose_jwk_name_for_kty
      Src: /src/cjose/test/check_jwk.c:59,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:60,1
    - Dst: cjose_jwk_name_for_kty
      Src: /src/cjose/test/check_jwk.c:60,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:61,1
    - Dst: cjose_jwk_name_for_kty
      Src: /src/cjose/test/check_jwk.c:61,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:62,1
    - Dst: cjose_jwk_name_for_kty
      Src: /src/cjose/test/check_jwk.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    - ck_assert
    - cjose_jwk_name_for_kty
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwk_name_for_kty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cjose/test/check_jwk.c:91,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:92,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:92,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:93,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:93,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:94,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:94,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:95,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:95,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:96,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:96,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:97,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:97,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:98,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:98,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:99,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:99,1
    - Dst: cjose_jwk_create_RSA_spec
      Src: /src/cjose/test/check_jwk.c:103,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:104,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:105,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:106,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:107,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:108,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:108,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:109,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:110,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:110,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:111,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:116,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:118,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:120,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:122,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:124,1
    - Dst: cjose_jwk_create_RSA_spec
      Src: /src/cjose/test/check_jwk.c:126,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:127,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:128,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:129,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:130,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:131,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:131,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:132,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:133,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:133,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:134,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:136,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:138,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:140,1
    - Dst: memset
      Src: /src/cjose/test/check_jwk.c:144,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:145,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:145,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:146,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:146,1
    - Dst: cjose_jwk_create_RSA_spec
      Src: /src/cjose/test/check_jwk.c:148,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:149,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:150,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:151,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:152,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:153,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:153,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:154,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:155,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:155,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:156,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:158,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 162
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - strlen
    - cjose_jwk_release
    - cjose_base64url_decode
    - ck_assert
    - cjose_jwk_get_keydata
    - memset
    - cjose_get_dealloc
    - cjose_jwk_get_keysize
    - cjose_jwk_create_RSA_spec
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwk_create_RSA_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_create_RSA_random
      Src: /src/cjose/test/check_jwk.c:174,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:175,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:176,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:177,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:178,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:179,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:179,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:180,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:181,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:181,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:183,1
    - Dst: cjose_jwk_create_RSA_random
      Src: /src/cjose/test/check_jwk.c:187,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:188,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:189,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:190,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:191,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:192,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:192,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:193,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:194,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:194,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 197
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_release
    - cjose_jwk_create_RSA_random
    - ck_assert
    - cjose_jwk_get_keydata
    - cjose_jwk_get_keysize
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_create_RSA_random)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cjose/test/check_jwk.c:209,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:211,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:211,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:212,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:212,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:213,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:213,1
    - Dst: cjose_jwk_create_EC_spec
      Src: /src/cjose/test/check_jwk.c:215,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:216,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:217,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:218,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:219,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:220,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:220,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:221,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:222,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:222,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:223,1
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/cjose/test/check_jwk.c:223,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:224,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:225,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:226,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 230
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_EC_get_curve
    - strlen
    - cjose_jwk_release
    - ck_assert
    - cjose_base64url_decode
    - cjose_jwk_get_keydata
    - cjose_jwk_create_EC_spec
    - memset
    - cjose_get_dealloc
    - cjose_jwk_get_keysize
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwk_create_EC_P256_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_create_EC_random
      Src: /src/cjose/test/check_jwk.c:237,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:238,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:239,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:240,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:241,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:241,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:242,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:243,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:243,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:244,1
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/cjose/test/check_jwk.c:244,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 248
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_EC_get_curve
    - cjose_jwk_release
    - ck_assert
    - cjose_jwk_get_keydata
    - cjose_jwk_create_EC_random
    - cjose_jwk_get_keysize
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_create_EC_P256_random)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cjose/test/check_jwk.c:260,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:262,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:262,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:263,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:263,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:264,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:264,1
    - Dst: cjose_jwk_create_EC_spec
      Src: /src/cjose/test/check_jwk.c:266,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:267,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:268,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:269,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:270,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:271,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:271,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:272,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:273,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:273,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:274,1
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/cjose/test/check_jwk.c:274,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:275,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:276,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:277,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 281
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_EC_get_curve
    - strlen
    - cjose_jwk_release
    - ck_assert
    - cjose_base64url_decode
    - cjose_jwk_get_keydata
    - cjose_jwk_create_EC_spec
    - memset
    - cjose_get_dealloc
    - cjose_jwk_get_keysize
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwk_create_EC_P384_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_create_EC_random
      Src: /src/cjose/test/check_jwk.c:288,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:289,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:290,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:291,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:292,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:292,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:293,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:294,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:294,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:295,1
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/cjose/test/check_jwk.c:295,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 299
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_EC_get_curve
    - cjose_jwk_release
    - ck_assert
    - cjose_jwk_get_keydata
    - cjose_jwk_create_EC_random
    - cjose_jwk_get_keysize
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_create_EC_P384_random)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cjose/test/check_jwk.c:311,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:313,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:313,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:314,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:314,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:315,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:315,1
    - Dst: cjose_jwk_create_EC_spec
      Src: /src/cjose/test/check_jwk.c:317,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:318,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:319,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:320,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:321,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:322,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:322,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:323,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:324,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:324,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:325,1
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/cjose/test/check_jwk.c:325,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:326,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:327,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:328,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 332
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_EC_get_curve
    - strlen
    - cjose_jwk_release
    - free
    - ck_assert
    - cjose_base64url_decode
    - cjose_jwk_get_keydata
    - cjose_jwk_create_EC_spec
    - memset
    - cjose_jwk_get_keysize
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwk_create_EC_P521_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_create_EC_random
      Src: /src/cjose/test/check_jwk.c:339,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:340,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:341,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:342,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:343,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:343,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:344,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:345,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:345,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:346,1
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/cjose/test/check_jwk.c:346,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 350
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_EC_get_curve
    - cjose_jwk_release
    - ck_assert
    - cjose_jwk_get_keydata
    - cjose_jwk_create_EC_random
    - cjose_jwk_get_keysize
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_create_EC_P521_random)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:361,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:361,1
    - Dst: cjose_jwk_create_oct_spec
      Src: /src/cjose/test/check_jwk.c:363,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:364,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:365,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:366,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:367,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:367,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:368,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:369,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:369,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_jwk.c:370,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:371,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 375
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - strlen
    - cjose_jwk_release
    - cjose_base64url_decode
    - ck_assert
    - cjose_jwk_get_keydata
    - ck_assert_bin_eq
    - cjose_jwk_create_oct_spec
    - cjose_get_dealloc
    - cjose_jwk_get_keysize
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwk_create_oct_spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_create_oct_random
      Src: /src/cjose/test/check_jwk.c:382,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:383,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:384,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:385,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:386,1
    - Dst: cjose_jwk_get_keysize
      Src: /src/cjose/test/check_jwk.c:386,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:387,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:388,1
    - Dst: cjose_jwk_get_keydata
      Src: /src/cjose/test/check_jwk.c:388,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 392
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_release
    - ck_assert
    - cjose_jwk_get_keydata
    - cjose_jwk_create_oct_random
    - cjose_jwk_get_keysize
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_create_oct_random)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_create_oct_random
      Src: /src/cjose/test/check_jwk.c:399,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:400,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 402
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_create_oct_random
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_create_oct_random_inval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_create_oct_random
      Src: /src/cjose/test/check_jwk.c:409,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:410,1
    - Dst: cjose_jwk_retain
      Src: /src/cjose/test/check_jwk.c:413,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:414,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:415,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:418,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:419,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:420,1
    - Dst: cjose_jwk_retain
      Src: /src/cjose/test/check_jwk.c:422,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:423,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:424,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:426,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:427,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:428,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:430,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:431,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:433,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:434,1
    - Dst: cjose_jwk_retain
      Src: /src/cjose/test/check_jwk.c:436,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 438
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_retain
    - cjose_jwk_create_oct_random
    - ck_assert
    - cjose_jwk_release
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_retain_release)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_create_oct_random
      Src: /src/cjose/test/check_jwk.c:445,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:446,1
    - Dst: cjose_jwk_get_kty
      Src: /src/cjose/test/check_jwk.c:446,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:447,1
    - Dst: cjose_jwk_create_EC_random
      Src: /src/cjose/test/check_jwk.c:449,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:450,1
    - Dst: cjose_jwk_get_kty
      Src: /src/cjose/test/check_jwk.c:450,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 452
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_release
    - ck_assert
    - cjose_jwk_create_EC_random
    - cjose_jwk_get_kty
    - cjose_jwk_create_oct_random
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_get_kty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:462,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:462,1
    - Dst: cjose_jwk_create_oct_spec
      Src: /src/cjose/test/check_jwk.c:463,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:464,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:467,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:468,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:469,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:470,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:472,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:473,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:474,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:475,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 478
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - strlen
    - cjose_jwk_release
    - free
    - cjose_base64url_decode
    - cjose_jwk_to_json
    - ck_assert
    - cjose_jwk_create_oct_spec
    - ck_assert_str_eq
    - cjose_get_dealloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_to_json_oct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cjose/test/check_jwk.c:486,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:488,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:488,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:489,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:489,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:490,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:490,1
    - Dst: cjose_jwk_create_EC_spec
      Src: /src/cjose/test/check_jwk.c:492,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:493,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:494,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:495,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:498,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:499,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:500,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:504,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:506,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:507,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:508,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:513,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 516
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - strlen
    - cjose_jwk_release
    - free
    - cjose_base64url_decode
    - cjose_jwk_to_json
    - ck_assert
    - ck_assert_str_eq
    - cjose_jwk_create_EC_spec
    - memset
    - cjose_get_dealloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_to_json_ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cjose/test/check_jwk.c:532,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:533,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:533,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:534,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:534,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:535,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:535,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:536,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:536,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:537,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:537,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:538,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:538,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:539,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:539,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:540,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:540,1
    - Dst: cjose_jwk_create_RSA_spec
      Src: /src/cjose/test/check_jwk.c:542,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:543,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:544,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:545,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:546,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:547,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:548,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:549,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:550,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:553,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:554,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:555,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:556,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:558,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:559,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:560,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:581,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 584
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - strlen
    - cjose_jwk_release
    - free
    - cjose_base64url_decode
    - cjose_jwk_to_json
    - ck_assert
    - ck_assert_str_eq
    - memset
    - cjose_get_dealloc
    - cjose_jwk_create_RSA_spec
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwk_to_json_rsa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/cjose/test/check_jwk.c:734,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:735,1
    - Dst: cjose_jwk_import_json
      Src: /src/cjose/test/check_jwk.c:738,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:739,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:745,1
    - Dst: json_loads
      Src: /src/cjose/test/check_jwk.c:746,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:747,1
    - Dst: _match_string_attrs
      Src: /src/cjose/test/check_jwk.c:751,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:753,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:756,1
    - Dst: json_decref
      Src: /src/cjose/test/check_jwk.c:757,1
    - Dst: json_decref
      Src: /src/cjose/test/check_jwk.c:758,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 761
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_release
    - free
    - ck_assert
    - cjose_jwk_to_json
    - json_loads
    - cjose_jwk_import_json
    - json_decref
    - ck_assert_msg
    - ck_assert_str_eq
    - _match_string_attrs
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_import_json_valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/cjose/test/check_jwk.c:861,1
    - Dst: cjose_jwk_import_json
      Src: /src/cjose/test/check_jwk.c:862,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:863,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_jwk.c:864,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:865,1
    - Dst: json_decref
      Src: /src/cjose/test/check_jwk.c:866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 868
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_release
    - json_loads
    - cjose_jwk_import_json
    - json_decref
    - ck_assert_msg
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_import_json_invalid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwk.c:1018,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:1018,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1019,1
    - Dst: json_loads
      Src: /src/cjose/test/check_jwk.c:1025,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1026,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:1029,1
    - Dst: json_loads
      Src: /src/cjose/test/check_jwk.c:1030,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1031,1
    - Dst: _match_string_attrs
      Src: /src/cjose/test/check_jwk.c:1035,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:1037,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:1040,1
    - Dst: json_decref
      Src: /src/cjose/test/check_jwk.c:1041,1
    - Dst: json_decref
      Src: /src/cjose/test/check_jwk.c:1042,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:1043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 1045
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - strlen
    - cjose_jwk_release
    - free
    - ck_assert
    - cjose_jwk_to_json
    - json_loads
    - json_decref
    - ck_assert_msg
    - ck_assert_str_eq
    - _match_string_attrs
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_import_valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwk.c:1170,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:1170,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1171,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_jwk.c:1172,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1175
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_jwk_release
    - strlen
    - ck_assert_msg
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_import_invalid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwk.c:1189,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1190,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:1191,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwk.c:1194,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1195,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1197
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - ck_assert_msg
    - cjose_jwk_release
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_import_underflow_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwk.c:1215,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1216,1
    - Dst: json_loads
      Src: /src/cjose/test/check_jwk.c:1219,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1220,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:1223,1
    - Dst: json_loads
      Src: /src/cjose/test/check_jwk.c:1224,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1225,1
    - Dst: _match_string_attrs
      Src: /src/cjose/test/check_jwk.c:1229,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:1231,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:1234,1
    - Dst: json_decref
      Src: /src/cjose/test/check_jwk.c:1235,1
    - Dst: json_decref
      Src: /src/cjose/test/check_jwk.c:1236,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1198
    functionDepth: 2
    functionLinenumber: 1198
    functionLinenumberEnd: 1238
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_jwk_release
    - free
    - ck_assert
    - cjose_jwk_to_json
    - json_loads
    - json_decref
    - ck_assert_msg
    - ck_assert_str_eq
    - _match_string_attrs
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_import_no_zero_termination)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwk.c:1257,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:1257,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1258,1
    - Dst: json_loads
      Src: /src/cjose/test/check_jwk.c:1261,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1262,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:1265,1
    - Dst: json_loads
      Src: /src/cjose/test/check_jwk.c:1266,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1267,1
    - Dst: _match_string_attrs
      Src: /src/cjose/test/check_jwk.c:1271,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:1273,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:1276,1
    - Dst: json_decref
      Src: /src/cjose/test/check_jwk.c:1277,1
    - Dst: json_decref
      Src: /src/cjose/test/check_jwk.c:1278,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:1279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1239
    functionDepth: 2
    functionLinenumber: 1239
    functionLinenumberEnd: 1280
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - strlen
    - cjose_jwk_release
    - free
    - ck_assert
    - cjose_jwk_to_json
    - json_loads
    - json_decref
    - ck_assert_msg
    - ck_assert_str_eq
    - _match_string_attrs
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_import_with_base64url_padding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwk.c:1299,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:1299,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1300,1
    - Dst: json_loads
      Src: /src/cjose/test/check_jwk.c:1303,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1304,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:1307,1
    - Dst: json_loads
      Src: /src/cjose/test/check_jwk.c:1308,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1309,1
    - Dst: _match_string_attrs
      Src: /src/cjose/test/check_jwk.c:1313,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_jwk.c:1315,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:1318,1
    - Dst: json_decref
      Src: /src/cjose/test/check_jwk.c:1319,1
    - Dst: json_decref
      Src: /src/cjose/test/check_jwk.c:1320,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:1321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1322
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - strlen
    - cjose_jwk_release
    - free
    - ck_assert
    - cjose_jwk_to_json
    - json_loads
    - json_decref
    - ck_assert_msg
    - ck_assert_str_eq
    - _match_string_attrs
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_EC_import_with_priv_export_with_pub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:1330,1
    - Dst: malloc
      Src: /src/cjose/test/check_jwk.c:1333,1
    - Dst: cjose_jwk_hkdf
      Src: /src/cjose/test/check_jwk.c:1334,1
    - Dst: EVP_sha256
      Src: /src/cjose/test/check_jwk.c:1334,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1336,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1345,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:1347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1348
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - strlen
    - cjose_jwk_hkdf
    - EVP_sha256
    - free
    - ck_assert_msg
    - malloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_hkdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1414,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jwk.c:1421,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:1421,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1422,1
    - Dst: cjose_jwk_get_kid
      Src: /src/cjose/test/check_jwk.c:1425,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1426,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jwk.c:1426,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1429,1
    - Dst: cjose_jwk_set_kid
      Src: /src/cjose/test/check_jwk.c:1429,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:1429,1
    - Dst: cjose_jwk_get_kid
      Src: /src/cjose/test/check_jwk.c:1432,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1433,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jwk.c:1433,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/test/check_jwk.c:1436,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1437,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jwk.c:1437,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:1440,1
    - Dst: free
      Src: /src/cjose/test/check_jwk.c:1441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1443
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - strlen
    - cjose_jwk_get_kid
    - cjose_jwk_release
    - free
    - ck_assert
    - strcmp
    - cjose_jwk_set_kid
    - cjose_jwk_to_json
    - ck_assert_msg
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_get_and_set_kid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_create_RSA_random
      Src: /src/cjose/test/check_jwk.c:1459,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1460,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_jwk.c:1461,1
    - Dst: cjose_jwk_create_RSA_random
      Src: /src/cjose/test/check_jwk.c:1464,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1465,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_jwk.c:1466,1
    - Dst: cjose_jwk_create_RSA_random
      Src: /src/cjose/test/check_jwk.c:1469,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1470,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_jwk.c:1471,1
    - Dst: cjose_jwk_create_RSA_random
      Src: /src/cjose/test/check_jwk.c:1474,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1475,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:1476,1
    - Dst: cjose_jwk_create_RSA_random
      Src: /src/cjose/test/check_jwk.c:1479,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1480,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1482
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cjose_jwk_release
    - cjose_jwk_create_RSA_random
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jwk_create_RSA_random_weak_keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cjose/test/check_jwk.c:1492,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1493,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:1493,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:1493,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1494,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:1494,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:1494,1
    - Dst: cjose_jwk_create_RSA_spec
      Src: /src/cjose/test/check_jwk.c:1496,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1497,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_jwk.c:1498,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:1501,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:1502,1
    - Dst: memset
      Src: /src/cjose/test/check_jwk.c:1505,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1506,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:1506,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:1506,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1507,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jwk.c:1507,1
    - Dst: strlen
      Src: /src/cjose/test/check_jwk.c:1507,1
    - Dst: cjose_jwk_create_RSA_spec
      Src: /src/cjose/test/check_jwk.c:1509,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jwk.c:1510,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jwk.c:1511,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jwk.c:1512,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:1515,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jwk.c:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1517
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 0
    functionsReached:
    - strlen
    - cjose_jwk_release
    - ck_assert
    - cjose_base64url_decode
    - ck_assert_msg
    - ck_assert_int_eq
    - memset
    - cjose_get_dealloc
    - cjose_jwk_create_RSA_spec
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jwk_create_RSA_spec_weak_modulus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/cjose/test/check_jwk.c:1522,1
    - Dst: tcase_create
      Src: /src/cjose/test/check_jwk.c:1524,1
    - Dst: tcase_set_timeout
      Src: /src/cjose/test/check_jwk.c:1525,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1526,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1527,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1528,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1529,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1530,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1531,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1532,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1533,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1534,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1535,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1536,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1537,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1538,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1539,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1540,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1541,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1542,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1543,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1544,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1545,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1546,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1547,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1548,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1549,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1550,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1551,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1552,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1553,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jwk.c:1554,1
    - Dst: suite_add_tcase
      Src: /src/cjose/test/check_jwk.c:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1518
    functionDepth: 0
    functionLinenumber: 1518
    functionLinenumberEnd: 1558
    functionName: cjose_jwk_suite
    functionSourceFile: /src/cjose/test/check_jwk.c
    functionUses: 1
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_set_timeout
    - tcase_add_test
    - suite_add_tcase
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *cjose_jwk_suite(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - X
    - ','
    - OP
    - ','
    - Y
    - ','
    - LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: _ck_assert_bin
    functionSourceFile: /src/cjose/test/check_cjose.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ck_assert_bin(X, OP, Y, LEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: ck_assert_bin_eq
    functionSourceFile: /src/cjose/test/check_cjose.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ck_assert_bin_eq(X, Y, LEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_header.c:23,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:24,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_header.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_header.c
    functionUses: 0
    functionsReached:
    - cjose_header_release
    - cjose_header_new
    - ck_assert_msg
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_header_new_release)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_header.c:34,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:35,1
    - Dst: cjose_header_retain
      Src: /src/cjose/test/check_header.c:37,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:38,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_header.c:40,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_header.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_header.c
    functionUses: 0
    functionsReached:
    - cjose_header_retain
    - cjose_header_release
    - cjose_header_new
    - ck_assert_msg
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_header_retain_release)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_header.c:53,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:54,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_header.c:56,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:57,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_header.c:59,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:60,1
    - Dst: cjose_header_get
      Src: /src/cjose/test/check_header.c:62,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:63,1
    - Dst: cjose_header_get
      Src: /src/cjose/test/check_header.c:65,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:66,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:68,1
    - Dst: strcmp
      Src: /src/cjose/test/check_header.c:68,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:73,1
    - Dst: strcmp
      Src: /src/cjose/test/check_header.c:73,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_header.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 79
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_header.c
    functionUses: 0
    functionsReached:
    - cjose_header_set
    - strcmp
    - cjose_header_release
    - ck_assert_msg
    - cjose_header_new
    - cjose_header_get
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_header_set_get)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_header.c:92,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:93,1
    - Dst: cjose_header_set_raw
      Src: /src/cjose/test/check_header.c:95,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:96,1
    - Dst: cjose_header_get_raw
      Src: /src/cjose/test/check_header.c:98,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:99,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:101,1
    - Dst: strcmp
      Src: /src/cjose/test/check_header.c:101,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_header.c:107,1
    - Dst: cjose_header_set_raw
      Src: /src/cjose/test/check_header.c:111,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:112,1
    - Dst: cjose_header_get_raw
      Src: /src/cjose/test/check_header.c:114,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_header.c:115,1
    - Dst: strcmp
      Src: /src/cjose/test/check_header.c:115,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_header.c:117,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_header.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 120
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_header.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cjose_header_get_raw
    - cjose_header_release
    - ck_assert_msg
    - cjose_get_dealloc
    - cjose_header_set_raw
    - cjose_header_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_header_set_get_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/cjose/test/check_header.c:125,1
    - Dst: tcase_create
      Src: /src/cjose/test/check_header.c:127,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_header.c:128,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_header.c:129,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_header.c:130,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_header.c:131,1
    - Dst: suite_add_tcase
      Src: /src/cjose/test/check_header.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 135
    functionName: cjose_header_suite
    functionSourceFile: /src/cjose/test/check_header.c
    functionUses: 1
    functionsReached:
    - tcase_create
    - suite_create
    - suite_add_tcase
    - tcase_add_test
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *cjose_header_suite(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_version.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 9
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_version.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_version_define)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_version
      Src: /src/cjose/test/check_version.c:14,1
    - Dst: ck_assert_str_eq
      Src: /src/cjose/test/check_version.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_version.c
    functionUses: 0
    functionsReached:
    - ck_assert_str_eq
    - cjose_version
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_version_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/cjose/test/check_version.c:21,1
    - Dst: tcase_create
      Src: /src/cjose/test/check_version.c:23,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_version.c:24,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_version.c:25,1
    - Dst: suite_add_tcase
      Src: /src/cjose/test/check_version.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: cjose_version_suite
    functionSourceFile: /src/cjose/test/check_version.c
    functionUses: 1
    functionsReached:
    - tcase_create
    - suite_create
    - suite_add_tcase
    - tcase_add_test
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *cjose_version_suite(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cjose/test/check_concatkdf.c:30,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_concatkdf.c:31,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_concatkdf.c:35,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_concatkdf.c:40,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_concatkdf.c:45,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_concatkdf.c:46,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_concatkdf.c:54,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_concatkdf.c:55,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_concatkdf.c:56,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:57,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - apu
    - apuLen
    - apv
    - apvLen
    - err
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 60
    functionName: _create_otherinfo_header
    functionSourceFile: /src/cjose/test/check_concatkdf.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - cjose_header_set
    - ck_assert
    - cjose_header_release
    - memset
    - cjose_base64url_encode
    - cjose_header_new
    linkageType: ''
    returnType: cjose_header_t
    signature: 'cjose_header_t *

      _create_otherinfo_header(const uint8_t *apu, const size_t apuLen, const uint8_t
      *apv, const size_t apvLen, cjose_err *err)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/cjose/test/check_concatkdf.c:64,1
    - Dst: memcmp
      Src: /src/cjose/test/check_concatkdf.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - actual
    - expected
    argTypes:
    - uint8_t**
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: _cmp_uint32
    functionSourceFile: /src/cjose/test/check_concatkdf.c
    functionUses: 0
    functionsReached:
    - memcmp
    - htonl
    linkageType: ''
    returnType: bool
    signature: bool _cmp_uint32(uint8_t **actual, uint32_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _cmp_uint32
      Src: /src/cjose/test/check_concatkdf.c:72,1
    - Dst: memcmp
      Src: /src/cjose/test/check_concatkdf.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - actual
    - expected
    - len
    argTypes:
    - uint8_t**
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: _cmp_lendata
    functionSourceFile: /src/cjose/test/check_concatkdf.c
    functionUses: 0
    functionsReached:
    - memcmp
    - _cmp_uint32
    linkageType: ''
    returnType: bool
    signature: bool _cmp_lendata(uint8_t **actual, uint8_t *expected, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_concatkdf.c:85,1
    - Dst: memset
      Src: /src/cjose/test/check_concatkdf.c:91,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:92,1
    - Dst: cjose_concatkdf_create_otherinfo
      Src: /src/cjose/test/check_concatkdf.c:92,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:94,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:95,1
    - Dst: _cmp_lendata
      Src: /src/cjose/test/check_concatkdf.c:95,1
    - Dst: strlen
      Src: /src/cjose/test/check_concatkdf.c:95,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:96,1
    - Dst: _cmp_lendata
      Src: /src/cjose/test/check_concatkdf.c:96,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:97,1
    - Dst: _cmp_lendata
      Src: /src/cjose/test/check_concatkdf.c:97,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:98,1
    - Dst: _cmp_uint32
      Src: /src/cjose/test/check_concatkdf.c:98,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_concatkdf.c:100,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_concatkdf.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 102
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_concatkdf.c
    functionUses: 0
    functionsReached:
    - strlen
    - _cmp_lendata
    - _cmp_uint32
    - ck_assert
    - cjose_header_release
    - cjose_concatkdf_create_otherinfo
    - memset
    - cjose_get_dealloc
    - cjose_header_new
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_concatkdf_otherinfo_noextra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cjose/test/check_concatkdf.c:110,1
    - Dst: strlen
      Src: /src/cjose/test/check_concatkdf.c:112,1
    - Dst: _create_otherinfo_header
      Src: /src/cjose/test/check_concatkdf.c:113,1
    - Dst: memset
      Src: /src/cjose/test/check_concatkdf.c:119,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:120,1
    - Dst: cjose_concatkdf_create_otherinfo
      Src: /src/cjose/test/check_concatkdf.c:120,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:122,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:123,1
    - Dst: _cmp_lendata
      Src: /src/cjose/test/check_concatkdf.c:123,1
    - Dst: strlen
      Src: /src/cjose/test/check_concatkdf.c:123,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:124,1
    - Dst: _cmp_lendata
      Src: /src/cjose/test/check_concatkdf.c:124,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:125,1
    - Dst: _cmp_lendata
      Src: /src/cjose/test/check_concatkdf.c:125,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:126,1
    - Dst: _cmp_uint32
      Src: /src/cjose/test/check_concatkdf.c:126,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_concatkdf.c:128,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_concatkdf.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 130
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_concatkdf.c
    functionUses: 0
    functionsReached:
    - strlen
    - _cmp_lendata
    - _cmp_uint32
    - ck_assert
    - cjose_header_release
    - cjose_concatkdf_create_otherinfo
    - memset
    - cjose_get_dealloc
    - _create_otherinfo_header
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_concatkdf_otherinfo_apuapv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_concatkdf.c:146,1
    - Dst: cjose_concatkdf_create_otherinfo
      Src: /src/cjose/test/check_concatkdf.c:147,1
    - Dst: cjose_concatkdf_derive
      Src: /src/cjose/test/check_concatkdf.c:148,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:149,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_concatkdf.c:153,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_concatkdf.c:155,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_concatkdf.c:156,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_concatkdf.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 158
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_concatkdf.c
    functionUses: 0
    functionsReached:
    - cjose_concatkdf_derive
    - ck_assert
    - ck_assert_bin_eq
    - cjose_header_release
    - cjose_concatkdf_create_otherinfo
    - cjose_get_dealloc
    - cjose_header_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_concatkdf_derive_simple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_concatkdf.c:174,1
    - Dst: cjose_concatkdf_create_otherinfo
      Src: /src/cjose/test/check_concatkdf.c:175,1
    - Dst: cjose_concatkdf_derive
      Src: /src/cjose/test/check_concatkdf.c:176,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:177,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_concatkdf.c:181,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_concatkdf.c:183,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_concatkdf.c:184,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_concatkdf.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 186
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_concatkdf.c
    functionUses: 0
    functionsReached:
    - cjose_concatkdf_derive
    - ck_assert
    - ck_assert_bin_eq
    - cjose_header_release
    - cjose_concatkdf_create_otherinfo
    - cjose_get_dealloc
    - cjose_header_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_concatkdf_derive_ikm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _create_otherinfo_header
      Src: /src/cjose/test/check_concatkdf.c:202,1
    - Dst: strlen
      Src: /src/cjose/test/check_concatkdf.c:202,1
    - Dst: strlen
      Src: /src/cjose/test/check_concatkdf.c:203,1
    - Dst: cjose_concatkdf_create_otherinfo
      Src: /src/cjose/test/check_concatkdf.c:204,1
    - Dst: cjose_concatkdf_derive
      Src: /src/cjose/test/check_concatkdf.c:205,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_concatkdf.c:206,1
    - Dst: ck_assert_bin_eq
      Src: /src/cjose/test/check_concatkdf.c:210,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_concatkdf.c:212,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_concatkdf.c:213,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_concatkdf.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 215
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_concatkdf.c
    functionUses: 0
    functionsReached:
    - cjose_concatkdf_derive
    - strlen
    - ck_assert
    - ck_assert_bin_eq
    - cjose_header_release
    - cjose_concatkdf_create_otherinfo
    - cjose_get_dealloc
    - _create_otherinfo_header
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_concatkdf_derive_moreinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/cjose/test/check_concatkdf.c:219,1
    - Dst: tcase_create
      Src: /src/cjose/test/check_concatkdf.c:221,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_concatkdf.c:222,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_concatkdf.c:223,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_concatkdf.c:224,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_concatkdf.c:225,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_concatkdf.c:226,1
    - Dst: suite_add_tcase
      Src: /src/cjose/test/check_concatkdf.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: cjose_concatkdf_suite
    functionSourceFile: /src/cjose/test/check_concatkdf.c
    functionUses: 1
    functionsReached:
    - tcase_create
    - suite_create
    - suite_add_tcase
    - tcase_add_test
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *cjose_concatkdf_suite(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cjose/test/check_jws.c:72,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jws.c:72,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jws.c:73,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jws.c:75,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jws.c:75,1
    - Dst: strcmp
      Src: /src/cjose/test/check_jws.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - alg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: _self_get_jwk_by_alg
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *_self_get_jwk_by_alg(const char *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _self_get_jwk_by_alg
      Src: /src/cjose/test/check_jws.c:83,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:84,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:84,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:86,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jws.c:92,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:93,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jws.c:93,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:99,1
    - Dst: cjose_jws_sign
      Src: /src/cjose/test/check_jws.c:100,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:101,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jws.c:105,1
    - Dst: cjose_jws_get_protected
      Src: /src/cjose/test/check_jws.c:105,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:109,1
    - Dst: cjose_jws_export
      Src: /src/cjose/test/check_jws.c:109,1
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:115,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:115,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:116,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:122,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:122,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:130,1
    - Dst: cjose_jws_get_plaintext
      Src: /src/cjose/test/check_jws.c:130,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jws.c:136,1
    - Dst: json_equal
      Src: /src/cjose/test/check_jws.c:136,1
    - Dst: cjose_jws_get_protected
      Src: /src/cjose/test/check_jws.c:136,1
    - Dst: cjose_jws_get_protected
      Src: /src/cjose/test/check_jws.c:136,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:139,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:139,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:142,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:143,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jws.c:143,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jws.c:145,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:146,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:147,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - plain1
    - alg
    - err
    argTypes:
    - char*
    - char*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 149
    functionName: _self_sign_self_verify
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_header_set
    - cjose_jws_verify
    - cjose_jws_release
    - strlen
    - cjose_jwk_release
    - ck_assert
    - cjose_jws_import
    - json_equal
    - cjose_jws_get_protected
    - cjose_header_release
    - ck_assert_msg
    - cjose_jws_get_plaintext
    - cjose_jws_sign
    - strncmp
    - cjose_jws_export
    - cjose_header_new
    - _self_get_jwk_by_alg
    linkageType: ''
    returnType: void
    signature: void _self_sign_self_verify(const char *plain1, const char *alg, cjose_err
      *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:154,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:155,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:156,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:157,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:158,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:159,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:160,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:161,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:162,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:163,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:164,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - _self_sign_self_verify
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cjose_jws_self_sign_self_verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:172,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:173,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:174,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:175,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:176,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:177,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:178,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:179,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:180,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:181,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:182,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - _self_sign_self_verify
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_self_sign_self_verify_short)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:190,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:191,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:192,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:193,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:194,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:195,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:196,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:197,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:198,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:199,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:200,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 202
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - _self_sign_self_verify
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_self_sign_self_verify_empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/cjose/test/check_jws.c:212,1
    - Dst: malloc
      Src: /src/cjose/test/check_jws.c:213,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:214,1
    - Dst: RAND_bytes
      Src: /src/cjose/test/check_jws.c:214,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:216,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:217,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:218,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:219,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:220,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:221,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:222,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:223,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:224,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:225,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:226,1
    - Dst: _self_sign_self_verify
      Src: /src/cjose/test/check_jws.c:227,1
    - Dst: free
      Src: /src/cjose/test/check_jws.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 230
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - random
    - free
    - _self_sign_self_verify
    - ck_assert_msg
    - RAND_bytes
    - malloc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_self_sign_self_verify_many)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:240,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:252,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:252,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:253,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jws.c:259,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:260,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jws.c:260,1
    - Dst: cjose_jws_sign
      Src: /src/cjose/test/check_jws.c:266,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:267,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:268,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jws.c:270,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 272
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_header_set
    - strlen
    - cjose_jwk_release
    - cjose_header_release
    - ck_assert_msg
    - cjose_jws_sign
    - cjose_header_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_sign_with_bad_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:282,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jws.c:307,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:308,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jws.c:308,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:316,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:316,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:317,1
    - Dst: cjose_jws_sign
      Src: /src/cjose/test/check_jws.c:322,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:323,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:324,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:327,1
    - Dst: cjose_jws_sign
      Src: /src/cjose/test/check_jws.c:330,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:331,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:332,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jws.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 335
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_header_set
    - strlen
    - cjose_jwk_release
    - cjose_header_release
    - ck_assert_msg
    - cjose_jws_sign
    - cjose_header_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_sign_with_bad_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:360,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:360,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:361,1
    - Dst: cjose_header_new
      Src: /src/cjose/test/check_jws.c:367,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:368,1
    - Dst: cjose_header_set
      Src: /src/cjose/test/check_jws.c:368,1
    - Dst: cjose_jws_sign
      Src: /src/cjose/test/check_jws.c:370,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:371,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:372,1
    - Dst: cjose_jws_sign
      Src: /src/cjose/test/check_jws.c:374,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:375,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:376,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:378,1
    - Dst: cjose_header_release
      Src: /src/cjose/test/check_jws.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 380
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_header_set
    - strlen
    - cjose_jwk_release
    - cjose_header_release
    - ck_assert_msg
    - cjose_jws_sign
    - cjose_header_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_sign_with_bad_content)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:388,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:388,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:389,1
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:395,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:395,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:396,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:403,1
    - Dst: cjose_jws_export
      Src: /src/cjose/test/check_jws.c:403,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:409,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jws.c:409,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:409,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:411,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 413
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_jws_release
    - strlen
    - cjose_jwk_release
    - cjose_jws_import
    - ck_assert_msg
    - strncmp
    - cjose_jws_export
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_import_export_compare)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:453,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:453,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:454,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 457
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jws_import
    - ck_assert_msg
    - strlen
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_import_invalid_serialization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:465,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:465,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:466,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:473,1
    - Dst: cjose_jws_get_plaintext
      Src: /src/cjose/test/check_jws.c:473,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 479
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jws_release
    - strlen
    - cjose_jws_import
    - ck_assert_msg
    - cjose_jws_get_plaintext
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_import_get_plain_before_verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:487,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:487,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:488,1
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:494,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:494,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:495,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:501,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:501,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:509,1
    - Dst: cjose_jws_get_plaintext
      Src: /src/cjose/test/check_jws.c:509,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:515,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jws.c:515,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:515,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:518,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 520
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_jws_verify
    - cjose_jws_release
    - strlen
    - cjose_jwk_release
    - cjose_jws_import
    - ck_assert_msg
    - cjose_jws_get_plaintext
    - strncmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_import_get_plain_after_verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:550,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:550,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:551,1
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:557,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:557,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:558,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:564,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:564,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:565,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:568,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:568,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:569,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:574,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:574,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:575,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:577,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:577,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:578,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:580,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:583,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 585
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_jws_verify
    - cjose_jws_release
    - strlen
    - cjose_jwk_release
    - cjose_jws_import
    - ck_assert_msg
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_verify_bad_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:597,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:597,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:598,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:607,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:607,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:608,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:614,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:614,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:619,1
    - Dst: cjose_jws_get_plaintext
      Src: /src/cjose/test/check_jws.c:619,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:629,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:629,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:632,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:633,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jws.c:633,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:635,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 637
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_jws_verify
    - cjose_jws_release
    - strlen
    - cjose_jwk_release
    - cjose_jws_import
    - ck_assert_msg
    - cjose_jws_get_plaintext
    - strncmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_verify_hs256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:652,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:652,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:653,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:681,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:681,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:682,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:688,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:688,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:696,1
    - Dst: cjose_jws_get_plaintext
      Src: /src/cjose/test/check_jws.c:696,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:706,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:706,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:709,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:710,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jws.c:710,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:712,1
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:721,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:721,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:722,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:727,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:727,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:728,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:729,1
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:738,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:738,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:739,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:744,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:744,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:745,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:747,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 749
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_jws_verify
    - cjose_jws_release
    - strlen
    - cjose_jwk_release
    - cjose_jws_import
    - ck_assert_msg
    - cjose_jws_get_plaintext
    - strncmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_verify_rs256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:765,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:765,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:766,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:780,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:780,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:781,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:787,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:787,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:795,1
    - Dst: cjose_jws_get_plaintext
      Src: /src/cjose/test/check_jws.c:795,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:805,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:805,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:808,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:809,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jws.c:809,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:811,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 813
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_jws_verify
    - cjose_jws_release
    - strlen
    - cjose_jwk_release
    - cjose_jws_import
    - ck_assert_msg
    - cjose_jws_get_plaintext
    - strncmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_verify_rs384)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:826,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:826,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:827,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:840,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:840,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:841,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:847,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:847,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:855,1
    - Dst: cjose_jws_get_plaintext
      Src: /src/cjose/test/check_jws.c:855,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:865,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:865,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:868,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:869,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jws.c:869,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:871,1
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:879,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:879,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:880,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:885,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:885,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:886,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:887,1
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:895,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:895,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:896,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:901,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:901,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:902,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:904,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 906
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_jws_verify
    - cjose_jws_release
    - strlen
    - cjose_jwk_release
    - cjose_jws_import
    - ck_assert_msg
    - cjose_jws_get_plaintext
    - strncmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_verify_ec256)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:928,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:928,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:929,1
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:932,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:932,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:933,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:934,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:934,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:935,1
    - Dst: strrchr
      Src: /src/cjose/test/check_jws.c:939,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jws.c:940,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jws.c:947,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/test/check_jws.c:947,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:947,1
    - Dst: ck_assert_int_eq
      Src: /src/cjose/test/check_jws.c:948,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/test/check_jws.c:960,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jws.c:961,1
    - Dst: memcpy
      Src: /src/cjose/test/check_jws.c:962,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jws.c:970,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/test/check_jws.c:970,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/test/check_jws.c:974,1
    - Dst: ck_assert
      Src: /src/cjose/test/check_jws.c:975,1
    - Dst: memcpy
      Src: /src/cjose/test/check_jws.c:976,1
    - Dst: memcpy
      Src: /src/cjose/test/check_jws.c:977,1
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:980,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:981,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:983,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:983,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:985,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:987,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jws.c:988,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jws.c:989,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jws.c:990,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/test/check_jws.c:993,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 995
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - memcpy
    - cjose_jwk_import
    - cjose_jws_verify
    - cjose_jws_release
    - strlen
    - cjose_get_alloc
    - cjose_jwk_release
    - cjose_jws_import
    - ck_assert
    - cjose_base64url_decode
    - ck_assert_msg
    - ck_assert_int_eq
    - cjose_base64url_encode
    - strrchr
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_verify_ec_sig_bad_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:1008,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:1008,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:1009,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/test/check_jws.c:1022,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:1022,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:1023,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:1031,1
    - Dst: cjose_jws_get_plaintext
      Src: /src/cjose/test/check_jws.c:1031,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:1041,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:1041,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:1044,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:1045,1
    - Dst: strncmp
      Src: /src/cjose/test/check_jws.c:1045,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:1048,1
    - Dst: cjose_jws_verify
      Src: /src/cjose/test/check_jws.c:1048,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:1050,1
    - Dst: cjose_jws_import
      Src: /src/cjose/test/check_jws.c:1052,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:1052,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:1053,1
    - Dst: ck_assert_msg
      Src: /src/cjose/test/check_jws.c:1059,1
    - Dst: cjose_jws_sign
      Src: /src/cjose/test/check_jws.c:1059,1
    - Dst: strlen
      Src: /src/cjose/test/check_jws.c:1059,1
    - Dst: cjose_jws_release
      Src: /src/cjose/test/check_jws.c:1062,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/test/check_jws.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1064
    functionName: START_TEST
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_import
    - cjose_jws_verify
    - cjose_jws_release
    - strlen
    - cjose_jwk_release
    - cjose_jws_import
    - ck_assert_msg
    - cjose_jws_get_plaintext
    - strncmp
    - cjose_jws_sign
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cjose_jws_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/cjose/test/check_jws.c:1069,1
    - Dst: tcase_create
      Src: /src/cjose/test/check_jws.c:1071,1
    - Dst: tcase_set_timeout
      Src: /src/cjose/test/check_jws.c:1072,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1073,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1074,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1075,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1076,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1077,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1078,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1079,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1080,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1081,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1082,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1083,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1084,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1085,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1086,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1087,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1088,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1089,1
    - Dst: tcase_add_test
      Src: /src/cjose/test/check_jws.c:1090,1
    - Dst: suite_add_tcase
      Src: /src/cjose/test/check_jws.c:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1094
    functionName: cjose_jws_suite
    functionSourceFile: /src/cjose/test/check_jws.c
    functionUses: 1
    functionsReached:
    - suite_create
    - tcase_create
    - tcase_set_timeout
    - tcase_add_test
    - suite_add_tcase
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *cjose_jws_suite(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error
      Src: /src/cjose/src/error.c:37,1
    - Dst: ERR_error_string_n
      Src: /src/cjose/src/error.c:40,1
    - Dst: ERR_get_error
      Src: /src/cjose/src/error.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - code
    argTypes:
    - cjose_errcode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 55
    functionName: cjose_err_message
    functionSourceFile: /src/cjose/src/error.c
    functionUses: 1
    functionsReached:
    - ERR_error_string_n
    - ERR_get_error
    linkageType: ''
    returnType: char
    signature: char *cjose_err_message(cjose_errcode code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get0_key
      Src: /src/cjose/src/jwk.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - rsa
    - rsa_n
    - rsa_e
    - rsa_d
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: _cjose_jwk_rsa_get
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - RSA_get0_key
    linkageType: ''
    returnType: void
    signature: void _cjose_jwk_rsa_get(RSA *rsa, BIGNUM **rsa_n, BIGNUM **rsa_e, BIGNUM
      **rsa_d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:76,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:78,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:80,1
    - Dst: RSA_set0_key
      Src: /src/cjose/src/jwk.c:83,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:87,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:88,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:89,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 7
    argNames:
    - rsa
    - n
    - n_len
    - e
    - e_len
    - d
    - d_len
    argTypes:
    - RSA*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 99
    functionName: _cjose_jwk_rsa_set
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - BN_free
    - RSA_set0_key
    - BN_bin2bn
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwk_rsa_set(RSA *rsa, uint8_t *n, size_t n_len, uint8_t
      *e, size_t e_len, uint8_t *d, size_t d_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get0_factors
      Src: /src/cjose/src/jwk.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rsa
    - p
    - q
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: _cjose_jwk_rsa_get_factors
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - RSA_get0_factors
    linkageType: ''
    returnType: void
    signature: void _cjose_jwk_rsa_get_factors(RSA *rsa, BIGNUM **p, BIGNUM **q)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:116,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:118,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:128,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:129,1
    - Dst: RSA_set0_factors
      Src: /src/cjose/src/jwk.c:134,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:136,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:137,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 5
    argNames:
    - rsa
    - p
    - p_len
    - q
    - q_len
    argTypes:
    - RSA*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 145
    functionName: _cjose_jwk_rsa_set_factors
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - BN_free
    - RSA_set0_factors
    - BN_bin2bn
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwk_rsa_set_factors(RSA *rsa, uint8_t *p, size_t p_len,
      uint8_t *q, size_t q_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get0_crt_params
      Src: /src/cjose/src/jwk.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - rsa
    - dmp1
    - dmq1
    - iqmp
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: _cjose_jwk_rsa_get_crt
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - RSA_get0_crt_params
    linkageType: ''
    returnType: void
    signature: void _cjose_jwk_rsa_get_crt(RSA *rsa, BIGNUM **dmp1, BIGNUM **dmq1,
      BIGNUM **iqmp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:164,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:166,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:168,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:178,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:179,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:180,1
    - Dst: RSA_set0_crt_params
      Src: /src/cjose/src/jwk.c:185,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:187,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:188,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:189,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 7
    argNames:
    - rsa
    - dmp1
    - dmp1_len
    - dmq1
    - dmq1_len
    - iqmp
    - iqmp_len
    argTypes:
    - RSA*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 198
    functionName: _cjose_jwk_rsa_set_crt
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - RSA_set0_crt_params
    - BN_free
    - BN_bin2bn
    linkageType: ''
    returnType: bool
    signature: "bool _cjose_jwk_rsa_set_crt(\n    RSA *rsa, uint8_t *dmp1, size_t
      dmp1_len, uint8_t *dmq1, size_t dmq1_len, uint8_t *iqmp, size_t iqmp_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - kty
    - err
    argTypes:
    - cjose_jwk_kty_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 214
    functionName: cjose_jwk_name_for_kty
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 1
    functionsReached:
    - CJOSE_ERROR
    linkageType: ''
    returnType: char
    signature: char *cjose_jwk_name_for_kty(cjose_jwk_kty_t kty, cjose_err *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:220,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - jwk
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 233
    functionName: cjose_jwk_retain
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 2
    functionsReached:
    - CJOSE_ERROR
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *cjose_jwk_retain(cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:245,1
    - Dst: cjose_jwk_t*::fns::free_func
      Src: /src/cjose/src/jwk.c:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - jwk
    argTypes:
    - cjose_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 257
    functionName: cjose_jwk_release
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 59
    functionsReached:
    - cjose_get_dealloc
    - cjose_jwk_t*::fns::free_func
    linkageType: ''
    returnType: bool
    signature: bool cjose_jwk_release(cjose_jwk_t *jwk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - jwk
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 268
    functionName: cjose_jwk_get_kty
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 4
    functionsReached:
    - CJOSE_ERROR
    linkageType: ''
    returnType: cjose_jwk_kty_t
    signature: cjose_jwk_kty_t cjose_jwk_get_kty(const cjose_jwk_t *jwk, cjose_err
      *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - jwk
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: cjose_jwk_get_keysize
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 11
    functionsReached:
    - CJOSE_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t cjose_jwk_get_keysize(const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - jwk
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 287
    functionName: cjose_jwk_get_keydata
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 11
    functionsReached:
    - CJOSE_ERROR
    linkageType: ''
    returnType: void
    signature: void *cjose_jwk_get_keydata(const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - jwk
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: cjose_jwk_get_kid
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 5
    functionsReached:
    - CJOSE_ERROR
    linkageType: ''
    returnType: char
    signature: char *cjose_jwk_get_kid(const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:304,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:309,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:311,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:314,1
    - Dst: memcpy
      Src: /src/cjose/src/jwk.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - jwk
    - kid
    - len
    - err
    argTypes:
    - cjose_jwk_t*
    - char*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 323
    functionName: cjose_jwk_set_kid
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 3
    functionsReached:
    - cjose_get_dealloc
    - CJOSE_ERROR
    - memcpy
    - cjose_get_alloc
    linkageType: ''
    returnType: bool
    signature: bool cjose_jwk_set_kid(cjose_jwk_t *jwk, const char *kid, size_t len,
      cjose_err *err)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:331,1
    - Dst: json_object
      Src: /src/cjose/src/jwk.c:335,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:338,1
    - Dst: cjose_jwk_name_for_kty
      Src: /src/cjose/src/jwk.c:343,1
    - Dst: json_string
      Src: /src/cjose/src/jwk.c:344,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:347,1
    - Dst: json_object_set
      Src: /src/cjose/src/jwk.c:350,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:351,1
    - Dst: json_string
      Src: /src/cjose/src/jwk.c:357,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:360,1
    - Dst: json_object_set
      Src: /src/cjose/src/jwk.c:363,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:364,1
    - Dst: cjose_jwk_t*::fns::public_json
      Src: /src/cjose/src/jwk.c:369,1
    - Dst: cjose_jwk_t*::fns::private_json
      Src: /src/cjose/src/jwk.c:375,1
    - Dst: json_dumps
      Src: /src/cjose/src/jwk.c:381,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:384,1
    - Dst: _cjose_strndup
      Src: /src/cjose/src/jwk.c:387,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:390,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:393,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:398,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:403,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 3
    argNames:
    - jwk
    - priv
    - err
    argTypes:
    - cjose_jwk_t*
    - bool
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 408
    functionName: cjose_jwk_to_json
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 11
    functionsReached:
    - json_dumps
    - cjose_jwk_t*::fns::private_json
    - CJOSE_ERROR
    - json_decref
    - cjose_jwk_name_for_kty
    - cjose_jwk_t*::fns::public_json
    - cjose_get_dealloc
    - json_object
    - _cjose_strndup
    - json_object_set
    - json_string
    linkageType: ''
    returnType: char
    signature: char *cjose_jwk_to_json(const cjose_jwk_t *jwk, bool priv, cjose_err
      *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:421,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:424,1
    - Dst: memset
      Src: /src/cjose/src/jwk.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - buffer
    - keysize
    - err
    argTypes:
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 437
    functionName: _oct_new
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - memset
    - CJOSE_ERROR
    - cjose_get_alloc
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *_oct_new(uint8_t *buffer, size_t keysize, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:445,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - jwk
    argTypes:
    - cjose_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 448
    functionName: _oct_free
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - _cjose_cleanse_dealloc
    linkageType: ''
    returnType: void
    signature: void _oct_free(cjose_jwk_t *jwk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - jwk
    - json
    - err
    argTypes:
    - cjose_jwk_t*
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 450
    functionName: _oct_public_fields
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _oct_public_fields(const cjose_jwk_t *jwk, json_t *json, cjose_err
      *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jwk.c:460,1
    - Dst: _cjose_json_stringn
      Src: /src/cjose/src/jwk.c:465,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:467,1
    - Dst: json_object_set
      Src: /src/cjose/src/jwk.c:473,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - jwk
    - json
    - err
    argTypes:
    - cjose_jwk_t*
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 477
    functionName: _oct_private_fields
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - _cjose_json_stringn
    - json_decref
    - _cjose_cleanse_dealloc
    - cjose_base64url_encode
    - json_object_set
    linkageType: ''
    returnType: bool
    signature: bool _oct_private_fields(const cjose_jwk_t *jwk, json_t *json, cjose_err
      *err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:488,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:495,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:498,1
    - Dst: RAND_bytes
      Src: /src/cjose/src/jwk.c:501,1
    - Dst: _oct_new
      Src: /src/cjose/src/jwk.c:506,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - keysize
    - err
    argTypes:
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 521
    functionName: cjose_jwk_create_oct_random
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 4
    functionsReached:
    - cjose_get_alloc
    - CJOSE_ERROR
    - RAND_bytes
    - cjose_get_dealloc
    - _oct_new
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *cjose_jwk_create_oct_random(size_t keysize, cjose_err
      *err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:530,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:534,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:537,1
    - Dst: memcpy
      Src: /src/cjose/src/jwk.c:540,1
    - Dst: _oct_new
      Src: /src/cjose/src/jwk.c:542,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:553,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - data
    - len
    - err
    argTypes:
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 558
    functionName: cjose_jwk_create_oct_spec
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 3
    functionsReached:
    - memcpy
    - cjose_get_alloc
    - CJOSE_ERROR
    - cjose_get_dealloc
    - _oct_new
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *cjose_jwk_create_oct_spec(const uint8_t *data, size_t
      len, cjose_err *err)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - crv
    - err
    argTypes:
    - cjose_jwk_ec_curve
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 584
    functionName: _ec_size_for_curve
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _ec_size_for_curve(cjose_jwk_ec_curve crv, cjose_err *err)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - crv
    - err
    argTypes:
    - cjose_jwk_ec_curve
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 601
    functionName: _ec_name_for_curve
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *_ec_name_for_curve(cjose_jwk_ec_curve crv, cjose_err *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/cjose/src/jwk.c:606,1
    - Dst: strncmp
      Src: /src/cjose/src/jwk.c:610,1
    - Dst: strncmp
      Src: /src/cjose/src/jwk.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - name
    - crv
    - err
    argTypes:
    - char*
    - cjose_jwk_ec_curve*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 623
    functionName: _ec_curve_from_name
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool _ec_curve_from_name(const char *name, cjose_jwk_ec_curve *crv,
      cjose_err *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/cjose/src/jwk.c:628,1
    - Dst: strncmp
      Src: /src/cjose/src/jwk.c:632,1
    - Dst: strncmp
      Src: /src/cjose/src/jwk.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - name
    - kty
    - err
    argTypes:
    - char*
    - cjose_jwk_kty_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 645
    functionName: _kty_from_name
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool _kty_from_name(const char *name, cjose_jwk_kty_t *kty, cjose_err
      *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:649,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:652,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:658,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:661,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:662,1
    - Dst: memset
      Src: /src/cjose/src/jwk.c:665,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - crv
    - ec
    - err
    argTypes:
    - cjose_jwk_ec_curve
    - EC_KEY*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 688
    functionName: _EC_new
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - memset
    - cjose_get_dealloc
    - CJOSE_ERROR
    - cjose_get_alloc
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *_EC_new(cjose_jwk_ec_curve crv, EC_KEY *ec, cjose_err
      *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_free
      Src: /src/cjose/src/jwk.c:701,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:703,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - jwk
    argTypes:
    - cjose_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 706
    functionName: _EC_free
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - EC_KEY_free
    linkageType: ''
    returnType: void
    signature: void _EC_free(cjose_jwk_t *jwk)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _ec_size_for_curve
      Src: /src/cjose/src/jwk.c:721,1
    - Dst: json_string
      Src: /src/cjose/src/jwk.c:724,1
    - Dst: _ec_name_for_curve
      Src: /src/cjose/src/jwk.c:724,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:727,1
    - Dst: json_object_set
      Src: /src/cjose/src/jwk.c:730,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:731,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/cjose/src/jwk.c:735,1
    - Dst: EC_KEY_get0_group
      Src: /src/cjose/src/jwk.c:736,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:739,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:743,1
    - Dst: BN_new
      Src: /src/cjose/src/jwk.c:744,1
    - Dst: BN_new
      Src: /src/cjose/src/jwk.c:745,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:748,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/cjose/src/jwk.c:751,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:753,1
    - Dst: BN_num_bytes
      Src: /src/cjose/src/jwk.c:758,1
    - Dst: memset
      Src: /src/cjose/src/jwk.c:759,1
    - Dst: BN_bn2bin
      Src: /src/cjose/src/jwk.c:760,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jwk.c:761,1
    - Dst: _cjose_json_stringn
      Src: /src/cjose/src/jwk.c:765,1
    - Dst: json_object_set
      Src: /src/cjose/src/jwk.c:770,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:771,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:773,1
    - Dst: BN_num_bytes
      Src: /src/cjose/src/jwk.c:777,1
    - Dst: memset
      Src: /src/cjose/src/jwk.c:778,1
    - Dst: BN_bn2bin
      Src: /src/cjose/src/jwk.c:779,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jwk.c:780,1
    - Dst: _cjose_json_stringn
      Src: /src/cjose/src/jwk.c:784,1
    - Dst: json_object_set
      Src: /src/cjose/src/jwk.c:789,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:790,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:792,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:800,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:804,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:808,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:812,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:816,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 83
    argCount: 3
    argNames:
    - jwk
    - json
    - err
    argTypes:
    - cjose_jwk_t*
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 820
    functionName: _EC_public_fields
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - BN_bn2bin
    - _ec_name_for_curve
    - EC_KEY_get0_public_key
    - EC_POINT_get_affine_coordinates_GFp
    - BN_num_bytes
    - _ec_size_for_curve
    - cjose_get_alloc
    - BN_free
    - CJOSE_ERROR
    - json_decref
    - _cjose_json_stringn
    - memset
    - cjose_base64url_encode
    - EC_KEY_get0_group
    - BN_new
    - json_object_set
    - json_string
    linkageType: ''
    returnType: bool
    signature: bool _EC_public_fields(const cjose_jwk_t *jwk, json_t *json, cjose_err
      *err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_private_key
      Src: /src/cjose/src/jwk.c:825,1
    - Dst: _ec_size_for_curve
      Src: /src/cjose/src/jwk.c:833,1
    - Dst: BN_is_zero
      Src: /src/cjose/src/jwk.c:836,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:841,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:844,1
    - Dst: BN_num_bytes
      Src: /src/cjose/src/jwk.c:848,1
    - Dst: memset
      Src: /src/cjose/src/jwk.c:849,1
    - Dst: BN_bn2bin
      Src: /src/cjose/src/jwk.c:850,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jwk.c:851,1
    - Dst: _cjose_json_stringn
      Src: /src/cjose/src/jwk.c:855,1
    - Dst: json_object_set
      Src: /src/cjose/src/jwk.c:860,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:861,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:870,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:871,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - jwk
    - json
    - err
    argTypes:
    - cjose_jwk_t*
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 874
    functionName: _EC_private_fields
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - BN_bn2bin
    - BN_num_bytes
    - cjose_get_alloc
    - _ec_size_for_curve
    - CJOSE_ERROR
    - _cjose_json_stringn
    - json_decref
    - EC_KEY_get0_private_key
    - _cjose_cleanse_dealloc
    - memset
    - cjose_base64url_encode
    - BN_is_zero
    - json_object_set
    linkageType: ''
    returnType: bool
    signature: bool _EC_private_fields(const cjose_jwk_t *jwk, json_t *json, cjose_err
      *err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/cjose/src/jwk.c:883,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:886,1
    - Dst: EC_KEY_generate_key
      Src: /src/cjose/src/jwk.c:890,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:892,1
    - Dst: _EC_new
      Src: /src/cjose/src/jwk.c:896,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:907,1
    - Dst: EC_KEY_free
      Src: /src/cjose/src/jwk.c:912,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - crv
    - err
    argTypes:
    - cjose_jwk_ec_curve
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 917
    functionName: cjose_jwk_create_EC_random
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 4
    functionsReached:
    - EC_KEY_new_by_curve_name
    - _EC_new
    - CJOSE_ERROR
    - cjose_get_dealloc
    - EC_KEY_generate_key
    - EC_KEY_free
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *cjose_jwk_create_EC_random(cjose_jwk_ec_curve crv, cjose_err
      *err)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:931,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:939,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/cjose/src/jwk.c:943,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:946,1
    - Dst: EC_KEY_get0_group
      Src: /src/cjose/src/jwk.c:950,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:953,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:960,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:963,1
    - Dst: EC_KEY_set_private_key
      Src: /src/cjose/src/jwk.c:966,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:968,1
    - Dst: EC_POINT_new
      Src: /src/cjose/src/jwk.c:973,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:976,1
    - Dst: EC_POINT_mul
      Src: /src/cjose/src/jwk.c:979,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:981,1
    - Dst: EC_POINT_new
      Src: /src/cjose/src/jwk.c:991,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:994,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:998,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:999,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1002,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/cjose/src/jwk.c:1006,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1008,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/cjose/src/jwk.c:1012,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1014,1
    - Dst: EC_KEY_set_public_key
      Src: /src/cjose/src/jwk.c:1020,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1022,1
    - Dst: EC_KEY_check_key
      Src: /src/cjose/src/jwk.c:1026,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1028,1
    - Dst: _EC_new
      Src: /src/cjose/src/jwk.c:1032,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:1044,1
    - Dst: EC_KEY_free
      Src: /src/cjose/src/jwk.c:1049,1
    - Dst: EC_POINT_free
      Src: /src/cjose/src/jwk.c:1056,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:1061,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:1066,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:1071,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 117
    argCount: 2
    argNames:
    - spec
    - err
    argTypes:
    - cjose_jwk_ec_keyspec*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 919
    functionDepth: 2
    functionLinenumber: 919
    functionLinenumberEnd: 1076
    functionName: cjose_jwk_create_EC_spec
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 5
    functionsReached:
    - cjose_get_dealloc
    - EC_KEY_check_key
    - EC_KEY_set_private_key
    - EC_POINT_new
    - EC_KEY_new_by_curve_name
    - BN_free
    - _EC_new
    - CJOSE_ERROR
    - EC_POINT_free
    - EC_POINT_set_affine_coordinates_GFp
    - EC_KEY_set_public_key
    - EC_POINT_mul
    - EC_KEY_get0_group
    - EC_POINT_is_on_curve
    - EC_KEY_free
    - BN_bin2bn
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *cjose_jwk_create_EC_spec(const cjose_jwk_ec_keyspec *spec,
      cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_get_kty
      Src: /src/cjose/src/jwk.c:1080,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1082,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - jwk
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1088
    functionName: cjose_jwk_EC_get_curve
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 7
    functionsReached:
    - CJOSE_ERROR
    - cjose_jwk_get_kty
    linkageType: ''
    returnType: cjose_jwk_ec_curve
    signature: cjose_jwk_ec_curve cjose_jwk_EC_get_curve(const cjose_jwk_t *jwk, cjose_err
      *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:1101,1
    - Dst: RSA_free
      Src: /src/cjose/src/jwk.c:1106,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1107,1
    - Dst: memset
      Src: /src/cjose/src/jwk.c:1110,1
    - Dst: RSA_size
      Src: /src/cjose/src/jwk.c:1113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - rsa
    - err
    argTypes:
    - RSA*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1118
    functionName: _RSA_new
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - RSA_free
    - cjose_get_alloc
    - CJOSE_ERROR
    - RSA_size
    - memset
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *_RSA_new(RSA *rsa, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/cjose/src/jwk.c:1126,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - jwk
    argTypes:
    - cjose_jwk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1129
    functionName: _RSA_free
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void _RSA_free(cjose_jwk_t *jwk)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/cjose/src/jwk.c:1144,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:1145,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1148,1
    - Dst: BN_bn2bin
      Src: /src/cjose/src/jwk.c:1151,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jwk.c:1152,1
    - Dst: _cjose_json_stringn
      Src: /src/cjose/src/jwk.c:1156,1
    - Dst: json_object_set
      Src: /src/cjose/src/jwk.c:1161,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:1162,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1169,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - param
    - name
    - json
    - err
    argTypes:
    - BIGNUM*
    - char*
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1175
    functionName: _RSA_json_field
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - BN_bn2bin
    - BN_num_bytes
    - cjose_get_alloc
    - CJOSE_ERROR
    - _cjose_json_stringn
    - json_decref
    - _cjose_cleanse_dealloc
    - cjose_base64url_encode
    - json_object_set
    linkageType: ''
    returnType: bool
    signature: bool _RSA_json_field(BIGNUM *param, const char *name, json_t *json,
      cjose_err *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_jwk_rsa_get
      Src: /src/cjose/src/jwk.c:1182,1
    - Dst: _RSA_json_field
      Src: /src/cjose/src/jwk.c:1184,1
    - Dst: _RSA_json_field
      Src: /src/cjose/src/jwk.c:1188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - jwk
    - json
    - err
    argTypes:
    - cjose_jwk_t*
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1177
    functionDepth: 2
    functionLinenumber: 1177
    functionLinenumberEnd: 1194
    functionName: _RSA_public_fields
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - _RSA_json_field
    - _cjose_jwk_rsa_get
    linkageType: ''
    returnType: bool
    signature: bool _RSA_public_fields(const cjose_jwk_t *jwk, json_t *json, cjose_err
      *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_jwk_rsa_get
      Src: /src/cjose/src/jwk.c:1201,1
    - Dst: _cjose_jwk_rsa_get_factors
      Src: /src/cjose/src/jwk.c:1204,1
    - Dst: _cjose_jwk_rsa_get_crt
      Src: /src/cjose/src/jwk.c:1207,1
    - Dst: _RSA_json_field
      Src: /src/cjose/src/jwk.c:1209,1
    - Dst: _RSA_json_field
      Src: /src/cjose/src/jwk.c:1213,1
    - Dst: _RSA_json_field
      Src: /src/cjose/src/jwk.c:1217,1
    - Dst: _RSA_json_field
      Src: /src/cjose/src/jwk.c:1221,1
    - Dst: _RSA_json_field
      Src: /src/cjose/src/jwk.c:1225,1
    - Dst: _RSA_json_field
      Src: /src/cjose/src/jwk.c:1229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - jwk
    - json
    - err
    argTypes:
    - cjose_jwk_t*
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1196
    functionDepth: 2
    functionLinenumber: 1196
    functionLinenumberEnd: 1235
    functionName: _RSA_private_fields
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - _cjose_jwk_rsa_get_crt
    - _cjose_jwk_rsa_get
    - _cjose_jwk_rsa_get_factors
    - _RSA_json_field
    linkageType: ''
    returnType: bool
    signature: bool _RSA_private_fields(const cjose_jwk_t *jwk, json_t *json, cjose_err
      *err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1246,1
    - Dst: RSA_new
      Src: /src/cjose/src/jwk.c:1258,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1261,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:1265,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1268,1
    - Dst: RSA_generate_key_ex
      Src: /src/cjose/src/jwk.c:1272,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1274,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:1278,1
    - Dst: _RSA_new
      Src: /src/cjose/src/jwk.c:1279,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:1284,1
    - Dst: RSA_free
      Src: /src/cjose/src/jwk.c:1288,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - keysize
    - e
    - elen
    - err
    argTypes:
    - size_t
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1241
    functionDepth: 2
    functionLinenumber: 1241
    functionLinenumberEnd: 1291
    functionName: cjose_jwk_create_RSA_random
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 2
    functionsReached:
    - _RSA_new
    - RSA_free
    - RSA_new
    - BN_free
    - CJOSE_ERROR
    - RSA_generate_key_ex
    - BN_bin2bn
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *cjose_jwk_create_RSA_random(size_t keysize, const uint8_t
      *e, size_t elen, cjose_err *err)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1297,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1305,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jwk.c:1310,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1313,1
    - Dst: BN_num_bits
      Src: /src/cjose/src/jwk.c:1316,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:1318,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1319,1
    - Dst: BN_free
      Src: /src/cjose/src/jwk.c:1322,1
    - Dst: RSA_new
      Src: /src/cjose/src/jwk.c:1325,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1328,1
    - Dst: _cjose_jwk_rsa_set
      Src: /src/cjose/src/jwk.c:1334,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1336,1
    - Dst: _cjose_jwk_rsa_set_factors
      Src: /src/cjose/src/jwk.c:1339,1
    - Dst: _cjose_jwk_rsa_set_crt
      Src: /src/cjose/src/jwk.c:1340,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1342,1
    - Dst: _cjose_jwk_rsa_set
      Src: /src/cjose/src/jwk.c:1348,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1350,1
    - Dst: _RSA_new
      Src: /src/cjose/src/jwk.c:1355,1
    - Dst: RSA_free
      Src: /src/cjose/src/jwk.c:1360,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 2
    argNames:
    - spec
    - err
    argTypes:
    - cjose_jwk_rsa_keyspec*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1293
    functionDepth: 2
    functionLinenumber: 1293
    functionLinenumberEnd: 1364
    functionName: cjose_jwk_create_RSA_spec
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 4
    functionsReached:
    - _RSA_new
    - RSA_free
    - RSA_new
    - _cjose_jwk_rsa_set_factors
    - BN_free
    - _cjose_jwk_rsa_set
    - _cjose_jwk_rsa_set_crt
    - CJOSE_ERROR
    - BN_num_bits
    - BN_bin2bn
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *cjose_jwk_create_RSA_spec(const cjose_jwk_rsa_keyspec
      *spec, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jwk.c:1372,1
    - Dst: json_string_value
      Src: /src/cjose/src/jwk.c:1375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - json
    - key
    - err
    argTypes:
    - json_t*
    - char*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1378
    functionName: _get_json_object_string_attribute
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - json_object_get
    - json_string_value
    linkageType: ''
    returnType: char
    signature: char *_get_json_object_string_attribute(json_t *json, const char *key,
      cjose_err *err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _get_json_object_string_attribute
      Src: /src/cjose/src/jwk.c:1404,1
    - Dst: strlen
      Src: /src/cjose/src/jwk.c:1405,1
    - Dst: strlen
      Src: /src/cjose/src/jwk.c:1416,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1425,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/src/jwk.c:1433,1
    - Dst: strlen
      Src: /src/cjose/src/jwk.c:1433,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - jwk_json
    - key
    - buffer
    - buflen
    - err
    argTypes:
    - json_t*
    - char*
    - uint8_t**
    - size_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1441
    functionName: _decode_json_object_base64url_attribute
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - strlen
    - CJOSE_ERROR
    - cjose_base64url_decode
    - _get_json_object_string_attribute
    linkageType: ''
    returnType: bool
    signature: bool _decode_json_object_base64url_attribute(json_t *jwk_json, const
      char *key, uint8_t **buffer, size_t *buflen, cjose_err *err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _get_json_object_string_attribute
      Src: /src/cjose/src/jwk.c:1454,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1457,1
    - Dst: _ec_curve_from_name
      Src: /src/cjose/src/jwk.c:1463,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1465,1
    - Dst: _ec_size_for_curve
      Src: /src/cjose/src/jwk.c:1470,1
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1471,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1473,1
    - Dst: _ec_size_for_curve
      Src: /src/cjose/src/jwk.c:1478,1
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1479,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1481,1
    - Dst: _ec_size_for_curve
      Src: /src/cjose/src/jwk.c:1486,1
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1487,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1489,1
    - Dst: memset
      Src: /src/cjose/src/jwk.c:1495,1
    - Dst: cjose_jwk_create_EC_spec
      Src: /src/cjose/src/jwk.c:1505,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:1510,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:1514,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1519,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - jwk_json
    - err
    argTypes:
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1443
    functionDepth: 3
    functionLinenumber: 1443
    functionLinenumberEnd: 1523
    functionName: _cjose_jwk_import_EC
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - _decode_json_object_base64url_attribute
    - _ec_curve_from_name
    - _ec_size_for_curve
    - _get_json_object_string_attribute
    - CJOSE_ERROR
    - _cjose_cleanse_dealloc
    - cjose_jwk_create_EC_spec
    - memset
    - cjose_get_dealloc
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *_cjose_jwk_import_EC(json_t *jwk_json, cjose_err *err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1546,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1548,1
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1553,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1555,1
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1560,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1562,1
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1567,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1569,1
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1574,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1576,1
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1581,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1583,1
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1588,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1590,1
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1595,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1597,1
    - Dst: memset
      Src: /src/cjose/src/jwk.c:1603,1
    - Dst: cjose_jwk_create_RSA_spec
      Src: /src/cjose/src/jwk.c:1622,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:1626,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwk.c:1627,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1628,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1629,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1630,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1631,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1632,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1633,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 2
    argNames:
    - jwk_json
    - err
    argTypes:
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1525
    functionDepth: 3
    functionLinenumber: 1525
    functionLinenumberEnd: 1636
    functionName: _cjose_jwk_import_RSA
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - _decode_json_object_base64url_attribute
    - CJOSE_ERROR
    - _cjose_cleanse_dealloc
    - memset
    - cjose_get_dealloc
    - cjose_jwk_create_RSA_spec
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *_cjose_jwk_import_RSA(json_t *jwk_json, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _decode_json_object_base64url_attribute
      Src: /src/cjose/src/jwk.c:1645,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1647,1
    - Dst: cjose_jwk_create_oct_spec
      Src: /src/cjose/src/jwk.c:1652,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - jwk_json
    - err
    argTypes:
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1638
    functionDepth: 3
    functionLinenumber: 1638
    functionLinenumberEnd: 1659
    functionName: _cjose_jwk_import_oct
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - _decode_json_object_base64url_attribute
    - CJOSE_ERROR
    - _cjose_cleanse_dealloc
    - cjose_jwk_create_oct_spec
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *_cjose_jwk_import_oct(json_t *jwk_json, cjose_err *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_loadb
      Src: /src/cjose/src/jwk.c:1672,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1675,1
    - Dst: cjose_jwk_import_json
      Src: /src/cjose/src/jwk.c:1679,1
    - Dst: json_decref
      Src: /src/cjose/src/jwk.c:1685,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - jwk_str
    - len
    - err
    argTypes:
    - char*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1689
    functionName: cjose_jwk_import
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 39
    functionsReached:
    - CJOSE_ERROR
    - json_decref
    - cjose_jwk_import_json
    - json_loadb
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *cjose_jwk_import(const char *jwk_str, size_t len, cjose_err
      *err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: json_typeof
      Src: /src/cjose/src/jwk.c:1697,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1699,1
    - Dst: _get_json_object_string_attribute
      Src: /src/cjose/src/jwk.c:1704,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1707,1
    - Dst: _kty_from_name
      Src: /src/cjose/src/jwk.c:1713,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1715,1
    - Dst: _cjose_jwk_import_EC
      Src: /src/cjose/src/jwk.c:1723,1
    - Dst: _cjose_jwk_import_RSA
      Src: /src/cjose/src/jwk.c:1727,1
    - Dst: _cjose_jwk_import_oct
      Src: /src/cjose/src/jwk.c:1731,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1735,1
    - Dst: _get_json_object_string_attribute
      Src: /src/cjose/src/jwk.c:1745,1
    - Dst: _cjose_strndup
      Src: /src/cjose/src/jwk.c:1748,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/src/jwk.c:1751,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - json
    - err
    argTypes:
    - cjose_header_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1691
    functionDepth: 4
    functionLinenumber: 1691
    functionLinenumberEnd: 1757
    functionName: cjose_jwk_import_json
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 3
    functionsReached:
    - cjose_jwk_release
    - _kty_from_name
    - _cjose_jwk_import_oct
    - _get_json_object_string_attribute
    - _cjose_jwk_import_EC
    - CJOSE_ERROR
    - json_typeof
    - _cjose_strndup
    - _cjose_jwk_import_RSA
    linkageType: ''
    returnType: cjose_jwk_t
    signature: cjose_jwk_t *cjose_jwk_import_json(cjose_header_t *json, cjose_err
      *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1767,1
    - Dst: EVP_PKEY_new
      Src: /src/cjose/src/jwk.c:1772,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1775,1
    - Dst: EVP_PKEY_set1_EC_KEY
      Src: /src/cjose/src/jwk.c:1780,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1782,1
    - Dst: EVP_PKEY_free
      Src: /src/cjose/src/jwk.c:1792,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - jwk
    - key
    - err
    argTypes:
    - cjose_jwk_t*
    - EVP_PKEY**
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1796
    functionName: _cjose_jwk_evp_key_from_ec_key
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_set1_EC_KEY
    - CJOSE_ERROR
    - EVP_PKEY_free
    - EVP_PKEY_new
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwk_evp_key_from_ec_key(const cjose_jwk_t *jwk, EVP_PKEY
      **key, cjose_err *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_derive_ecdh_ephemeral_key
      Src: /src/cjose/src/jwk.c:1801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - jwk_self
    - jwk_peer
    - salt
    - salt_len
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_jwk_t*
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1798
    functionDepth: 1
    functionLinenumber: 1798
    functionLinenumberEnd: 1802
    functionName: cjose_jwk_derive_ecdh_secret
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_derive_ecdh_ephemeral_key
    linkageType: ''
    returnType: cjose_jwk_t
    signature: "cjose_jwk_t *cjose_jwk_derive_ecdh_secret(\n    const cjose_jwk_t
      *jwk_self, const cjose_jwk_t *jwk_peer, const uint8_t *salt, size_t salt_len,
      cjose_err *err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_derive_ecdh_bits
      Src: /src/cjose/src/jwk.c:1813,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:1820,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1823,1
    - Dst: cjose_jwk_hkdf
      Src: /src/cjose/src/jwk.c:1826,1
    - Dst: EVP_sha256
      Src: /src/cjose/src/jwk.c:1826,1
    - Dst: cjose_jwk_create_oct_spec
      Src: /src/cjose/src/jwk.c:1832,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1839,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1840,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/src/jwk.c:1849,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1851,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1852,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 5
    argNames:
    - jwk_self
    - jwk_peer
    - salt
    - salt_len
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_jwk_t*
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1804
    functionDepth: 3
    functionLinenumber: 1804
    functionLinenumberEnd: 1854
    functionName: cjose_jwk_derive_ecdh_ephemeral_key
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 1
    functionsReached:
    - cjose_jwk_derive_ecdh_bits
    - cjose_jwk_release
    - cjose_jwk_hkdf
    - EVP_sha256
    - cjose_get_alloc
    - CJOSE_ERROR
    - _cjose_cleanse_dealloc
    - cjose_jwk_create_oct_spec
    linkageType: ''
    returnType: cjose_jwk_t
    signature: "cjose_jwk_t *cjose_jwk_derive_ecdh_ephemeral_key(\n    const cjose_jwk_t
      *jwk_self, const cjose_jwk_t *jwk_peer, const uint8_t *salt, size_t salt_len,
      cjose_err *err)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_jwk_evp_key_from_ec_key
      Src: /src/cjose/src/jwk.c:1866,1
    - Dst: _cjose_jwk_evp_key_from_ec_key
      Src: /src/cjose/src/jwk.c:1872,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/cjose/src/jwk.c:1878,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1881,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/cjose/src/jwk.c:1886,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1888,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/cjose/src/jwk.c:1893,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1895,1
    - Dst: EVP_PKEY_derive
      Src: /src/cjose/src/jwk.c:1900,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1902,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwk.c:1907,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1910,1
    - Dst: memset
      Src: /src/cjose/src/jwk.c:1913,1
    - Dst: EVP_PKEY_derive
      Src: /src/cjose/src/jwk.c:1916,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1918,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/cjose/src/jwk.c:1923,1
    - Dst: EVP_PKEY_free
      Src: /src/cjose/src/jwk.c:1924,1
    - Dst: EVP_PKEY_free
      Src: /src/cjose/src/jwk.c:1925,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/cjose/src/jwk.c:1935,1
    - Dst: EVP_PKEY_free
      Src: /src/cjose/src/jwk.c:1939,1
    - Dst: EVP_PKEY_free
      Src: /src/cjose/src/jwk.c:1943,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwk.c:1945,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 5
    argNames:
    - jwk_self
    - jwk_peer
    - output
    - output_len
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_jwk_t*
    - uint8_t**
    - size_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1856
    functionDepth: 2
    functionLinenumber: 1856
    functionLinenumberEnd: 1948
    functionName: cjose_jwk_derive_ecdh_bits
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_derive_set_peer
    - EVP_PKEY_free
    - _cjose_jwk_evp_key_from_ec_key
    - cjose_get_alloc
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    - CJOSE_ERROR
    - _cjose_cleanse_dealloc
    - memset
    - EVP_PKEY_derive
    linkageType: ''
    returnType: bool
    signature: "bool cjose_jwk_derive_ecdh_bits(\n    const cjose_jwk_t *jwk_self,
      const cjose_jwk_t *jwk_peer, uint8_t **output, size_t *output_len, cjose_err
      *err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/cjose/src/jwk.c:1962,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1964,1
    - Dst: HMAC
      Src: /src/cjose/src/jwk.c:1971,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1973,1
    - Dst: HMAC
      Src: /src/cjose/src/jwk.c:1979,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwk.c:1981,1
    - Dst: _cjose_cleanse
      Src: /src/cjose/src/jwk.c:1982,1
    - Dst: _cjose_cleanse
      Src: /src/cjose/src/jwk.c:1986,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 10
    argNames:
    - md
    - salt
    - salt_len
    - info
    - info_len
    - ikm
    - ikm_len
    - okm
    - okm_len
    - err
    argTypes:
    - EVP_MD*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - unsigned int
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1950
    functionDepth: 1
    functionLinenumber: 1950
    functionLinenumberEnd: 1988
    functionName: cjose_jwk_hkdf
    functionSourceFile: /src/cjose/src/jwk.c
    functionUses: 2
    functionsReached:
    - EVP_sha256
    - HMAC
    - CJOSE_ERROR
    - _cjose_cleanse
    linkageType: ''
    returnType: bool
    signature: "bool cjose_jwk_hkdf(const EVP_MD *md,\n                    const uint8_t
      *salt,\n                    size_t salt_len,\n                    const uint8_t
      *info,\n                    size_t info_len,\n                    const uint8_t
      *ikm,\n                    size_t ikm_len,\n                    uint8_t *okm,\n
      \                   unsigned int okm_len,\n                    cjose_err *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_alloc3
      Src: /src/cjose/src/util.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: cjose_alloc_wrapped
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 0
    functionsReached:
    - cjose_get_alloc3
    linkageType: ''
    returnType: void
    signature: void *cjose_alloc_wrapped(size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_realloc3
      Src: /src/cjose/src/util.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: cjose_realloc_wrapped
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 0
    functionsReached:
    - cjose_get_realloc3
    linkageType: ''
    returnType: void
    signature: void *cjose_realloc_wrapped(void *p, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_dealloc3
      Src: /src/cjose/src/util.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: cjose_dealloc_wrapped
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc3
    linkageType: ''
    returnType: void
    signature: void cjose_dealloc_wrapped(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_UNUSED_PARAM
      Src: /src/cjose/src/util.c:30,1
    - Dst: CJOSE_UNUSED_PARAM
      Src: /src/cjose/src/util.c:31,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/util.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - n
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: cjose_alloc3_default
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 0
    functionsReached:
    - CJOSE_UNUSED_PARAM
    - cjose_get_alloc
    linkageType: ''
    returnType: void
    signature: void *cjose_alloc3_default(size_t n, const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_UNUSED_PARAM
      Src: /src/cjose/src/util.c:37,1
    - Dst: CJOSE_UNUSED_PARAM
      Src: /src/cjose/src/util.c:38,1
    - Dst: cjose_get_realloc
      Src: /src/cjose/src/util.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - p
    - n
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: cjose_realloc3_default
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 0
    functionsReached:
    - cjose_get_realloc
    - CJOSE_UNUSED_PARAM
    linkageType: ''
    returnType: void
    signature: void *cjose_realloc3_default(void *p, size_t n, const char *file, int
      line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_UNUSED_PARAM
      Src: /src/cjose/src/util.c:44,1
    - Dst: CJOSE_UNUSED_PARAM
      Src: /src/cjose/src/util.c:45,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/util.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p
    - file
    - line
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: cjose_dealloc3_default
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - CJOSE_UNUSED_PARAM
    linkageType: ''
    returnType: void
    signature: void cjose_dealloc3_default(void *p, const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_set_alloc_funcs
      Src: /src/cjose/src/util.c:52,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/util.c:52,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/util.c:52,1
    - Dst: CRYPTO_set_mem_functions
      Src: /src/cjose/src/util.c:54,1
    - Dst: cjose_get_alloc3
      Src: /src/cjose/src/util.c:54,1
    - Dst: cjose_get_realloc3
      Src: /src/cjose/src/util.c:54,1
    - Dst: cjose_get_dealloc3
      Src: /src/cjose/src/util.c:54,1
    - Dst: CRYPTO_set_mem_functions
      Src: /src/cjose/src/util.c:56,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/util.c:56,1
    - Dst: cjose_get_realloc
      Src: /src/cjose/src/util.c:56,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/util.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: cjose_apply_allocs
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc3
    - cjose_get_realloc3
    - cjose_get_alloc
    - json_set_alloc_funcs
    - CRYPTO_set_mem_functions
    - cjose_get_alloc3
    - cjose_get_dealloc
    - cjose_get_realloc
    linkageType: ''
    returnType: void
    signature: void cjose_apply_allocs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_apply_allocs
      Src: /src/cjose/src/util.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - alloc
    - realloc
    - dealloc
    argTypes:
    - cjose_alloc_fn_t
    - cjose_realloc_fn_t
    - cjose_dealloc_fn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: cjose_set_alloc_funcs
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 1
    functionsReached:
    - cjose_apply_allocs
    linkageType: ''
    returnType: void
    signature: void cjose_set_alloc_funcs(cjose_alloc_fn_t alloc, cjose_realloc_fn_t
      realloc, cjose_dealloc_fn_t dealloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_apply_allocs
      Src: /src/cjose/src/util.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - alloc3
    - realloc3
    - dealloc3
    argTypes:
    - cjose_alloc3_fn_t
    - cjose_realloc3_fn_t
    - cjose_dealloc3_fn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: cjose_set_alloc_ex_funcs
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 1
    functionsReached:
    - cjose_apply_allocs
    linkageType: ''
    returnType: void
    signature: void cjose_set_alloc_ex_funcs(cjose_alloc3_fn_t alloc3, cjose_realloc3_fn_t
      realloc3, cjose_dealloc3_fn_t dealloc3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: cjose_get_alloc
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: cjose_alloc_fn_t
    signature: cjose_alloc_fn_t cjose_get_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: cjose_get_alloc3
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: cjose_alloc3_fn_t
    signature: cjose_alloc3_fn_t cjose_get_alloc3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: cjose_get_realloc
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: cjose_realloc_fn_t
    signature: cjose_realloc_fn_t cjose_get_realloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: cjose_get_realloc3
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: cjose_realloc3_fn_t
    signature: cjose_realloc3_fn_t cjose_get_realloc3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: cjose_get_dealloc
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: cjose_dealloc_fn_t
    signature: cjose_dealloc_fn_t cjose_get_dealloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: cjose_get_dealloc3
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: cjose_dealloc3_fn_t
    signature: cjose_dealloc3_fn_t cjose_get_dealloc3(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/cjose/src/util.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: _cjose_cleanse
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 1
    functionsReached:
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void _cjose_cleanse(void *ptr, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_cleanse
      Src: /src/cjose/src/util.c:107,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/util.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: _cjose_cleanse_dealloc
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 9
    functionsReached:
    - cjose_get_dealloc
    - _cjose_cleanse
    linkageType: ''
    returnType: void
    signature: void _cjose_cleanse_dealloc(void *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_memcmp
      Src: /src/cjose/src/util.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - size
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: cjose_const_memcmp
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 0
    functionsReached:
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: int cjose_const_memcmp(const uint8_t *a, const uint8_t *b, const size_t
      size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/util.c:118,1
    - Dst: strlen
      Src: /src/cjose/src/util.c:124,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/util.c:127,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/util.c:130,1
    - Dst: memcpy
      Src: /src/cjose/src/util.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - str
    - len
    - err
    argTypes:
    - char*
    - ssize_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 137
    functionName: _cjose_strndup
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 2
    functionsReached:
    - memcpy
    - CJOSE_ERROR
    - strlen
    - cjose_get_alloc
    linkageType: ''
    returnType: char
    signature: char *_cjose_strndup(const char *str, ssize_t len, cjose_err *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_strndup
      Src: /src/cjose/src/util.c:143,1
    - Dst: json_string
      Src: /src/cjose/src/util.c:148,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/util.c:151,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/util.c:152,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/util.c:155,1
    - Dst: json_stringn
      Src: /src/cjose/src/util.c:157,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/util.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - value
    - len
    - err
    argTypes:
    - char*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 165
    functionName: _cjose_json_stringn
    functionSourceFile: /src/cjose/src/util.c
    functionUses: 4
    functionsReached:
    - json_stringn
    - CJOSE_ERROR
    - cjose_get_dealloc
    - _cjose_strndup
    - json_string
    linkageType: ''
    returnType: json_t
    signature: json_t *_cjose_json_stringn(const char *value, size_t len, cjose_err
      *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: B64_BYTE1
    functionSourceFile: /src/cjose/src/base64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B64_BYTE1(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: B64_BYTE2
    functionSourceFile: /src/cjose/src/base64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B64_BYTE2(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: B64_BYTE3
    functionSourceFile: /src/cjose/src/base64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B64_BYTE3(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: B64_BYTE4
    functionSourceFile: /src/cjose/src/base64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B64_BYTE4(ptr)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:47,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/base64.c:54,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:57,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:70,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:78,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/base64.c:83,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:86,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:104,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:109,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:116,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/base64.c:117,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:135,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:154,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/base64.c:166,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 84
    argCount: 6
    argNames:
    - input
    - inlen
    - output
    - outlen
    - url
    - err
    argTypes:
    - char*
    - size_t
    - uint8_t**
    - size_t*
    - bool
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 169
    functionName: _decode
    functionSourceFile: /src/cjose/src/base64.c
    functionUses: 40
    functionsReached:
    - cjose_get_dealloc
    - CJOSE_ERROR
    - cjose_get_alloc
    linkageType: ''
    returnType: bool
    signature: bool _decode(const char *input, size_t inlen, uint8_t **output, size_t
      *outlen, bool url, cjose_err *err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:175,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/base64.c:182,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:185,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:198,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/base64.c:206,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/base64.c:209,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 6
    argNames:
    - input
    - inlen
    - output
    - outlen
    - alphabet
    - err
    argTypes:
    - uint8_t*
    - size_t
    - char**
    - size_t*
    - char*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 252
    functionName: _encode
    functionSourceFile: /src/cjose/src/base64.c
    functionUses: 121
    functionsReached:
    - CJOSE_ERROR
    - cjose_get_alloc
    linkageType: ''
    returnType: bool
    signature: bool _encode(const uint8_t *input, size_t inlen, char **output, size_t
      *outlen, const char *alphabet, cjose_err *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _encode
      Src: /src/cjose/src/base64.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - input
    - inlen
    - output
    - outlen
    - err
    argTypes:
    - uint8_t*
    - size_t
    - char**
    - size_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: cjose_base64_encode
    functionSourceFile: /src/cjose/src/base64.c
    functionUses: 1
    functionsReached:
    - _encode
    linkageType: ''
    returnType: bool
    signature: bool cjose_base64_encode(const uint8_t *input, const size_t inlen,
      char **output, size_t *outlen, cjose_err *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _encode
      Src: /src/cjose/src/base64.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - input
    - inlen
    - output
    - outlen
    - err
    argTypes:
    - uint8_t*
    - size_t
    - char**
    - size_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: cjose_base64url_encode
    functionSourceFile: /src/cjose/src/base64.c
    functionUses: 11
    functionsReached:
    - _encode
    linkageType: ''
    returnType: bool
    signature: bool cjose_base64url_encode(const uint8_t *input, const size_t inlen,
      char **output, size_t *outlen, cjose_err *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decode
      Src: /src/cjose/src/base64.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - input
    - inlen
    - output
    - outlen
    - err
    argTypes:
    - char*
    - size_t
    - uint8_t**
    - size_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: cjose_base64_decode
    functionSourceFile: /src/cjose/src/base64.c
    functionUses: 1
    functionsReached:
    - _decode
    linkageType: ''
    returnType: bool
    signature: bool cjose_base64_decode(const char *input, const size_t inlen, uint8_t
      **output, size_t *outlen, cjose_err *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decode
      Src: /src/cjose/src/base64.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - input
    - inlen
    - output
    - outlen
    - err
    argTypes:
    - char*
    - size_t
    - uint8_t**
    - size_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: cjose_base64url_decode
    functionSourceFile: /src/cjose/src/base64.c
    functionUses: 14
    functionsReached:
    - _decode
    linkageType: ''
    returnType: bool
    signature: bool cjose_base64url_decode(const char *input, const size_t inlen,
      uint8_t **output, size_t *outlen, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwe.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cek
    - cek_len
    argTypes:
    - uint8_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: _cjose_release_cek
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - _cjose_cleanse_dealloc
    linkageType: ''
    returnType: void
    signature: void _cjose_release_cek(uint8_t **cek, size_t cek_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_is_null
      Src: /src/cjose/src/jwe.c:96,1
    - Dst: json_is_object
      Src: /src/cjose/src/jwe.c:96,1
    - Dst: json_object_iter_key
      Src: /src/cjose/src/jwe.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: _cjose_empty_json
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - json_is_object
    - json_is_null
    - json_object_iter_key
    linkageType: ''
    returnType: bool
    signature: bool _cjose_empty_json(json_t *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:103,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - part
    argTypes:
    - struct _cjose_jwe_part_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: _cjose_dealloc_part
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    linkageType: ''
    returnType: void
    signature: void _cjose_dealloc_part(struct _cjose_jwe_part_int *part)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_loadb
      Src: /src/cjose/src/jwe.c:114,1
    - Dst: json_is_object
      Src: /src/cjose/src/jwe.c:115,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:117,1
    - Dst: json_decref
      Src: /src/cjose/src/jwe.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - str
    - len
    - err
    argTypes:
    - char*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: _cjose_parse_json_object
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - json_is_object
    - CJOSE_ERROR
    - json_decref
    - json_loadb
    linkageType: ''
    returnType: json_t
    signature: json_t *_cjose_parse_json_object(const char *str, size_t len, cjose_err
      *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jwe.c:129,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - part
    - err
    argTypes:
    - struct _cjose_jwe_part_int*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: _cjose_convert_part
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - cjose_base64url_encode
    linkageType: ''
    returnType: bool
    signature: bool _cjose_convert_part(struct _cjose_jwe_part_int *part, cjose_err
      *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_convert_part
      Src: /src/cjose/src/jwe.c:145,1
    - Dst: _cjose_convert_part
      Src: /src/cjose/src/jwe.c:145,1
    - Dst: _cjose_convert_part
      Src: /src/cjose/src/jwe.c:146,1
    - Dst: _cjose_convert_part
      Src: /src/cjose/src/jwe.c:146,1
    - Dst: _cjose_convert_part
      Src: /src/cjose/src/jwe.c:154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - jwe
    - err
    argTypes:
    - struct _cjose_jwe_int*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 161
    functionName: _cjose_convert_to_base64
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - _cjose_convert_part
    linkageType: ''
    returnType: bool
    signature: bool _cjose_convert_to_base64(struct _cjose_jwe_int *jwe, cjose_err
      *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:168,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:172,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:176,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:180,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:184,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - alg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 194
    functionName: _keylen_from_enc
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: size_t
    signature: size_t _keylen_from_enc(const char *alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwe.c:199,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:202,1
    - Dst: RAND_bytes
      Src: /src/cjose/src/jwe.c:207,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:209,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:210,1
    - Dst: memset
      Src: /src/cjose/src/jwe.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - bytes
    - random
    - buffer
    - err
    argTypes:
    - size_t
    - bool
    - uint8_t**
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 221
    functionName: _cjose_jwe_malloc
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_get_alloc
    - CJOSE_ERROR
    - RAND_bytes
    - memset
    - cjose_get_dealloc
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_malloc(size_t bytes, bool random, uint8_t **buffer,
      cjose_err *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_dumps
      Src: /src/cjose/src/jwe.c:227,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:230,1
    - Dst: strlen
      Src: /src/cjose/src/jwe.c:235,1
    - Dst: _cjose_strndup
      Src: /src/cjose/src/jwe.c:236,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:239,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - jwe
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 248
    functionName: _cjose_jwe_build_hdr
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - strlen
    - json_dumps
    - CJOSE_ERROR
    - cjose_get_dealloc
    - _cjose_strndup
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_build_hdr(cjose_jwe_t *jwe, cjose_err *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:265,1
    - Dst: json_string_value
      Src: /src/cjose/src/jwe.c:270,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - protected_header
    - unprotected_header
    - personal_header
    - key
    argTypes:
    - cjose_header_t*
    - cjose_header_t*
    - cjose_header_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 279
    functionName: _cjose_jwe_get_from_headers
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - json_object_get
    - json_string_value
    linkageType: ''
    returnType: char
    signature: "char *_cjose_jwe_get_from_headers(cjose_header_t *protected_header,\n
      \                                              cjose_header_t *unprotected_header,\n
      \                                              cjose_header_t *personal_header,\n
      \                                              const char *key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cjose_header_get
      Src: /src/cjose/src/jwe.c:284,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:287,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:291,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:291,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:292,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:299,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:299,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:300,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:310,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - jwe
    - protected_header
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_header_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 315
    functionName: _cjose_jwe_validate_enc
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - CJOSE_ERROR
    - strcmp
    - cjose_header_get
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_validate_enc(cjose_jwe_t *jwe, cjose_header_t *protected_header,
      cjose_err *err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_header_validate_crit
      Src: /src/cjose/src/jwe.c:326,1
    - Dst: _cjose_header_validate_crit
      Src: /src/cjose/src/jwe.c:328,1
    - Dst: _cjose_header_validate_crit
      Src: /src/cjose/src/jwe.c:330,1
    - Dst: _cjose_jwe_get_from_headers
      Src: /src/cjose/src/jwe.c:336,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:341,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:346,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:353,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:359,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:363,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:369,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:373,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:379,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:379,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:380,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:389,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 5
    argNames:
    - protected_header
    - unprotected_header
    - is_multiple
    - recipient
    - err
    argTypes:
    - cjose_header_t*
    - cjose_header_t*
    - bool
    - _jwe_int_recipient_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 394
    functionName: _cjose_jwe_validate_alg
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - CJOSE_ERROR
    - _cjose_jwe_get_from_headers
    - strcmp
    - _cjose_header_validate_crit
    linkageType: ''
    returnType: bool
    signature: "bool _cjose_jwe_validate_alg(cjose_header_t *protected_header,\n                                    cjose_header_t
      *unprotected_header,\n                                    bool is_multiple,\n
      \                                   _jwe_int_recipient_t *recipient,\n                                    cjose_err
      *err)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:405,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:408,1
    - Dst: json_string_value
      Src: /src/cjose/src/jwe.c:411,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:415,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:417,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:419,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:425,1
    - Dst: _cjose_release_cek
      Src: /src/cjose/src/jwe.c:432,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:433,1
    - Dst: cjose_jwk_get_kty
      Src: /src/cjose/src/jwe.c:442,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:444,1
    - Dst: _cjose_release_cek
      Src: /src/cjose/src/jwe.c:449,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:450,1
    - Dst: memcpy
      Src: /src/cjose/src/jwe.c:454,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - jwe
    - jwk
    - random
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_jwk_t*
    - bool
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 459
    functionName: _cjose_jwe_set_cek_aes_gcm
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _cjose_release_cek
    - json_object_get
    - json_string_value
    - strcmp
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - cjose_jwk_get_kty
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_set_cek_aes_gcm(cjose_jwe_t *jwe, const cjose_jwk_t
      *jwk, bool random, cjose_err *err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:471,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:474,1
    - Dst: json_string_value
      Src: /src/cjose/src/jwe.c:477,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:481,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:483,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:485,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:491,1
    - Dst: _cjose_release_cek
      Src: /src/cjose/src/jwe.c:498,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:499,1
    - Dst: cjose_jwk_get_kty
      Src: /src/cjose/src/jwe.c:508,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:510,1
    - Dst: _cjose_release_cek
      Src: /src/cjose/src/jwe.c:515,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:516,1
    - Dst: memcpy
      Src: /src/cjose/src/jwe.c:520,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - jwe
    - jwk
    - random
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_jwk_t*
    - bool
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 524
    functionName: _cjose_jwe_set_cek_aes_cbc
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _cjose_release_cek
    - json_object_get
    - json_string_value
    - strcmp
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - cjose_jwk_get_kty
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_set_cek_aes_cbc(cjose_jwe_t *jwe, const cjose_jwk_t
      *jwk, bool random, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwe_t*::fns::set_cek
      Src: /src/cjose/src/jwe.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - recipient
    - jwe
    - jwk
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 540
    functionName: _cjose_jwe_encrypt_ek_dir
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwe_t*::fns::set_cek
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_encrypt_ek_dir(_jwe_int_recipient_t *recipient, cjose_jwe_t
      *jwe, const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwe_t*::fns::set_cek
      Src: /src/cjose/src/jwe.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - recipient
    - jwe
    - jwk
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 548
    functionName: _cjose_jwe_decrypt_ek_dir
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwe_t*::fns::set_cek
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_decrypt_ek_dir(_jwe_int_recipient_t *recipient, cjose_jwe_t
      *jwe, const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:555,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:562,1
    - Dst: cjose_jwe_t*::fns::set_cek
      Src: /src/cjose/src/jwe.c:567,1
    - Dst: AES_set_encrypt_key
      Src: /src/cjose/src/jwe.c:574,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:576,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:581,1
    - Dst: AES_wrap_key
      Src: /src/cjose/src/jwe.c:587,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:590,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - recipient
    - jwe
    - jwk
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 596
    functionName: _cjose_jwe_encrypt_ek_aes_kw
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwe_t*::fns::set_cek
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - AES_wrap_key
    - AES_set_encrypt_key
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_encrypt_ek_aes_kw(_jwe_int_recipient_t *recipient,
      cjose_jwe_t *jwe, const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:603,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:610,1
    - Dst: AES_set_decrypt_key
      Src: /src/cjose/src/jwe.c:616,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:618,1
    - Dst: cjose_jwe_t*::fns::set_cek
      Src: /src/cjose/src/jwe.c:622,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:632,1
    - Dst: AES_unwrap_key
      Src: /src/cjose/src/jwe.c:637,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:641,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - recipient
    - jwe
    - jwk
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 647
    functionName: _cjose_jwe_decrypt_ek_aes_kw
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - CJOSE_ERROR
    - AES_set_decrypt_key
    - AES_unwrap_key
    - cjose_jwe_t*::fns::set_cek
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_decrypt_ek_aes_kw(_jwe_int_recipient_t *recipient,
      cjose_jwe_t *jwe, const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:656,1
    - Dst: _cjose_jwk_rsa_get
      Src: /src/cjose/src/jwe.c:662,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:665,1
    - Dst: cjose_jwe_t*::fns::set_cek
      Src: /src/cjose/src/jwe.c:670,1
    - Dst: RSA_size
      Src: /src/cjose/src/jwe.c:676,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:681,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:686,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:687,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:696,1
    - Dst: RSA_public_encrypt
      Src: /src/cjose/src/jwe.c:702,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:705,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - recipient
    - jwe
    - jwk
    - padding
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - int
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 710
    functionName: _cjose_jwe_encrypt_ek_rsa_padding
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwe_t*::fns::set_cek
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - RSA_size
    - cjose_get_dealloc
    - _cjose_jwk_rsa_get
    - RSA_public_encrypt
    linkageType: ''
    returnType: bool
    signature: "bool _cjose_jwe_encrypt_ek_rsa_padding(\n    _jwe_int_recipient_t
      *recipient, cjose_jwe_t *jwe, const cjose_jwk_t *jwk, int padding, cjose_err
      *err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:718,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:725,1
    - Dst: _cjose_jwk_rsa_get
      Src: /src/cjose/src/jwe.c:731,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:734,1
    - Dst: _cjose_release_cek
      Src: /src/cjose/src/jwe.c:740,1
    - Dst: cjose_jwe_t*::fns::set_cek
      Src: /src/cjose/src/jwe.c:741,1
    - Dst: RSA_size
      Src: /src/cjose/src/jwe.c:748,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:751,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:760,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:768,1
    - Dst: RSA_private_decrypt
      Src: /src/cjose/src/jwe.c:775,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwe.c:778,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:779,1
    - Dst: memcpy
      Src: /src/cjose/src/jwe.c:783,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwe.c:784,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 5
    argNames:
    - recipient
    - jwe
    - jwk
    - padding
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - int
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 787
    functionName: _cjose_jwe_decrypt_ek_rsa_padding
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _cjose_release_cek
    - RSA_private_decrypt
    - cjose_jwe_t*::fns::set_cek
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - _cjose_cleanse_dealloc
    - RSA_size
    - _cjose_jwk_rsa_get
    linkageType: ''
    returnType: bool
    signature: "bool _cjose_jwe_decrypt_ek_rsa_padding(\n    _jwe_int_recipient_t
      *recipient, cjose_jwe_t *jwe, const cjose_jwk_t *jwk, int padding, cjose_err
      *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_jwe_encrypt_ek_rsa_padding
      Src: /src/cjose/src/jwe.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - recipient
    - jwe
    - jwk
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 3
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: _cjose_jwe_encrypt_ek_rsa_oaep
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - _cjose_jwe_encrypt_ek_rsa_padding
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_encrypt_ek_rsa_oaep(_jwe_int_recipient_t *recipient,
      cjose_jwe_t *jwe, const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_jwe_decrypt_ek_rsa_padding
      Src: /src/cjose/src/jwe.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - recipient
    - jwe
    - jwk
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 797
    functionDepth: 4
    functionLinenumber: 797
    functionLinenumberEnd: 801
    functionName: _cjose_jwe_decrypt_ek_rsa_oaep
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - _cjose_jwe_decrypt_ek_rsa_padding
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_decrypt_ek_rsa_oaep(_jwe_int_recipient_t *recipient,
      cjose_jwe_t *jwe, const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_jwe_encrypt_ek_rsa_padding
      Src: /src/cjose/src/jwe.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - recipient
    - jwe
    - jwk
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: _cjose_jwe_encrypt_ek_rsa1_5
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - _cjose_jwe_encrypt_ek_rsa_padding
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_encrypt_ek_rsa1_5(_jwe_int_recipient_t *recipient,
      cjose_jwe_t *jwe, const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_jwe_decrypt_ek_rsa_padding
      Src: /src/cjose/src/jwe.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - recipient
    - jwe
    - jwk
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 811
    functionDepth: 4
    functionLinenumber: 811
    functionLinenumberEnd: 814
    functionName: _cjose_jwe_decrypt_ek_rsa1_5
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - _cjose_jwe_decrypt_ek_rsa_padding
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_decrypt_ek_rsa1_5(_jwe_int_recipient_t *recipient,
      cjose_jwe_t *jwe, const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwk_create_EC_random
      Src: /src/cjose/src/jwe.c:830,1
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/cjose/src/jwe.c:830,1
    - Dst: cjose_jwk_to_json
      Src: /src/cjose/src/jwe.c:836,1
    - Dst: cjose_header_set_raw
      Src: /src/cjose/src/jwe.c:841,1
    - Dst: cjose_jwk_derive_ecdh_bits
      Src: /src/cjose/src/jwe.c:847,1
    - Dst: cjose_header_get
      Src: /src/cjose/src/jwe.c:859,1
    - Dst: _keylen_from_enc
      Src: /src/cjose/src/jwe.c:860,1
    - Dst: cjose_concatkdf_create_otherinfo
      Src: /src/cjose/src/jwe.c:862,1
    - Dst: cjose_concatkdf_derive
      Src: /src/cjose/src/jwe.c:867,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:879,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/src/jwe.c:888,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:889,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwe.c:890,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:891,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - recipient
    - jwe
    - jwk
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 818
    functionDepth: 3
    functionLinenumber: 818
    functionLinenumberEnd: 894
    functionName: _cjose_jwe_encrypt_ek_ecdh_es
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_EC_get_curve
    - cjose_concatkdf_derive
    - _keylen_from_enc
    - cjose_jwk_derive_ecdh_bits
    - cjose_jwk_release
    - cjose_jwk_to_json
    - cjose_jwk_create_EC_random
    - cjose_concatkdf_create_otherinfo
    - _cjose_cleanse_dealloc
    - cjose_get_dealloc
    - cjose_header_set_raw
    - cjose_header_get
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_encrypt_ek_ecdh_es(_jwe_int_recipient_t *recipient,
      cjose_jwe_t *jwe, const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cjose/src/jwe.c:915,1
    - Dst: cjose_header_get_raw
      Src: /src/cjose/src/jwe.c:916,1
    - Dst: cjose_jwk_import
      Src: /src/cjose/src/jwe.c:919,1
    - Dst: strlen
      Src: /src/cjose/src/jwe.c:919,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:923,1
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/cjose/src/jwe.c:933,1
    - Dst: cjose_jwk_EC_get_curve
      Src: /src/cjose/src/jwe.c:933,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:935,1
    - Dst: cjose_jwk_derive_ecdh_bits
      Src: /src/cjose/src/jwe.c:940,1
    - Dst: cjose_header_get
      Src: /src/cjose/src/jwe.c:952,1
    - Dst: _keylen_from_enc
      Src: /src/cjose/src/jwe.c:953,1
    - Dst: cjose_concatkdf_create_otherinfo
      Src: /src/cjose/src/jwe.c:955,1
    - Dst: cjose_concatkdf_derive
      Src: /src/cjose/src/jwe.c:960,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:972,1
    - Dst: cjose_jwk_release
      Src: /src/cjose/src/jwe.c:981,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:982,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwe.c:983,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:984,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 4
    argNames:
    - recipient
    - jwe
    - jwk
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_jwe_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 987
    functionName: _cjose_jwe_decrypt_ek_ecdh_es
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_jwk_EC_get_curve
    - cjose_jwk_import
    - cjose_concatkdf_derive
    - _keylen_from_enc
    - cjose_jwk_derive_ecdh_bits
    - strlen
    - cjose_jwk_release
    - cjose_header_get_raw
    - CJOSE_ERROR
    - cjose_concatkdf_create_otherinfo
    - _cjose_cleanse_dealloc
    - memset
    - cjose_get_dealloc
    - cjose_header_get
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_decrypt_ek_ecdh_es(_jwe_int_recipient_t *recipient,
      cjose_jwe_t *jwe, const cjose_jwk_t *jwk, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:993,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - jwe
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 1001
    functionName: _cjose_jwe_set_iv_aes_gcm
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - _cjose_jwe_malloc
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_set_iv_aes_gcm(cjose_jwe_t *jwe, cjose_err *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:1007,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1010,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:1013,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - jwe
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1004
    functionDepth: 2
    functionLinenumber: 1004
    functionLinenumberEnd: 1040
    functionName: _cjose_jwe_set_iv_aes_cbc
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - json_object_get
    - cjose_get_dealloc
    - CJOSE_ERROR
    - _cjose_jwe_malloc
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_set_iv_aes_cbc(cjose_jwe_t *jwe, cjose_err *err)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:1056,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1059,1
    - Dst: json_string_value
      Src: /src/cjose/src/jwe.c:1062,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1066,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1073,1
    - Dst: EVP_aes_128_gcm
      Src: /src/cjose/src/jwe.c:1074,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1075,1
    - Dst: EVP_aes_192_gcm
      Src: /src/cjose/src/jwe.c:1076,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1077,1
    - Dst: EVP_aes_256_gcm
      Src: /src/cjose/src/jwe.c:1078,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1082,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/cjose/src/jwe.c:1087,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1090,1
    - Dst: EVP_CIPHER_CTX_init
      Src: /src/cjose/src/jwe.c:1093,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1100,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/cjose/src/jwe.c:1105,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1107,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jwe.c:1113,1
    - Dst: EVP_EncryptUpdate
      Src: /src/cjose/src/jwe.c:1121,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1124,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:1129,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1131,1
    - Dst: EVP_EncryptUpdate
      Src: /src/cjose/src/jwe.c:1137,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1139,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/cjose/src/jwe.c:1145,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1147,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:1152,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1154,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/cjose/src/jwe.c:1160,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1162,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/cjose/src/jwe.c:1166,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/cjose/src/jwe.c:1172,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 83
    argCount: 4
    argNames:
    - jwe
    - plaintext
    - plaintext_len
    - err
    argTypes:
    - cjose_jwe_t*
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1051
    functionDepth: 3
    functionLinenumber: 1051
    functionLinenumberEnd: 1175
    functionName: _cjose_jwe_encrypt_dat_aes_gcm
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - EVP_CIPHER_CTX_free
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_ctrl
    - json_object_get
    - EVP_EncryptFinal_ex
    - EVP_aes_128_gcm
    - json_string_value
    - strcmp
    - EVP_EncryptInit_ex
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - EVP_aes_256_gcm
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_init
    - cjose_base64url_encode
    - EVP_aes_192_gcm
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_encrypt_dat_aes_gcm(cjose_jwe_t *jwe, const uint8_t
      *plaintext, size_t plaintext_len, cjose_err *err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1183,1
    - Dst: EVP_sha256
      Src: /src/cjose/src/jwe.c:1185,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1187,1
    - Dst: EVP_sha384
      Src: /src/cjose/src/jwe.c:1189,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1191,1
    - Dst: EVP_sha512
      Src: /src/cjose/src/jwe.c:1193,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1198,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1220,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1226,1
    - Dst: memcpy
      Src: /src/cjose/src/jwe.c:1233,1
    - Dst: memcpy
      Src: /src/cjose/src/jwe.c:1235,1
    - Dst: memcpy
      Src: /src/cjose/src/jwe.c:1237,1
    - Dst: memcpy
      Src: /src/cjose/src/jwe.c:1249,1
    - Dst: HMAC
      Src: /src/cjose/src/jwe.c:1252,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1254,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:1265,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 5
    argNames:
    - enc
    - jwe
    - md
    - md_len
    - err
    argTypes:
    - char*
    - cjose_jwe_t*
    - uint8_t*
    - unsigned int*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1178
    functionDepth: 2
    functionLinenumber: 1178
    functionLinenumberEnd: 1268
    functionName: _cjose_jwe_calc_auth_tag
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_sha256
    - strcmp
    - EVP_sha384
    - CJOSE_ERROR
    - _cjose_jwe_malloc
    - HMAC
    - cjose_get_dealloc
    - EVP_sha512
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_calc_auth_tag(const char *enc, cjose_jwe_t *jwe, uint8_t
      *md, unsigned int *md_len, cjose_err *err)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:1274,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1277,1
    - Dst: json_string_value
      Src: /src/cjose/src/jwe.c:1280,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1286,1
    - Dst: EVP_aes_128_cbc
      Src: /src/cjose/src/jwe.c:1287,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1288,1
    - Dst: EVP_aes_192_cbc
      Src: /src/cjose/src/jwe.c:1289,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1290,1
    - Dst: EVP_aes_256_cbc
      Src: /src/cjose/src/jwe.c:1291,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1295,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/cjose/src/jwe.c:1300,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1303,1
    - Dst: EVP_CIPHER_CTX_init
      Src: /src/cjose/src/jwe.c:1306,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1313,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/cjose/src/jwe.c:1318,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1320,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jwe.c:1326,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:1332,1
    - Dst: EVP_CIPHER_block_size
      Src: /src/cjose/src/jwe.c:1333,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1334,1
    - Dst: EVP_EncryptUpdate
      Src: /src/cjose/src/jwe.c:1341,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1343,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/cjose/src/jwe.c:1349,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1351,1
    - Dst: _cjose_jwe_calc_auth_tag
      Src: /src/cjose/src/jwe.c:1359,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:1365,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1367,1
    - Dst: memcpy
      Src: /src/cjose/src/jwe.c:1372,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/cjose/src/jwe.c:1374,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/cjose/src/jwe.c:1381,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 4
    argNames:
    - jwe
    - plaintext
    - plaintext_len
    - err
    argTypes:
    - cjose_jwe_t*
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1271
    functionDepth: 3
    functionLinenumber: 1271
    functionLinenumberEnd: 1384
    functionName: _cjose_jwe_encrypt_dat_aes_cbc
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_CIPHER_block_size
    - EVP_aes_128_cbc
    - strcmp
    - EVP_aes_256_cbc
    - EVP_CIPHER_CTX_init
    - cjose_base64url_encode
    - json_string_value
    - _cjose_jwe_malloc
    - _cjose_jwe_calc_auth_tag
    - EVP_EncryptInit_ex
    - EVP_EncryptFinal_ex
    - CJOSE_ERROR
    - EVP_CIPHER_CTX_new
    - cjose_get_dealloc
    - EVP_CIPHER_CTX_free
    - EVP_aes_192_cbc
    - EVP_EncryptUpdate
    - json_object_get
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_encrypt_dat_aes_cbc(cjose_jwe_t *jwe, const uint8_t
      *plaintext, size_t plaintext_len, cjose_err *err)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:1392,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1395,1
    - Dst: json_string_value
      Src: /src/cjose/src/jwe.c:1398,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1403,1
    - Dst: EVP_aes_128_gcm
      Src: /src/cjose/src/jwe.c:1404,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1405,1
    - Dst: EVP_aes_192_gcm
      Src: /src/cjose/src/jwe.c:1406,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1407,1
    - Dst: EVP_aes_256_gcm
      Src: /src/cjose/src/jwe.c:1408,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1412,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/cjose/src/jwe.c:1417,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1420,1
    - Dst: EVP_CIPHER_CTX_init
      Src: /src/cjose/src/jwe.c:1423,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1427,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/cjose/src/jwe.c:1432,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1434,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1440,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/cjose/src/jwe.c:1445,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1447,1
    - Dst: EVP_DecryptUpdate
      Src: /src/cjose/src/jwe.c:1453,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1456,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwe.c:1461,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1463,1
    - Dst: EVP_DecryptUpdate
      Src: /src/cjose/src/jwe.c:1469,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1471,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/cjose/src/jwe.c:1477,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1479,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/cjose/src/jwe.c:1483,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/cjose/src/jwe.c:1489,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 73
    argCount: 2
    argNames:
    - jwe
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1387
    functionDepth: 2
    functionLinenumber: 1387
    functionLinenumberEnd: 1492
    functionName: _cjose_jwe_decrypt_dat_aes_gcm
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_CTX_ctrl
    - json_object_get
    - EVP_aes_128_gcm
    - json_string_value
    - strcmp
    - EVP_DecryptFinal_ex
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - EVP_DecryptInit_ex
    - EVP_aes_256_gcm
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_init
    - EVP_DecryptUpdate
    - _cjose_cleanse_dealloc
    - EVP_aes_192_gcm
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_decrypt_dat_aes_gcm(cjose_jwe_t *jwe, cjose_err *err)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:1498,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1501,1
    - Dst: json_string_value
      Src: /src/cjose/src/jwe.c:1504,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1508,1
    - Dst: _cjose_jwe_calc_auth_tag
      Src: /src/cjose/src/jwe.c:1515,1
    - Dst: cjose_const_memcmp
      Src: /src/cjose/src/jwe.c:1521,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1523,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1531,1
    - Dst: EVP_aes_128_cbc
      Src: /src/cjose/src/jwe.c:1533,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1535,1
    - Dst: EVP_aes_192_cbc
      Src: /src/cjose/src/jwe.c:1537,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1539,1
    - Dst: EVP_aes_256_cbc
      Src: /src/cjose/src/jwe.c:1541,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1546,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/cjose/src/jwe.c:1551,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1554,1
    - Dst: EVP_CIPHER_CTX_init
      Src: /src/cjose/src/jwe.c:1557,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/cjose/src/jwe.c:1560,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1562,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1569,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwe.c:1574,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1578,1
    - Dst: EVP_DecryptUpdate
      Src: /src/cjose/src/jwe.c:1584,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1586,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/cjose/src/jwe.c:1591,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1593,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/cjose/src/jwe.c:1598,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/cjose/src/jwe.c:1605,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 2
    argNames:
    - jwe
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1495
    functionDepth: 3
    functionLinenumber: 1495
    functionLinenumberEnd: 1608
    functionName: _cjose_jwe_decrypt_dat_aes_cbc
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    - EVP_aes_192_cbc
    - cjose_const_memcmp
    - EVP_aes_128_cbc
    - json_object_get
    - EVP_DecryptFinal_ex
    - json_string_value
    - strcmp
    - EVP_aes_256_cbc
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - EVP_DecryptInit_ex
    - _cjose_cleanse_dealloc
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_init
    - EVP_DecryptUpdate
    - _cjose_jwe_calc_auth_tag
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_decrypt_dat_aes_cbc(cjose_jwe_t *jwe, cjose_err *err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_jwe_get_from_headers
      Src: /src/cjose/src/jwe.c:1618,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1621,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1625,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1625,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1627,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1631,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1631,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1632,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1632,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1635,1
    - Dst: strcmp
      Src: /src/cjose/src/jwe.c:1639,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1641,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 5
    argNames:
    - recipient
    - protected_header
    - shared_header
    - jwk
    - err
    argTypes:
    - _jwe_int_recipient_t*
    - cjose_header_t*
    - cjose_header_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1611
    functionDepth: 2
    functionLinenumber: 1611
    functionLinenumberEnd: 1646
    functionName: _cjose_jwe_validate_decrypt_key
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - CJOSE_ERROR
    - _cjose_jwe_get_from_headers
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool _cjose_jwe_validate_decrypt_key(_jwe_int_recipient_t *recipient,\n
      \                                           cjose_header_t *protected_header,\n
      \                                           cjose_header_t *shared_header,\n
      \                                           const cjose_jwk_t *jwk,\n                                            cjose_err
      *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwe_encrypt_multi_iv
      Src: /src/cjose/src/jwe.c:1660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - jwk
    - protected_header
    - iv
    - iv_len
    - plaintext
    - plaintext_len
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_header_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1661
    functionName: cjose_jwe_encrypt_iv
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 2
    functionsReached:
    - cjose_jwe_encrypt_multi_iv
    linkageType: ''
    returnType: cjose_jwe_t
    signature: "cjose_jwe_t *cjose_jwe_encrypt_iv(const cjose_jwk_t *jwk,\n                                  cjose_header_t
      *protected_header,\n                                  const uint8_t *iv,\n                                  size_t
      iv_len,\n                                  const uint8_t *plaintext,\n                                  size_t
      plaintext_len,\n                                  cjose_err *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwe_encrypt_iv
      Src: /src/cjose/src/jwe.c:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - jwk
    - protected_header
    - plaintext
    - plaintext_len
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_header_t*
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1664
    functionDepth: 2
    functionLinenumber: 1664
    functionLinenumberEnd: 1668
    functionName: cjose_jwe_encrypt
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 9
    functionsReached:
    - cjose_jwe_encrypt_iv
    linkageType: ''
    returnType: cjose_jwe_t
    signature: "cjose_jwe_t *cjose_jwe_encrypt(\n    const cjose_jwk_t *jwk, cjose_header_t
      *protected_header, const uint8_t *plaintext, size_t plaintext_len, cjose_err
      *err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1685,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1690,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1696,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:1698,1
    - Dst: _cjose_jwe_validate_enc
      Src: /src/cjose/src/jwe.c:1702,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:1704,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1714,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:1715,1
    - Dst: json_incref
      Src: /src/cjose/src/jwe.c:1719,1
    - Dst: _cjose_jwe_validate_alg
      Src: /src/cjose/src/jwe.c:1722,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:1724,1
    - Dst: json_deep_copy
      Src: /src/cjose/src/jwe.c:1730,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:1733,1
    - Dst: json_incref
      Src: /src/cjose/src/jwe.c:1736,1
    - Dst: fns::encrypt_ek
      Src: /src/cjose/src/jwe.c:1742,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:1744,1
    - Dst: _cjose_jwe_build_hdr
      Src: /src/cjose/src/jwe.c:1750,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:1752,1
    - Dst: cjose_jwe_t*::fns::set_iv
      Src: /src/cjose/src/jwe.c:1759,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:1761,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:1767,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1769,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:1771,1
    - Dst: memcpy
      Src: /src/cjose/src/jwe.c:1774,1
    - Dst: cjose_jwe_t*::fns::encrypt_dat
      Src: /src/cjose/src/jwe.c:1778,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:1780,1
    - Dst: _cjose_release_cek
      Src: /src/cjose/src/jwe.c:1784,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 9
    argNames:
    - recipients
    - recipient_count
    - protected_header
    - shared_unprotected_header
    - iv
    - iv_len
    - plaintext
    - plaintext_len
    - err
    argTypes:
    - cjose_jwe_recipient_t*
    - size_t
    - cjose_header_t*
    - cjose_header_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1671
    functionDepth: 3
    functionLinenumber: 1671
    functionLinenumberEnd: 1787
    functionName: cjose_jwe_encrypt_multi_iv
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 1
    functionsReached:
    - _cjose_jwe_validate_enc
    - memcpy
    - json_deep_copy
    - _cjose_release_cek
    - _cjose_jwe_build_hdr
    - json_incref
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - cjose_jwe_t*::fns::encrypt_dat
    - cjose_jwe_release
    - _cjose_jwe_validate_alg
    - cjose_get_dealloc
    - fns::encrypt_ek
    - cjose_jwe_t*::fns::set_iv
    linkageType: ''
    returnType: cjose_jwe_t
    signature: "cjose_jwe_t *cjose_jwe_encrypt_multi_iv(const cjose_jwe_recipient_t
      *recipients,\n                                        size_t recipient_count,\n
      \                                       cjose_header_t *protected_header,\n
      \                                       cjose_header_t *shared_unprotected_header,\n
      \                                       const uint8_t *iv,\n                                        size_t
      iv_len,\n                                        const uint8_t *plaintext,\n
      \                                       size_t plaintext_len,\n                                        cjose_err
      *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cjose_jwe_encrypt_multi_iv
      Src: /src/cjose/src/jwe.c:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - recipients
    - recipient_count
    - protected_header
    - shared_unprotected_header
    - plaintext
    - plaintext_len
    - err
    argTypes:
    - cjose_jwe_recipient_t*
    - size_t
    - cjose_header_t*
    - cjose_header_t*
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1790
    functionDepth: 4
    functionLinenumber: 1790
    functionLinenumberEnd: 1800
    functionName: cjose_jwe_encrypt_multi
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 2
    functionsReached:
    - cjose_jwe_encrypt_multi_iv
    linkageType: ''
    returnType: cjose_jwe_t
    signature: "cjose_jwe_t *cjose_jwe_encrypt_multi(const cjose_jwe_recipient_t *recipients,\n
      \                                    size_t recipient_count,\n                                     cjose_header_t
      *protected_header,\n                                     cjose_header_t *shared_unprotected_header,\n
      \                                    const uint8_t *plaintext,\n                                     size_t
      plaintext_len,\n                                     cjose_err *err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_decref
      Src: /src/cjose/src/jwe.c:1810,1
    - Dst: json_decref
      Src: /src/cjose/src/jwe.c:1811,1
    - Dst: _cjose_dealloc_part
      Src: /src/cjose/src/jwe.c:1813,1
    - Dst: _cjose_dealloc_part
      Src: /src/cjose/src/jwe.c:1814,1
    - Dst: _cjose_dealloc_part
      Src: /src/cjose/src/jwe.c:1815,1
    - Dst: _cjose_dealloc_part
      Src: /src/cjose/src/jwe.c:1816,1
    - Dst: json_decref
      Src: /src/cjose/src/jwe.c:1820,1
    - Dst: _cjose_dealloc_part
      Src: /src/cjose/src/jwe.c:1821,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:1824,1
    - Dst: _cjose_release_cek
      Src: /src/cjose/src/jwe.c:1826,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jwe.c:1830,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jwe.c:1831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - jwe
    argTypes:
    - cjose_jwe_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1803
    functionDepth: 3
    functionLinenumber: 1803
    functionLinenumberEnd: 1832
    functionName: cjose_jwe_release
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 20
    functionsReached:
    - _cjose_release_cek
    - json_decref
    - _cjose_cleanse_dealloc
    - _cjose_dealloc_part
    - cjose_get_dealloc
    linkageType: ''
    returnType: void
    signature: void cjose_jwe_release(cjose_jwe_t *jwe)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_empty_json
      Src: /src/cjose/src/jwe.c:1840,1
    - Dst: _cjose_empty_json
      Src: /src/cjose/src/jwe.c:1840,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1842,1
    - Dst: _cjose_convert_to_base64
      Src: /src/cjose/src/jwe.c:1846,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:1856,1
    - Dst: snprintf
      Src: /src/cjose/src/jwe.c:1862,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - jwe
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1835
    functionDepth: 5
    functionLinenumber: 1835
    functionLinenumberEnd: 1866
    functionName: cjose_jwe_export
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 9
    functionsReached:
    - _cjose_convert_to_base64
    - _cjose_empty_json
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *cjose_jwe_export(cjose_jwe_t *jwe, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_stringn
      Src: /src/cjose/src/jwe.c:1871,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1874,1
    - Dst: json_object_set_new
      Src: /src/cjose/src/jwe.c:1877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - obj
    - key
    - part
    - err
    argTypes:
    - json_t*
    - char*
    - struct _cjose_jwe_part_int*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1869
    functionDepth: 1
    functionLinenumber: 1869
    functionLinenumberEnd: 1879
    functionName: _cjose_add_json_part
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - CJOSE_ERROR
    - json_stringn
    - json_object_set_new
    linkageType: ''
    returnType: bool
    signature: bool _cjose_add_json_part(json_t *obj, const char *key, struct _cjose_jwe_part_int
      *part, cjose_err *err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_convert_to_base64
      Src: /src/cjose/src/jwe.c:1885,1
    - Dst: json_object
      Src: /src/cjose/src/jwe.c:1890,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1893,1
    - Dst: _cjose_add_json_part
      Src: /src/cjose/src/jwe.c:1897,1
    - Dst: _cjose_add_json_part
      Src: /src/cjose/src/jwe.c:1897,1
    - Dst: _cjose_add_json_part
      Src: /src/cjose/src/jwe.c:1898,1
    - Dst: _cjose_add_json_part
      Src: /src/cjose/src/jwe.c:1899,1
    - Dst: json_delete
      Src: /src/cjose/src/jwe.c:1901,1
    - Dst: json_object_set
      Src: /src/cjose/src/jwe.c:1905,1
    - Dst: json_object_set
      Src: /src/cjose/src/jwe.c:1909,1
    - Dst: _cjose_add_json_part
      Src: /src/cjose/src/jwe.c:1910,1
    - Dst: json_delete
      Src: /src/cjose/src/jwe.c:1912,1
    - Dst: json_array
      Src: /src/cjose/src/jwe.c:1919,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1922,1
    - Dst: json_delete
      Src: /src/cjose/src/jwe.c:1923,1
    - Dst: json_object_set_new
      Src: /src/cjose/src/jwe.c:1927,1
    - Dst: json_object
      Src: /src/cjose/src/jwe.c:1932,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1935,1
    - Dst: json_delete
      Src: /src/cjose/src/jwe.c:1936,1
    - Dst: json_array_append_new
      Src: /src/cjose/src/jwe.c:1940,1
    - Dst: json_object_set
      Src: /src/cjose/src/jwe.c:1942,1
    - Dst: _cjose_add_json_part
      Src: /src/cjose/src/jwe.c:1943,1
    - Dst: json_delete
      Src: /src/cjose/src/jwe.c:1945,1
    - Dst: json_dumps
      Src: /src/cjose/src/jwe.c:1951,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1954,1
    - Dst: json_delete
      Src: /src/cjose/src/jwe.c:1955,1
    - Dst: json_delete
      Src: /src/cjose/src/jwe.c:1959,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - jwe
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1882
    functionDepth: 5
    functionLinenumber: 1882
    functionLinenumberEnd: 1961
    functionName: cjose_jwe_export_json
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 2
    functionsReached:
    - json_delete
    - _cjose_convert_to_base64
    - json_dumps
    - _cjose_add_json_part
    - json_array
    - CJOSE_ERROR
    - json_array_append_new
    - json_object
    - json_object_set
    - json_object_set_new
    linkageType: ''
    returnType: char
    signature: char *cjose_jwe_export_json(cjose_jwe_t *jwe, cjose_err *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1970,1
    - Dst: _cjose_strndup
      Src: /src/cjose/src/jwe.c:1975,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/src/jwe.c:1979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - part
    - empty_ok
    - b64u
    - b64u_len
    - err
    argTypes:
    - struct _cjose_jwe_part_int*
    - bool
    - char*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1964
    functionDepth: 3
    functionLinenumber: 1964
    functionLinenumberEnd: 1985
    functionName: _cjose_jwe_import_part
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - CJOSE_ERROR
    - cjose_base64url_decode
    - _cjose_strndup
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_import_part(struct _cjose_jwe_part_int *part, bool
      empty_ok, const char *b64u, size_t b64u_len, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_string
      Src: /src/cjose/src/jwe.c:1990,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:1992,1
    - Dst: json_string_value
      Src: /src/cjose/src/jwe.c:1996,1
    - Dst: _cjose_jwe_import_part
      Src: /src/cjose/src/jwe.c:1999,1
    - Dst: strlen
      Src: /src/cjose/src/jwe.c:1999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - part
    - empty_ok
    - json
    - err
    argTypes:
    - struct _cjose_jwe_part_int*
    - bool
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1987
    functionDepth: 4
    functionLinenumber: 1987
    functionLinenumberEnd: 2000
    functionName: _cjose_jwe_import_json_part
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - _cjose_jwe_import_part
    - strlen
    - json_is_string
    - json_string_value
    - CJOSE_ERROR
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jwe_import_json_part(struct _cjose_jwe_part_int *part,
      bool empty_ok, json_t *json, cjose_err *err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2009,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:2014,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:2020,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:2022,1
    - Dst: _cjose_jwe_import_part
      Src: /src/cjose/src/jwe.c:2038,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:2040,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2053,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:2054,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2061,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:2062,1
    - Dst: _cjose_parse_json_object
      Src: /src/cjose/src/jwe.c:2067,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:2070,1
    - Dst: _cjose_jwe_validate_alg
      Src: /src/cjose/src/jwe.c:2075,1
    - Dst: _cjose_jwe_validate_enc
      Src: /src/cjose/src/jwe.c:2076,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2078,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:2079,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - cser
    - cser_len
    - err
    argTypes:
    - char*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2003
    functionDepth: 4
    functionLinenumber: 2003
    functionLinenumberEnd: 2084
    functionName: cjose_jwe_import
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 15
    functionsReached:
    - _cjose_jwe_validate_enc
    - _cjose_jwe_import_part
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - cjose_jwe_release
    - _cjose_jwe_validate_alg
    - _cjose_parse_json_object
    linkageType: ''
    returnType: cjose_jwe_t
    signature: cjose_jwe_t *cjose_jwe_import(const char *cser, size_t cser_len, cjose_err
      *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/cjose/src/jwe.c:2094,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2096,1
    - Dst: _cjose_jwe_import_json_part
      Src: /src/cjose/src/jwe.c:2100,1
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:2100,1
    - Dst: json_incref
      Src: /src/cjose/src/jwe.c:2105,1
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:2105,1
    - Dst: json_is_object
      Src: /src/cjose/src/jwe.c:2108,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2110,1
    - Dst: _cjose_jwe_validate_alg
      Src: /src/cjose/src/jwe.c:2114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - jwe
    - protected_header
    - is_multiple
    - recipient
    - obj
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_header_t*
    - bool
    - _jwe_int_recipient_t*
    - json_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2086
    functionDepth: 5
    functionLinenumber: 2086
    functionLinenumberEnd: 2115
    functionName: _cjose_read_json_recipient
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 0
    functionsReached:
    - _cjose_jwe_import_json_part
    - json_object_get
    - json_is_object
    - json_incref
    - CJOSE_ERROR
    - _cjose_jwe_validate_alg
    linkageType: ''
    returnType: bool
    signature: "bool _cjose_read_json_recipient(cjose_jwe_t *jwe,\n                                              cjose_header_t
      *protected_header,\n                                              bool is_multiple,\n
      \                                             _jwe_int_recipient_t *recipient,\n
      \                                             json_t *obj,\n                                              cjose_err
      *err)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2126,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:2131,1
    - Dst: _cjose_parse_json_object
      Src: /src/cjose/src/jwe.c:2136,1
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:2142,1
    - Dst: json_is_array
      Src: /src/cjose/src/jwe.c:2145,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2147,1
    - Dst: json_array_size
      Src: /src/cjose/src/jwe.c:2150,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2154,1
    - Dst: _cjose_jwe_malloc
      Src: /src/cjose/src/jwe.c:2163,1
    - Dst: _cjose_jwe_import_json_part
      Src: /src/cjose/src/jwe.c:2168,1
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:2168,1
    - Dst: _cjose_parse_json_object
      Src: /src/cjose/src/jwe.c:2173,1
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:2182,1
    - Dst: json_is_object
      Src: /src/cjose/src/jwe.c:2185,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2187,1
    - Dst: json_incref
      Src: /src/cjose/src/jwe.c:2190,1
    - Dst: _cjose_read_json_recipient
      Src: /src/cjose/src/jwe.c:2196,1
    - Dst: _cjose_read_json_recipient
      Src: /src/cjose/src/jwe.c:2207,1
    - Dst: json_array_get
      Src: /src/cjose/src/jwe.c:2207,1
    - Dst: _cjose_jwe_validate_enc
      Src: /src/cjose/src/jwe.c:2215,1
    - Dst: _cjose_jwe_import_json_part
      Src: /src/cjose/src/jwe.c:2220,1
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:2220,1
    - Dst: _cjose_jwe_import_json_part
      Src: /src/cjose/src/jwe.c:2221,1
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:2221,1
    - Dst: _cjose_jwe_import_json_part
      Src: /src/cjose/src/jwe.c:2222,1
    - Dst: json_object_get
      Src: /src/cjose/src/jwe.c:2222,1
    - Dst: json_incref
      Src: /src/cjose/src/jwe.c:2228,1
    - Dst: json_decref
      Src: /src/cjose/src/jwe.c:2230,1
    - Dst: json_decref
      Src: /src/cjose/src/jwe.c:2231,1
    - Dst: json_decref
      Src: /src/cjose/src/jwe.c:2236,1
    - Dst: json_decref
      Src: /src/cjose/src/jwe.c:2237,1
    - Dst: cjose_jwe_release
      Src: /src/cjose/src/jwe.c:2238,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 80
    argCount: 3
    argNames:
    - cser
    - cser_len
    - err
    argTypes:
    - char*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2118
    functionDepth: 6
    functionLinenumber: 2118
    functionLinenumberEnd: 2240
    functionName: cjose_jwe_import_json
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 2
    functionsReached:
    - _cjose_jwe_import_json_part
    - _cjose_jwe_validate_enc
    - json_object_get
    - json_is_object
    - _cjose_read_json_recipient
    - json_incref
    - _cjose_jwe_malloc
    - CJOSE_ERROR
    - json_array_get
    - json_decref
    - json_array_size
    - cjose_jwe_release
    - _cjose_parse_json_object
    - json_is_array
    linkageType: ''
    returnType: cjose_jwe_t
    signature: cjose_jwe_t *cjose_jwe_import_json(const char *cser, size_t cser_len,
      cjose_err *err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2251,1
    - Dst: key_locator
      Src: /src/cjose/src/jwe.c:2258,1
    - Dst: _cjose_jwe_validate_decrypt_key
      Src: /src/cjose/src/jwe.c:2264,1
    - Dst: fns::decrypt_ek
      Src: /src/cjose/src/jwe.c:2270,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jwe.c:2279,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2282,1
    - Dst: memcpy
      Src: /src/cjose/src/jwe.c:2285,1
    - Dst: cjose_const_memcmp
      Src: /src/cjose/src/jwe.c:2290,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2292,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2300,1
    - Dst: cjose_jwe_t*::fns::decrypt_dat
      Src: /src/cjose/src/jwe.c:2305,1
    - Dst: _cjose_release_cek
      Src: /src/cjose/src/jwe.c:2319,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 5
    argNames:
    - jwe
    - key_locator
    - data
    - content_len
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_key_locator
    - void*
    - size_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2242
    functionDepth: 3
    functionLinenumber: 2242
    functionLinenumberEnd: 2322
    functionName: cjose_jwe_decrypt_multi
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 2
    functionsReached:
    - memcpy
    - key_locator
    - cjose_const_memcmp
    - cjose_get_alloc
    - _cjose_release_cek
    - _cjose_jwe_validate_decrypt_key
    - CJOSE_ERROR
    - cjose_jwe_t*::fns::decrypt_dat
    - fns::decrypt_ek
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *cjose_jwe_decrypt_multi(cjose_jwe_t *jwe, cjose_key_locator
      key_locator, void *data, size_t *content_len, cjose_err *err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jwe.c:2329,1
    - Dst: _cjose_jwe_validate_decrypt_key
      Src: /src/cjose/src/jwe.c:2333,1
    - Dst: fns::decrypt_ek
      Src: /src/cjose/src/jwe.c:2339,1
    - Dst: cjose_jwe_t*::fns::decrypt_dat
      Src: /src/cjose/src/jwe.c:2345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - jwe
    - jwk
    - content_len
    - err
    argTypes:
    - cjose_jwe_t*
    - cjose_jwk_t*
    - size_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2325
    functionDepth: 3
    functionLinenumber: 2325
    functionLinenumberEnd: 2357
    functionName: cjose_jwe_decrypt
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 15
    functionsReached:
    - _cjose_jwe_validate_decrypt_key
    - CJOSE_ERROR
    - cjose_jwe_t*::fns::decrypt_dat
    - fns::decrypt_ek
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *cjose_jwe_decrypt(cjose_jwe_t *jwe, const cjose_jwk_t *jwk,
      size_t *content_len, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - jwe
    argTypes:
    - cjose_jwe_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2360
    functionDepth: 0
    functionLinenumber: 2360
    functionLinenumberEnd: 2367
    functionName: cjose_jwe_get_protected
    functionSourceFile: /src/cjose/src/jwe.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: cjose_header_t
    signature: cjose_header_t *cjose_jwe_get_protected(cjose_jwe_t *jwe)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/header.c:63,1
    - Dst: json_is_array
      Src: /src/cjose/src/header.c:69,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:71,1
    - Dst: json_array_size
      Src: /src/cjose/src/header.c:76,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:78,1
    - Dst: json_is_string
      Src: /src/cjose/src/header.c:86,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:88,1
    - Dst: json_string_value
      Src: /src/cjose/src/header.c:92,1
    - Dst: strcmp
      Src: /src/cjose/src/header.c:96,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:105,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - header
    - supported
    - supported_len
    - err
    argTypes:
    - cjose_header_t*
    - char**
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 111
    functionName: _cjose_header_validate_crit
    functionSourceFile: /src/cjose/src/header.c
    functionUses: 1
    functionsReached:
    - json_is_string
    - json_object_get
    - json_string_value
    - strcmp
    - CJOSE_ERROR
    - json_array_size
    - json_is_array
    linkageType: ''
    returnType: bool
    signature: bool _cjose_header_validate_crit(cjose_header_t *header, const char
      *const *supported, size_t supported_len, cjose_err *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_is_string
      Src: /src/cjose/src/header.c:86,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:88,1
    - Dst: json_string_value
      Src: /src/cjose/src/header.c:92,1
    - Dst: strcmp
      Src: /src/cjose/src/header.c:96,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: json_array_foreach
    functionSourceFile: /src/cjose/src/header.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CJOSE_ERROR
    - json_string_value
    - json_is_string
    linkageType: ''
    returnType: void
    signature: void json_array_foreach(crit, index, entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/cjose/src/header.c:116,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: cjose_header_new
    functionSourceFile: /src/cjose/src/header.c
    functionUses: 25
    functionsReached:
    - CJOSE_ERROR
    - json_object
    linkageType: ''
    returnType: cjose_header_t
    signature: cjose_header_t *cjose_header_new(cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_incref
      Src: /src/cjose/src/header.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - header
    argTypes:
    - cjose_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: cjose_header_retain
    functionSourceFile: /src/cjose/src/header.c
    functionUses: 1
    functionsReached:
    - json_incref
    linkageType: ''
    returnType: cjose_header_t
    signature: cjose_header_t *cjose_header_retain(cjose_header_t *header)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_decref
      Src: /src/cjose/src/header.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - header
    argTypes:
    - cjose_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: cjose_header_release
    functionSourceFile: /src/cjose/src/header.c
    functionUses: 26
    functionsReached:
    - json_decref
    linkageType: ''
    returnType: void
    signature: void cjose_header_release(cjose_header_t *header)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:148,1
    - Dst: json_string
      Src: /src/cjose/src/header.c:152,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:155,1
    - Dst: json_object_set_new
      Src: /src/cjose/src/header.c:161,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - header
    - attr
    - value
    - err
    argTypes:
    - cjose_header_t*
    - char*
    - char*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 168
    functionName: cjose_header_set
    functionSourceFile: /src/cjose/src/header.c
    functionUses: 19
    functionsReached:
    - CJOSE_ERROR
    - json_string
    - json_object_set_new
    linkageType: ''
    returnType: bool
    signature: bool cjose_header_set(cjose_header_t *header, const char *attr, const
      char *value, cjose_err *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:175,1
    - Dst: json_object_get
      Src: /src/cjose/src/header.c:179,1
    - Dst: json_string_value
      Src: /src/cjose/src/header.c:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - header
    - attr
    - err
    argTypes:
    - cjose_header_t*
    - char*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: cjose_header_get
    functionSourceFile: /src/cjose/src/header.c
    functionUses: 8
    functionsReached:
    - json_object_get
    - CJOSE_ERROR
    - json_string_value
    linkageType: ''
    returnType: char
    signature: char *cjose_header_get(cjose_header_t *header, const char *attr, cjose_err
      *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:193,1
    - Dst: json_loads
      Src: /src/cjose/src/header.c:201,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:206,1
    - Dst: json_object_set_new
      Src: /src/cjose/src/header.c:212,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - header
    - attr
    - value
    - err
    argTypes:
    - cjose_header_t*
    - char*
    - char*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 219
    functionName: cjose_header_set_raw
    functionSourceFile: /src/cjose/src/header.c
    functionUses: 2
    functionsReached:
    - CJOSE_ERROR
    - json_loads
    - json_object_set_new
    linkageType: ''
    returnType: bool
    signature: bool cjose_header_set_raw(cjose_header_t *header, const char *attr,
      const char *value, cjose_err *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/header.c:226,1
    - Dst: json_object_get
      Src: /src/cjose/src/header.c:230,1
    - Dst: json_dumps
      Src: /src/cjose/src/header.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - header
    - attr
    - err
    argTypes:
    - cjose_header_t*
    - char*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 239
    functionName: cjose_header_get_raw
    functionSourceFile: /src/cjose/src/header.c
    functionUses: 2
    functionsReached:
    - json_object_get
    - json_dumps
    - CJOSE_ERROR
    linkageType: ''
    returnType: char
    signature: char *cjose_header_get_raw(cjose_header_t *header, const char *attr,
      cjose_err *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/cjose/src/concatkdf.c:24,1
    - Dst: memcpy
      Src: /src/cjose/src/concatkdf.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - buffer
    argTypes:
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: _apply_uint32
    functionSourceFile: /src/cjose/src/concatkdf.c
    functionUses: 0
    functionsReached:
    - htonl
    - memcpy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *_apply_uint32(const uint32_t value, uint8_t *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _apply_uint32
      Src: /src/cjose/src/concatkdf.c:34,1
    - Dst: memcpy
      Src: /src/cjose/src/concatkdf.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - data
    - len
    - buffer
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: _apply_lendata
    functionSourceFile: /src/cjose/src/concatkdf.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _apply_uint32
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *_apply_lendata(const uint8_t *data, const size_t len, uint8_t
      *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: min_len
    functionSourceFile: /src/cjose/src/concatkdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t min_len(size_t a, size_t b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cjose/src/concatkdf.c:58,1
    - Dst: cjose_header_get
      Src: /src/cjose/src/concatkdf.c:60,1
    - Dst: cjose_header_get
      Src: /src/cjose/src/concatkdf.c:61,1
    - Dst: strlen
      Src: /src/cjose/src/concatkdf.c:67,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/src/concatkdf.c:68,1
    - Dst: strlen
      Src: /src/cjose/src/concatkdf.c:72,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/src/concatkdf.c:73,1
    - Dst: strlen
      Src: /src/cjose/src/concatkdf.c:78,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/concatkdf.c:80,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/concatkdf.c:83,1
    - Dst: _apply_lendata
      Src: /src/cjose/src/concatkdf.c:87,1
    - Dst: _apply_lendata
      Src: /src/cjose/src/concatkdf.c:88,1
    - Dst: _apply_lendata
      Src: /src/cjose/src/concatkdf.c:89,1
    - Dst: _apply_uint32
      Src: /src/cjose/src/concatkdf.c:91,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/concatkdf.c:98,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/concatkdf.c:99,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 6
    argNames:
    - alg
    - keylen
    - hdr
    - otherinfo
    - otherinfoLen
    - err
    argTypes:
    - char*
    - size_t
    - cjose_header_t*
    - uint8_t**
    - size_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 102
    functionName: cjose_concatkdf_create_otherinfo
    functionSourceFile: /src/cjose/src/concatkdf.c
    functionUses: 7
    functionsReached:
    - strlen
    - cjose_get_alloc
    - cjose_base64url_decode
    - CJOSE_ERROR
    - _apply_uint32
    - memset
    - cjose_get_dealloc
    - _apply_lendata
    - cjose_header_get
    linkageType: ''
    returnType: bool
    signature: "bool cjose_concatkdf_create_otherinfo(\n    const char *alg, const
      size_t keylen, cjose_header_t *hdr, uint8_t **otherinfo, size_t *otherinfoLen,
      cjose_err *err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/cjose/src/concatkdf.c:115,1
    - Dst: EVP_MD_CTX_create
      Src: /src/cjose/src/concatkdf.c:116,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/concatkdf.c:119,1
    - Dst: EVP_MD_size
      Src: /src/cjose/src/concatkdf.c:123,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/concatkdf.c:125,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/concatkdf.c:128,1
    - Dst: _apply_uint32
      Src: /src/cjose/src/concatkdf.c:136,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/concatkdf.c:138,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/concatkdf.c:141,1
    - Dst: EVP_DigestInit_ex
      Src: /src/cjose/src/concatkdf.c:145,1
    - Dst: EVP_DigestUpdate
      Src: /src/cjose/src/concatkdf.c:145,1
    - Dst: EVP_DigestUpdate
      Src: /src/cjose/src/concatkdf.c:146,1
    - Dst: EVP_DigestUpdate
      Src: /src/cjose/src/concatkdf.c:146,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/cjose/src/concatkdf.c:147,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/concatkdf.c:149,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/concatkdf.c:150,1
    - Dst: memcpy
      Src: /src/cjose/src/concatkdf.c:159,1
    - Dst: min_len
      Src: /src/cjose/src/concatkdf.c:159,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/concatkdf.c:160,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/cjose/src/concatkdf.c:168,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/concatkdf.c:169,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 6
    argNames:
    - keylen
    - ikm
    - ikmLen
    - otherinfo
    - otherinfoLen
    - err
    argTypes:
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 172
    functionName: cjose_concatkdf_derive
    functionSourceFile: /src/cjose/src/concatkdf.c
    functionUses: 5
    functionsReached:
    - memcpy
    - EVP_DigestInit_ex
    - EVP_DigestFinal_ex
    - cjose_get_alloc
    - EVP_sha256
    - EVP_MD_CTX_destroy
    - CJOSE_ERROR
    - EVP_MD_CTX_create
    - _apply_uint32
    - EVP_DigestUpdate
    - _cjose_cleanse_dealloc
    - EVP_MD_size
    - min_len
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *cjose_concatkdf_derive(const size_t keylen,\n                                const
      uint8_t *ikm,\n                                const size_t ikmLen,\n                                const
      uint8_t *otherinfo,\n                                const size_t otherinfoLen,\n
      \                               cjose_err *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_incref
      Src: /src/cjose/src/jws.c:56,1
    - Dst: json_dumps
      Src: /src/cjose/src/jws.c:59,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:62,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jws.c:65,1
    - Dst: strlen
      Src: /src/cjose/src/jws.c:65,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:67,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - jws
    - header
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_header_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 73
    functionName: _cjose_jws_build_hdr
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - strlen
    - json_dumps
    - json_incref
    - CJOSE_ERROR
    - cjose_base64url_encode
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_build_hdr(cjose_jws_t *jws, cjose_header_t *header,
      cjose_err *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _cjose_header_validate_crit
      Src: /src/cjose/src/jws.c:80,1
    - Dst: json_object_get
      Src: /src/cjose/src/jws.c:87,1
    - Dst: json_is_string
      Src: /src/cjose/src/jws.c:88,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:90,1
    - Dst: json_string_value
      Src: /src/cjose/src/jws.c:93,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:95,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:95,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:96,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:102,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:102,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:103,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:109,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:109,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:110,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:116,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:116,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:117,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:125,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 2
    argNames:
    - jws
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 130
    functionName: _cjose_jws_validate_hdr
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - json_is_string
    - json_object_get
    - json_string_value
    - strcmp
    - CJOSE_ERROR
    - _cjose_header_validate_crit
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_validate_hdr(cjose_jws_t *jws, cjose_err *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:137,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:140,1
    - Dst: memcpy
      Src: /src/cjose/src/jws.c:143,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jws.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - jws
    - plaintext
    - plaintext_len
    - err
    argTypes:
    - cjose_jws_t*
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 152
    functionName: _cjose_jws_build_dat
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CJOSE_ERROR
    - cjose_base64url_encode
    - cjose_get_alloc
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_build_dat(cjose_jws_t *jws, const uint8_t *plaintext,
      size_t plaintext_len, cjose_err *err)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jws.c:161,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:164,1
    - Dst: json_string_value
      Src: /src/cjose/src/jws.c:167,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:171,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:171,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:172,1
    - Dst: EVP_sha256
      Src: /src/cjose/src/jws.c:173,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:174,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:174,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:175,1
    - Dst: EVP_sha384
      Src: /src/cjose/src/jws.c:176,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:177,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:177,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:178,1
    - Dst: EVP_sha512
      Src: /src/cjose/src/jws.c:179,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:183,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jws.c:189,1
    - Dst: EVP_MD_size
      Src: /src/cjose/src/jws.c:194,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:195,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:198,1
    - Dst: EVP_MD_CTX_create
      Src: /src/cjose/src/jws.c:203,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:206,1
    - Dst: EVP_MD_CTX_init
      Src: /src/cjose/src/jws.c:209,1
    - Dst: EVP_DigestInit_ex
      Src: /src/cjose/src/jws.c:212,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:214,1
    - Dst: EVP_DigestUpdate
      Src: /src/cjose/src/jws.c:217,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:219,1
    - Dst: EVP_DigestUpdate
      Src: /src/cjose/src/jws.c:222,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:224,1
    - Dst: EVP_DigestUpdate
      Src: /src/cjose/src/jws.c:227,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:229,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/cjose/src/jws.c:232,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:234,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/cjose/src/jws.c:244,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 66
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 248
    functionName: _cjose_jws_build_dig_sha
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - EVP_DigestInit_ex
    - EVP_DigestFinal_ex
    - cjose_get_alloc
    - json_object_get
    - EVP_sha256
    - EVP_MD_CTX_destroy
    - json_string_value
    - strcmp
    - EVP_sha384
    - CJOSE_ERROR
    - _cjose_cleanse_dealloc
    - EVP_MD_CTX_create
    - EVP_MD_CTX_init
    - EVP_DigestUpdate
    - EVP_MD_size
    - EVP_sha512
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_build_dig_sha(cjose_jws_t *jws, const cjose_jwk_t *jwk,
      cjose_err *err)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jws.c:257,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:260,1
    - Dst: json_string_value
      Src: /src/cjose/src/jws.c:263,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:267,1
    - Dst: EVP_sha256
      Src: /src/cjose/src/jws.c:268,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:269,1
    - Dst: EVP_sha384
      Src: /src/cjose/src/jws.c:270,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:271,1
    - Dst: EVP_sha512
      Src: /src/cjose/src/jws.c:272,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:276,1
    - Dst: EVP_MD_size
      Src: /src/cjose/src/jws.c:281,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:283,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jws.c:289,1
    - Dst: EVP_MD_size
      Src: /src/cjose/src/jws.c:294,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:295,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:298,1
    - Dst: HMAC_CTX_new
      Src: /src/cjose/src/jws.c:304,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:306,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:310,1
    - Dst: HMAC_CTX_init
      Src: /src/cjose/src/jws.c:315,1
    - Dst: HMAC_Init_ex
      Src: /src/cjose/src/jws.c:319,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:321,1
    - Dst: HMAC_Update
      Src: /src/cjose/src/jws.c:324,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:326,1
    - Dst: HMAC_Update
      Src: /src/cjose/src/jws.c:329,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:331,1
    - Dst: HMAC_Update
      Src: /src/cjose/src/jws.c:334,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:336,1
    - Dst: HMAC_Final
      Src: /src/cjose/src/jws.c:339,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:341,1
    - Dst: HMAC_CTX_free
      Src: /src/cjose/src/jws.c:352,1
    - Dst: HMAC_CTX_cleanup
      Src: /src/cjose/src/jws.c:354,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:355,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 360
    functionName: _cjose_jws_build_dig_hmac_sha
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - cjose_get_alloc
    - json_object_get
    - EVP_sha256
    - HMAC_Init_ex
    - json_string_value
    - strcmp
    - HMAC_Final
    - HMAC_CTX_free
    - EVP_sha384
    - CJOSE_ERROR
    - _cjose_cleanse_dealloc
    - HMAC_CTX_new
    - HMAC_Update
    - EVP_MD_size
    - EVP_sha512
    - HMAC_CTX_init
    - HMAC_CTX_cleanup
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_build_dig_hmac_sha(cjose_jws_t *jws, const cjose_jwk_t
      *jwk, cjose_err *err)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:372,1
    - Dst: _cjose_jwk_rsa_get
      Src: /src/cjose/src/jws.c:377,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:380,1
    - Dst: json_object_get
      Src: /src/cjose/src/jws.c:385,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:388,1
    - Dst: json_string_value
      Src: /src/cjose/src/jws.c:391,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:395,1
    - Dst: EVP_sha256
      Src: /src/cjose/src/jws.c:396,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:397,1
    - Dst: EVP_sha384
      Src: /src/cjose/src/jws.c:398,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:399,1
    - Dst: EVP_sha512
      Src: /src/cjose/src/jws.c:400,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:404,1
    - Dst: RSA_size
      Src: /src/cjose/src/jws.c:410,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:411,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:414,1
    - Dst: RSA_padding_add_PKCS1_PSS
      Src: /src/cjose/src/jws.c:417,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:419,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:425,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:428,1
    - Dst: RSA_private_encrypt
      Src: /src/cjose/src/jws.c:432,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:434,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jws.c:439,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:448,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 451
    functionName: _cjose_jws_build_sig_ps
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - cjose_get_alloc
    - json_object_get
    - EVP_sha256
    - RSA_padding_add_PKCS1_PSS
    - json_string_value
    - strcmp
    - RSA_private_encrypt
    - EVP_sha384
    - CJOSE_ERROR
    - RSA_size
    - cjose_base64url_encode
    - EVP_sha512
    - _cjose_jwk_rsa_get
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_build_sig_ps(cjose_jws_t *jws, const cjose_jwk_t *jwk,
      cjose_err *err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:459,1
    - Dst: _cjose_jwk_rsa_get
      Src: /src/cjose/src/jws.c:464,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:467,1
    - Dst: RSA_size
      Src: /src/cjose/src/jws.c:472,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:473,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:476,1
    - Dst: json_object_get
      Src: /src/cjose/src/jws.c:481,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:484,1
    - Dst: json_string_value
      Src: /src/cjose/src/jws.c:487,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:491,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:493,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:495,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:499,1
    - Dst: RSA_sign
      Src: /src/cjose/src/jws.c:504,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:506,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jws.c:512,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:514,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 519
    functionName: _cjose_jws_build_sig_rs
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - cjose_get_alloc
    - json_object_get
    - json_string_value
    - strcmp
    - CJOSE_ERROR
    - RSA_size
    - cjose_base64url_encode
    - RSA_sign
    - _cjose_jwk_rsa_get
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_build_sig_rs(cjose_jws_t *jws, const cjose_jwk_t *jwk,
      cjose_err *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:526,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:532,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:535,1
    - Dst: memcpy
      Src: /src/cjose/src/jws.c:539,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jws.c:542,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 549
    functionName: _cjose_jws_build_sig_hmac_sha
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CJOSE_ERROR
    - cjose_base64url_encode
    - cjose_get_alloc
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_build_sig_hmac_sha(cjose_jws_t *jws, const cjose_jwk_t
      *jwk, cjose_err *err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:559,1
    - Dst: ECDSA_do_sign
      Src: /src/cjose/src/jws.c:566,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:569,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:590,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:593,1
    - Dst: memset
      Src: /src/cjose/src/jws.c:597,1
    - Dst: ECDSA_SIG_get0
      Src: /src/cjose/src/jws.c:601,1
    - Dst: BN_num_bytes
      Src: /src/cjose/src/jws.c:607,1
    - Dst: BN_num_bytes
      Src: /src/cjose/src/jws.c:608,1
    - Dst: BN_bn2bin
      Src: /src/cjose/src/jws.c:609,1
    - Dst: BN_bn2bin
      Src: /src/cjose/src/jws.c:610,1
    - Dst: cjose_base64url_encode
      Src: /src/cjose/src/jws.c:613,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:615,1
    - Dst: ECDSA_SIG_free
      Src: /src/cjose/src/jws.c:623,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 626
    functionName: _cjose_jws_build_sig_ec
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - ECDSA_SIG_get0
    - BN_bn2bin
    - BN_num_bytes
    - cjose_get_alloc
    - CJOSE_ERROR
    - ECDSA_do_sign
    - memset
    - cjose_base64url_encode
    - ECDSA_SIG_free
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_build_sig_ec(cjose_jws_t *jws, const cjose_jwk_t *jwk,
      cjose_err *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:634,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:643,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:648,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:651,1
    - Dst: snprintf
      Src: /src/cjose/src/jws.c:656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - jws
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 659
    functionName: _cjose_jws_build_cser
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - snprintf
    - CJOSE_ERROR
    - cjose_get_alloc
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_build_cser(cjose_jws_t *jws, cjose_err *err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:669,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:674,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:677,1
    - Dst: memset
      Src: /src/cjose/src/jws.c:680,1
    - Dst: _cjose_jws_build_hdr
      Src: /src/cjose/src/jws.c:683,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:685,1
    - Dst: _cjose_jws_validate_hdr
      Src: /src/cjose/src/jws.c:690,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:692,1
    - Dst: _cjose_jws_build_dat
      Src: /src/cjose/src/jws.c:697,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:699,1
    - Dst: cjose_jws_t*::fns::digest
      Src: /src/cjose/src/jws.c:704,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:706,1
    - Dst: cjose_jws_t*::fns::sign
      Src: /src/cjose/src/jws.c:711,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:713,1
    - Dst: _cjose_jws_build_cser
      Src: /src/cjose/src/jws.c:718,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:720,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 5
    argNames:
    - jwk
    - protected_header
    - plaintext
    - plaintext_len
    - err
    argTypes:
    - cjose_jwk_t*
    - cjose_header_t*
    - uint8_t*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 725
    functionName: cjose_jws_sign
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 7
    functionsReached:
    - cjose_jws_t*::fns::sign
    - cjose_jws_release
    - cjose_jws_t*::fns::digest
    - _cjose_jws_build_hdr
    - cjose_get_alloc
    - _cjose_jws_build_cser
    - CJOSE_ERROR
    - _cjose_jws_build_dat
    - memset
    - _cjose_jws_validate_hdr
    linkageType: ''
    returnType: cjose_jws_t
    signature: "cjose_jws_t *cjose_jws_sign(\n    const cjose_jwk_t *jwk, cjose_header_t
      *protected_header, const uint8_t *plaintext, size_t plaintext_len, cjose_err
      *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_decref
      Src: /src/cjose/src/jws.c:737,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:740,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:741,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:742,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jws.c:743,1
    - Dst: _cjose_cleanse_dealloc
      Src: /src/cjose/src/jws.c:744,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:745,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:746,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - jws
    argTypes:
    - cjose_jws_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 728
    functionDepth: 2
    functionLinenumber: 728
    functionLinenumberEnd: 748
    functionName: cjose_jws_release
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 16
    functionsReached:
    - cjose_get_dealloc
    - json_decref
    - _cjose_cleanse_dealloc
    linkageType: ''
    returnType: void
    signature: void cjose_jws_release(cjose_jws_t *jws)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:755,1
    - Dst: _cjose_jws_build_cser
      Src: /src/cjose/src/jws.c:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - jws
    - compact
    - err
    argTypes:
    - cjose_jws_t*
    - char**
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 769
    functionName: cjose_jws_export
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 4
    functionsReached:
    - CJOSE_ERROR
    - _cjose_jws_build_cser
    linkageType: ''
    returnType: bool
    signature: bool cjose_jws_export(cjose_jws_t *jws, const char **compact, cjose_err
      *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:774,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:777,1
    - Dst: strncpy
      Src: /src/cjose/src/jws.c:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - dst
    - src
    - len
    - err
    argTypes:
    - char**
    - char*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 785
    functionName: _cjose_jws_strcpy
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - strncpy
    - CJOSE_ERROR
    - cjose_get_alloc
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_strcpy(char **dst, const char *src, size_t len, cjose_err
      *err)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:795,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:800,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:803,1
    - Dst: memset
      Src: /src/cjose/src/jws.c:806,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:823,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:824,1
    - Dst: _cjose_jws_strcpy
      Src: /src/cjose/src/jws.c:831,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:833,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/src/jws.c:836,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:838,1
    - Dst: json_loadb
      Src: /src/cjose/src/jws.c:843,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:844,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:847,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:848,1
    - Dst: _cjose_jws_validate_hdr
      Src: /src/cjose/src/jws.c:853,1
    - Dst: json_object_get
      Src: /src/cjose/src/jws.c:856,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:859,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:860,1
    - Dst: json_string_value
      Src: /src/cjose/src/jws.c:863,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:864,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:866,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:867,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:873,1
    - Dst: _cjose_jws_strcpy
      Src: /src/cjose/src/jws.c:878,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:880,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/src/jws.c:883,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:885,1
    - Dst: _cjose_jws_strcpy
      Src: /src/cjose/src/jws.c:891,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:893,1
    - Dst: cjose_base64url_decode
      Src: /src/cjose/src/jws.c:896,1
    - Dst: cjose_jws_release
      Src: /src/cjose/src/jws.c:898,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 69
    argCount: 3
    argNames:
    - cser
    - cser_len
    - err
    argTypes:
    - char*
    - size_t
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 903
    functionName: cjose_jws_import
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 14
    functionsReached:
    - cjose_get_dealloc
    - cjose_jws_release
    - cjose_get_alloc
    - json_object_get
    - cjose_base64url_decode
    - json_string_value
    - strcmp
    - json_loadb
    - CJOSE_ERROR
    - memset
    - _cjose_jws_strcpy
    - _cjose_jws_validate_hdr
    linkageType: ''
    returnType: cjose_jws_t
    signature: cjose_jws_t *cjose_jws_import(const char *cser, size_t cser_len, cjose_err
      *err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:915,1
    - Dst: json_object_get
      Src: /src/cjose/src/jws.c:920,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:923,1
    - Dst: json_string_value
      Src: /src/cjose/src/jws.c:926,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:930,1
    - Dst: EVP_sha256
      Src: /src/cjose/src/jws.c:931,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:932,1
    - Dst: EVP_sha384
      Src: /src/cjose/src/jws.c:933,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:934,1
    - Dst: EVP_sha512
      Src: /src/cjose/src/jws.c:935,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:939,1
    - Dst: RSA_size
      Src: /src/cjose/src/jws.c:944,1
    - Dst: cjose_get_alloc
      Src: /src/cjose/src/jws.c:945,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:948,1
    - Dst: RSA_public_decrypt
      Src: /src/cjose/src/jws.c:953,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:955,1
    - Dst: RSA_verify_PKCS1_PSS
      Src: /src/cjose/src/jws.c:960,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:962,1
    - Dst: cjose_get_dealloc
      Src: /src/cjose/src/jws.c:970,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 973
    functionName: _cjose_jws_verify_sig_ps
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - cjose_get_dealloc
    - cjose_get_alloc
    - json_object_get
    - EVP_sha256
    - json_string_value
    - strcmp
    - RSA_public_decrypt
    - EVP_sha384
    - CJOSE_ERROR
    - RSA_size
    - RSA_verify_PKCS1_PSS
    - EVP_sha512
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_verify_sig_ps(cjose_jws_t *jws, const cjose_jwk_t *jwk,
      cjose_err *err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:983,1
    - Dst: json_object_get
      Src: /src/cjose/src/jws.c:988,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:991,1
    - Dst: json_string_value
      Src: /src/cjose/src/jws.c:994,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:998,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1000,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1002,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1006,1
    - Dst: RSA_verify
      Src: /src/cjose/src/jws.c:1010,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1012,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 1022
    functionName: _cjose_jws_verify_sig_rs
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - RSA_verify
    - json_object_get
    - json_string_value
    - strcmp
    - CJOSE_ERROR
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_verify_sig_rs(cjose_jws_t *jws, const cjose_jwk_t *jwk,
      cjose_err *err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1033,1
    - Dst: cjose_const_memcmp
      Src: /src/cjose/src/jws.c:1041,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1045,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1055
    functionName: _cjose_jws_verify_sig_hmac_sha
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - CJOSE_ERROR
    - cjose_const_memcmp
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_verify_sig_hmac_sha(cjose_jws_t *jws, const cjose_jwk_t
      *jwk, cjose_err *err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1065,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1094,1
    - Dst: ECDSA_SIG_new
      Src: /src/cjose/src/jws.c:1098,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1101,1
    - Dst: BN_new
      Src: /src/cjose/src/jws.c:1107,1
    - Dst: BN_new
      Src: /src/cjose/src/jws.c:1108,1
    - Dst: BN_free
      Src: /src/cjose/src/jws.c:1111,1
    - Dst: BN_free
      Src: /src/cjose/src/jws.c:1112,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1113,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jws.c:1116,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jws.c:1117,1
    - Dst: ECDSA_SIG_set0
      Src: /src/cjose/src/jws.c:1118,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jws.c:1120,1
    - Dst: BN_bin2bn
      Src: /src/cjose/src/jws.c:1121,1
    - Dst: ECDSA_do_verify
      Src: /src/cjose/src/jws.c:1124,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1126,1
    - Dst: ECDSA_SIG_free
      Src: /src/cjose/src/jws.c:1135,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1138
    functionName: _cjose_jws_verify_sig_ec
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - ECDSA_SIG_set0
    - ECDSA_do_verify
    - BN_free
    - CJOSE_ERROR
    - ECDSA_SIG_free
    - BN_new
    - ECDSA_SIG_new
    - BN_bin2bn
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_verify_sig_ec(cjose_jws_t *jws, const cjose_jwk_t *jwk,
      cjose_err *err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get
      Src: /src/cjose/src/jws.c:1143,1
    - Dst: json_is_string
      Src: /src/cjose/src/jws.c:1144,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1146,1
    - Dst: json_string_value
      Src: /src/cjose/src/jws.c:1150,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1151,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1153,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1157,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1157,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1158,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1158,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1159,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1159,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1162,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1166,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1166,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1167,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1170,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1174,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1174,1
    - Dst: strcmp
      Src: /src/cjose/src/jws.c:1175,1
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1178,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 22
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1183
    functionName: _cjose_jws_validate_verify_key
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 0
    functionsReached:
    - json_is_string
    - json_object_get
    - strcmp
    - json_string_value
    - CJOSE_ERROR
    linkageType: ''
    returnType: bool
    signature: bool _cjose_jws_validate_verify_key(cjose_jws_t *jws, const cjose_jwk_t
      *jwk, cjose_err *err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1190,1
    - Dst: _cjose_jws_validate_hdr
      Src: /src/cjose/src/jws.c:1195,1
    - Dst: _cjose_jws_validate_verify_key
      Src: /src/cjose/src/jws.c:1200,1
    - Dst: cjose_jws_t*::fns::digest
      Src: /src/cjose/src/jws.c:1206,1
    - Dst: cjose_jws_t*::fns::verify
      Src: /src/cjose/src/jws.c:1212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - jws
    - jwk
    - err
    argTypes:
    - cjose_jws_t*
    - cjose_jwk_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1186
    functionDepth: 3
    functionLinenumber: 1186
    functionLinenumberEnd: 1218
    functionName: cjose_jws_verify
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 11
    functionsReached:
    - cjose_jws_t*::fns::verify
    - _cjose_jws_validate_verify_key
    - cjose_jws_t*::fns::digest
    - CJOSE_ERROR
    - _cjose_jws_validate_hdr
    linkageType: ''
    returnType: bool
    signature: bool cjose_jws_verify(cjose_jws_t *jws, const cjose_jwk_t *jwk, cjose_err
      *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CJOSE_ERROR
      Src: /src/cjose/src/jws.c:1225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - jws
    - plaintext
    - plaintext_len
    - err
    argTypes:
    - cjose_jws_t*
    - uint8_t**
    - size_t*
    - cjose_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1233
    functionName: cjose_jws_get_plaintext
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 10
    functionsReached:
    - CJOSE_ERROR
    linkageType: ''
    returnType: bool
    signature: bool cjose_jws_get_plaintext(const cjose_jws_t *jws, uint8_t **plaintext,
      size_t *plaintext_len, cjose_err *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - jws
    argTypes:
    - cjose_jws_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1244
    functionName: cjose_jws_get_protected
    functionSourceFile: /src/cjose/src/jws.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: cjose_header_t
    signature: cjose_header_t *cjose_jws_get_protected(cjose_jws_t *jws)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 10
    functionName: cjose_version
    functionSourceFile: /src/cjose/src/version.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cjose_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: CJOSE_UNUSED_PARAM
    functionSourceFile: /src/cjose/include/cjose/util.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CJOSE_UNUSED_PARAM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - err
    - ','
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: CJOSE_ERROR
    functionSourceFile: /src/cjose/include/cjose/error.h
    functionUses: 96
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CJOSE_ERROR(err, errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: l_isspace
    functionSourceFile: /src/jansson/test/bin/json_process.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l_isspace(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: l_isspace
      Src: /src/jansson/test/bin/json_process.c:55,1
    - Dst: strlen
      Src: /src/jansson/test/bin/json_process.c:58,1
    - Dst: l_isspace
      Src: /src/jansson/test/bin/json_process.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: strip
    functionSourceFile: /src/jansson/test/bin/json_process.c
    functionUses: 0
    functionsReached:
    - l_isspace
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strip(char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fseek
      Src: /src/jansson/test/bin/json_process.c:72,1
    - Dst: ftell
      Src: /src/jansson/test/bin/json_process.c:73,1
    - Dst: fseek
      Src: /src/jansson/test/bin/json_process.c:74,1
    - Dst: malloc
      Src: /src/jansson/test/bin/json_process.c:76,1
    - Dst: fread
      Src: /src/jansson/test/bin/json_process.c:77,1
    - Dst: exit
      Src: /src/jansson/test/bin/json_process.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - file
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: loadfile
    functionSourceFile: /src/jansson/test/bin/json_process.c
    functionUses: 0
    functionsReached:
    - ftell
    - fread
    - exit
    - fseek
    - malloc
    linkageType: ''
    returnType: char
    signature: char *loadfile(FILE *file)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: loadfile
      Src: /src/jansson/test/bin/json_process.c:89,1
    - Dst: strtok
      Src: /src/jansson/test/bin/json_process.c:90,1
    - Dst: strtok
      Src: /src/jansson/test/bin/json_process.c:90,1
    - Dst: strchr
      Src: /src/jansson/test/bin/json_process.c:91,1
    - Dst: printf
      Src: /src/jansson/test/bin/json_process.c:93,1
    - Dst: strcmp
      Src: /src/jansson/test/bin/json_process.c:98,1
    - Dst: atoi
      Src: /src/jansson/test/bin/json_process.c:99,1
    - Dst: strcmp
      Src: /src/jansson/test/bin/json_process.c:100,1
    - Dst: atoi
      Src: /src/jansson/test/bin/json_process.c:101,1
    - Dst: strcmp
      Src: /src/jansson/test/bin/json_process.c:102,1
    - Dst: atoi
      Src: /src/jansson/test/bin/json_process.c:103,1
    - Dst: strcmp
      Src: /src/jansson/test/bin/json_process.c:104,1
    - Dst: atoi
      Src: /src/jansson/test/bin/json_process.c:105,1
    - Dst: strcmp
      Src: /src/jansson/test/bin/json_process.c:106,1
    - Dst: atoi
      Src: /src/jansson/test/bin/json_process.c:107,1
    - Dst: strcmp
      Src: /src/jansson/test/bin/json_process.c:108,1
    - Dst: atoi
      Src: /src/jansson/test/bin/json_process.c:109,1
    - Dst: strcmp
      Src: /src/jansson/test/bin/json_process.c:110,1
    - Dst: atoi
      Src: /src/jansson/test/bin/json_process.c:111,1
    - Dst: strcmp
      Src: /src/jansson/test/bin/json_process.c:112,1
    - Dst: atoi
      Src: /src/jansson/test/bin/json_process.c:114,1
    - Dst: free
      Src: /src/jansson/test/bin/json_process.c:118,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - conffile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 119
    functionName: read_conf
    functionSourceFile: /src/jansson/test/bin/json_process.c
    functionUses: 0
    functionsReached:
    - loadfile
    - printf
    - free
    - strcmp
    - atoi
    - strtok
    - strchr
    linkageType: ''
    returnType: void
    signature: void read_conf(FILE *conffile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/jansson/test/bin/json_process.c:126,1
    - Dst: fopen
      Src: /src/jansson/test/bin/json_process.c:127,1
    - Dst: strlen
      Src: /src/jansson/test/bin/json_process.c:129,1
    - Dst: strncat
      Src: /src/jansson/test/bin/json_process.c:131,1
    - Dst: strncat
      Src: /src/jansson/test/bin/json_process.c:133,1
    - Dst: fopen
      Src: /src/jansson/test/bin/json_process.c:134,1
    - Dst: printf
      Src: /src/jansson/test/bin/json_process.c:137,1
    - Dst: exit
      Src: /src/jansson/test/bin/json_process.c:138,1
    - Dst: loadfile
      Src: /src/jansson/test/bin/json_process.c:141,1
    - Dst: strcmp
      Src: /src/jansson/test/bin/json_process.c:142,1
    - Dst: fprintf
      Src: /src/jansson/test/bin/json_process.c:143,1
    - Dst: fprintf
      Src: /src/jansson/test/bin/json_process.c:144,1
    - Dst: fprintf
      Src: /src/jansson/test/bin/json_process.c:145,1
    - Dst: fprintf
      Src: /src/jansson/test/bin/json_process.c:146,1
    - Dst: free
      Src: /src/jansson/test/bin/json_process.c:152,1
    - Dst: fclose
      Src: /src/jansson/test/bin/json_process.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - str
    - path
    - fname
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 156
    functionName: cmpfile
    functionSourceFile: /src/jansson/test/bin/json_process.c
    functionUses: 0
    functionsReached:
    - fclose
    - strlen
    - loadfile
    - printf
    - free
    - strncat
    - strcmp
    - exit
    - fopen
    - snprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmpfile(const char *str, const char *path, const char *fname)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/jansson/test/bin/json_process.c:167,1
    - Dst: fopen
      Src: /src/jansson/test/bin/json_process.c:168,1
    - Dst: fprintf
      Src: /src/jansson/test/bin/json_process.c:169,1
    - Dst: snprintf
      Src: /src/jansson/test/bin/json_process.c:173,1
    - Dst: fopen
      Src: /src/jansson/test/bin/json_process.c:174,1
    - Dst: read_conf
      Src: /src/jansson/test/bin/json_process.c:176,1
    - Dst: fclose
      Src: /src/jansson/test/bin/json_process.c:177,1
    - Dst: fprintf
      Src: /src/jansson/test/bin/json_process.c:181,1
    - Dst: fclose
      Src: /src/jansson/test/bin/json_process.c:182,1
    - Dst: JSON_INDENT
      Src: /src/jansson/test/bin/json_process.c:186,1
    - Dst: fprintf
      Src: /src/jansson/test/bin/json_process.c:201,1
    - Dst: fclose
      Src: /src/jansson/test/bin/json_process.c:202,1
    - Dst: JSON_REAL_PRECISION
      Src: /src/jansson/test/bin/json_process.c:206,1
    - Dst: json_object_seed
      Src: /src/jansson/test/bin/json_process.c:209,1
    - Dst: loadfile
      Src: /src/jansson/test/bin/json_process.c:213,1
    - Dst: json_loads
      Src: /src/jansson/test/bin/json_process.c:214,1
    - Dst: strip
      Src: /src/jansson/test/bin/json_process.c:214,1
    - Dst: free
      Src: /src/jansson/test/bin/json_process.c:215,1
    - Dst: json_loadf
      Src: /src/jansson/test/bin/json_process.c:217,1
    - Dst: fclose
      Src: /src/jansson/test/bin/json_process.c:220,1
    - Dst: snprintf
      Src: /src/jansson/test/bin/json_process.c:223,1
    - Dst: cmpfile
      Src: /src/jansson/test/bin/json_process.c:226,1
    - Dst: json_dumps
      Src: /src/jansson/test/bin/json_process.c:230,1
    - Dst: cmpfile
      Src: /src/jansson/test/bin/json_process.c:231,1
    - Dst: free
      Src: /src/jansson/test/bin/json_process.c:232,1
    - Dst: json_decref
      Src: /src/jansson/test/bin/json_process.c:233,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 1
    argNames:
    - test_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 236
    functionName: use_conf
    functionSourceFile: /src/jansson/test/bin/json_process.c
    functionUses: 0
    functionsReached:
    - fclose
    - strip
    - json_object_seed
    - json_loadf
    - loadfile
    - free
    - json_dumps
    - JSON_REAL_PRECISION
    - json_loads
    - fopen
    - json_decref
    - snprintf
    - fprintf
    - cmpfile
    - JSON_INDENT
    - read_conf
    linkageType: ''
    returnType: int
    signature: int use_conf(char *test_path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/jansson/test/bin/json_process.c:243,1
    - Dst: strcmp
      Src: /src/jansson/test/bin/json_process.c:251,1
    - Dst: use_conf
      Src: /src/jansson/test/bin/json_process.c:261,1
    - Dst: fprintf
      Src: /src/jansson/test/bin/json_process.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 266
    functionName: main
    functionSourceFile: /src/jansson/test/bin/json_process.c
    functionUses: 14
    functionsReached:
    - fprintf
    - strcmp
    - setlocale
    - use_conf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:14,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: create_and_free_complex_object
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - json_decref
    - json_pack
    linkageType: ''
    returnType: void
    signature: void create_and_free_complex_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:23,1
    - Dst: snprintf
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:26,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:27,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:27,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: create_and_free_object_with_oom
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - json_decref
    - json_integer
    - snprintf
    - json_object
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void create_and_free_object_with_oom()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: my_malloc
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *my_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: my_free
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void my_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_set_alloc_funcs
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:47,1
    - Dst: json_get_alloc_funcs
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:48,1
    - Dst: create_and_free_complex_object
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:49,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: test_simple
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - json_set_alloc_funcs
    - create_and_free_complex_object
    - fail
    - json_get_alloc_funcs
    linkageType: ''
    returnType: void
    signature: void test_simple()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: oom_malloc
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *oom_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: oom_free
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void oom_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_set_alloc_funcs
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:70,1
    - Dst: create_and_free_object_with_oom
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:71,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: test_oom
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - json_set_alloc_funcs
    - fail
    - create_and_free_object_with_oom
    linkageType: ''
    returnType: void
    signature: void test_oom()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: secure_malloc
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *secure_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:98,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: secure_free
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void secure_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_set_alloc_funcs
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:103,1
    - Dst: create_and_free_complex_object
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: test_secure_funcs
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - json_set_alloc_funcs
    - create_and_free_complex_object
    linkageType: ''
    returnType: void
    signature: void test_secure_funcs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_get_alloc_funcs
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: test_bad_args
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - json_get_alloc_funcs
    linkageType: ''
    returnType: void
    signature: void test_bad_args(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_simple
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:113,1
    - Dst: test_secure_funcs
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:114,1
    - Dst: test_oom
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:115,1
    - Dst: test_bad_args
      Src: /src/jansson/test/suites/api/test_memory_funcs.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs.c
    functionUses: 0
    functionsReached:
    - test_simple
    - test_oom
    - test_bad_args
    - test_secure_funcs
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:14,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:15,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_equal.c:17,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:18,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:18,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:19,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:22,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:23,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:24,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:27,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:28,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:30,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:31,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:32,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:33,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:35,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:37,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:38,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:39,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:41,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:42,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_equal.c:45,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_equal.c:46,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:48,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:49,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:50,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:51,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_equal.c:53,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:55,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:56,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:57,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:59,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:60,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_equal.c:63,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_equal.c:64,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:66,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:67,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:68,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:69,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_equal.c:71,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:73,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:74,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:75,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:76,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_equal.c:78,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:80,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:81,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:82,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:84,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:85,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 86
    functionName: test_equal_simple
    functionSourceFile: /src/jansson/test/suites/api/test_equal.c
    functionUses: 0
    functionsReached:
    - json_true
    - json_equal
    - json_real
    - json_decref
    - fail
    - json_integer
    - json_string
    linkageType: ''
    returnType: void
    signature: void test_equal_simple()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_equal.c:91,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_equal.c:92,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:94,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:96,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:97,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_equal.c:99,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:99,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_equal.c:100,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:100,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_equal.c:101,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_equal.c:101,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_equal.c:102,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_equal.c:102,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_equal.c:103,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:103,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_equal.c:104,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:104,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:105,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:106,1
    - Dst: json_array_remove
      Src: /src/jansson/test/suites/api/test_equal.c:108,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:109,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:110,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_equal.c:112,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:112,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:113,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:114,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:116,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 118
    functionName: test_equal_array
    functionSourceFile: /src/jansson/test/suites/api/test_equal.c
    functionUses: 0
    functionsReached:
    - json_equal
    - json_array
    - json_decref
    - json_integer
    - fail
    - json_array_append_new
    - json_array_remove
    - json_string
    linkageType: ''
    returnType: void
    signature: void test_equal_array()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_equal.c:123,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_equal.c:124,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:126,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:128,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:129,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_equal.c:131,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:131,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_equal.c:132,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:132,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_equal.c:133,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_equal.c:133,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_equal.c:134,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_equal.c:134,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_equal.c:135,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:135,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_equal.c:136,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:136,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:137,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:138,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_equal.c:140,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:141,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:142,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_equal.c:144,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:144,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:145,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:146,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_equal.c:148,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_equal.c:149,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_equal.c:149,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:150,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:151,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:153,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 155
    functionName: test_equal_object
    functionSourceFile: /src/jansson/test/suites/api/test_equal.c
    functionUses: 0
    functionsReached:
    - json_object_del
    - json_equal
    - json_decref
    - fail
    - json_integer
    - json_object
    - json_string
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void test_equal_object()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_equal.c:172,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_equal.c:173,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_equal.c:174,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:176,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:177,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:178,1
    - Dst: json_array_set_new
      Src: /src/jansson/test/suites/api/test_equal.c:180,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_equal.c:181,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_equal.c:181,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_equal.c:182,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:183,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:184,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_equal.c:186,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_equal.c:187,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_equal.c:187,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_equal.c:188,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:189,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:190,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:192,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:193,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 195
    functionName: test_equal_complex
    functionSourceFile: /src/jansson/test/suites/api/test_equal.c
    functionUses: 0
    functionsReached:
    - json_object_get
    - json_equal
    - json_array_set_new
    - json_loads
    - json_false
    - json_decref
    - fail
    - json_string
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void test_equal_complex()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_equal.c:201,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_equal.c:202,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_equal.c:204,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_equal.c:205,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_equal.c:206,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_equal.c:207,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_equal.c:214,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_equal.c:215,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:217,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_equal.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 219
    functionName: test_equal_max_depth
    functionSourceFile: /src/jansson/test/suites/api/test_equal.c
    functionUses: 0
    functionsReached:
    - json_equal
    - json_array
    - json_decref
    - fail
    - json_array_append_new
    linkageType: ''
    returnType: void
    signature: void test_equal_max_depth()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_equal_simple
      Src: /src/jansson/test/suites/api/test_equal.c:222,1
    - Dst: test_equal_array
      Src: /src/jansson/test/suites/api/test_equal.c:223,1
    - Dst: test_equal_object
      Src: /src/jansson/test/suites/api/test_equal.c:224,1
    - Dst: test_equal_complex
      Src: /src/jansson/test/suites/api/test_equal.c:225,1
    - Dst: test_equal_max_depth
      Src: /src/jansson/test/suites/api/test_equal.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_equal.c
    functionUses: 0
    functionsReached:
    - test_equal_complex
    - test_equal_simple
    - test_equal_array
    - test_equal_max_depth
    - test_equal_object
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:30,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_unpack.c:30,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:32,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:35,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_unpack.c:35,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:37,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:40,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_unpack.c:40,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:41,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_unpack.c:44,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:45,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:47,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:48,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_unpack.c:51,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:52,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:54,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:55,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_unpack.c:58,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:59,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:61,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:62,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_unpack.c:65,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:66,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:68,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:69,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_unpack.c:71,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:72,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:74,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:75,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_unpack.c:78,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:79,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_unpack.c:80,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:81,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:82,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_unpack.c:85,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:86,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_unpack.c:87,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:88,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:89,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_unpack.c:92,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:93,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:94,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:95,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_unpack.c:98,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:99,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:100,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:101,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_unpack.c:104,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:105,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:107,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:108,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_unpack.c:111,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:112,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:114,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:115,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:116,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:119,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:120,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:122,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:123,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:126,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:127,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:129,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:130,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:133,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:134,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:136,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:137,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_unpack.c:143,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:144,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:145,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:146,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:149,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:150,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:151,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:152,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:155,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:156,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:157,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:158,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:160,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:162,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:163,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:164,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:165,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:167,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:170,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:171,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:172,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:173,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:175,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:178,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:179,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:180,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:181,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:183,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:186,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:187,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:188,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:189,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:191,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_unpack.c:193,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:194,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:195,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:196,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:198,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:201,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:202,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:203,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:204,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:206,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_unpack.c:209,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:210,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:211,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:212,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:213,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_unpack.c:216,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_unpack.c:217,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:218,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:219,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:220,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:223,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:224,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:225,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:228,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:229,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:230,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:233,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:234,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:235,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:238,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:239,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:240,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:243,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:244,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:245,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:248,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:249,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:250,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:253,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:254,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:255,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:258,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:259,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:260,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:263,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:264,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:267,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:268,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:269,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:270,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:271,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:274,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:275,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:276,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:279,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:280,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:281,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:284,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:285,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:286,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:289,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:290,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:291,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:294,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:295,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:296,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:299,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:300,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:301,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:304,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:305,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:306,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:309,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:310,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:311,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:314,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:315,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:318,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:319,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:320,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:321,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:323,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:326,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:327,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:328,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:329,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:330,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:333,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:334,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:335,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:336,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:338,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:344,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:345,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:347,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:348,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:350,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:351,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:352,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:353,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:355,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:358,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:359,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:360,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:361,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:363,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:365,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:366,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_unpack.c:367,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:368,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:369,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:372,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:373,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:374,1
    - Dst: check_errors
      Src: /src/jansson/test/suites/api/test_unpack.c:378,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:381,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:383,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:384,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:386,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:387,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:390,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:391,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:392,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:393,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:396,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:397,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:398,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:400,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:402,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:403,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:404,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:405,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:408,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:409,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:410,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:412,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:415,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:416,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:417,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:418,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:420,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:423,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:424,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:425,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:426,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:428,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_unpack.c:431,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:433,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:434,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:436,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:437,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:440,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:441,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:442,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:444,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:445,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_unpack.c:447,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:449,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:450,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:452,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:453,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:455,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:456,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:457,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:459,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:460,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:463,1
    - Dst: json_unpack
      Src: /src/jansson/test/suites/api/test_unpack.c:465,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:466,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:468,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:470,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:471,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_unpack.c:474,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_unpack.c:476,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_unpack.c:477,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_unpack.c:479,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_unpack.c:481,1
    CyclomaticComplexity: 100
    EdgeCount: 100
    ICount: 301
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 482
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_unpack.c
    functionUses: 0
    functionsReached:
    - check_error
    - json_true
    - strcmp
    - json_unpack
    - json_real
    - json_false
    - json_array
    - json_decref
    - fail
    - json_integer
    - check_errors
    - json_null
    - json_unpack_ex
    - json_object
    - json_pack
    - json_string
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_simple.c:13,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_simple.c:14,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:17,1
    - Dst: json_string_nocheck
      Src: /src/jansson/test/suites/api/test_simple.c:19,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:20,1
    - Dst: json_stringn_nocheck
      Src: /src/jansson/test/suites/api/test_simple.c:21,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:22,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_simple.c:23,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:24,1
    - Dst: json_stringn
      Src: /src/jansson/test/suites/api/test_simple.c:25,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:26,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_simple.c:28,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:29,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_simple.c:30,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:31,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_simple.c:33,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:34,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_simple.c:35,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:36,1
    - Dst: json_string_setn_nocheck
      Src: /src/jansson/test/suites/api/test_simple.c:38,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:39,1
    - Dst: json_string_setn_nocheck
      Src: /src/jansson/test/suites/api/test_simple.c:40,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:41,1
    - Dst: json_string_setn_nocheck
      Src: /src/jansson/test/suites/api/test_simple.c:42,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:43,1
    - Dst: json_string_set_nocheck
      Src: /src/jansson/test/suites/api/test_simple.c:45,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:46,1
    - Dst: json_string_set
      Src: /src/jansson/test/suites/api/test_simple.c:47,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:48,1
    - Dst: json_string_setn
      Src: /src/jansson/test/suites/api/test_simple.c:49,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:50,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:53,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:55,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:57,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:58,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 59
    functionName: test_bad_args
    functionSourceFile: /src/jansson/test/suites/api/test_simple.c
    functionUses: 1
    functionsReached:
    - json_string_length
    - json_stringn
    - json_string_set_nocheck
    - json_string_value
    - json_decref
    - fail
    - json_integer
    - json_string_set
    - json_string_setn
    - json_string_setn_nocheck
    - json_string_nocheck
    - json_stringn_nocheck
    - json_string
    linkageType: ''
    returnType: void
    signature: void test_bad_args(void)
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: json_boolean
      Src: /src/jansson/test/suites/api/test_simple.c:65,1
    - Dst: json_is_true
      Src: /src/jansson/test/suites/api/test_simple.c:66,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:67,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:68,1
    - Dst: json_boolean
      Src: /src/jansson/test/suites/api/test_simple.c:70,1
    - Dst: json_is_true
      Src: /src/jansson/test/suites/api/test_simple.c:71,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:72,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:73,1
    - Dst: json_boolean
      Src: /src/jansson/test/suites/api/test_simple.c:75,1
    - Dst: json_is_false
      Src: /src/jansson/test/suites/api/test_simple.c:76,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:77,1
    - Dst: json_boolean_value
      Src: /src/jansson/test/suites/api/test_simple.c:78,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:79,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:80,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_simple.c:82,1
    - Dst: json_typeof
      Src: /src/jansson/test/suites/api/test_simple.c:83,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:84,1
    - Dst: json_is_object
      Src: /src/jansson/test/suites/api/test_simple.c:86,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:87,1
    - Dst: json_is_array
      Src: /src/jansson/test/suites/api/test_simple.c:89,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:90,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_simple.c:92,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:93,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_simple.c:95,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:96,1
    - Dst: json_is_real
      Src: /src/jansson/test/suites/api/test_simple.c:98,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:99,1
    - Dst: json_is_number
      Src: /src/jansson/test/suites/api/test_simple.c:101,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:102,1
    - Dst: json_is_true
      Src: /src/jansson/test/suites/api/test_simple.c:104,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:105,1
    - Dst: json_is_false
      Src: /src/jansson/test/suites/api/test_simple.c:107,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:108,1
    - Dst: json_is_boolean
      Src: /src/jansson/test/suites/api/test_simple.c:110,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:111,1
    - Dst: json_is_null
      Src: /src/jansson/test/suites/api/test_simple.c:113,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:114,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:116,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_simple.c:118,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:120,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_simple.c:121,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_simple.c:121,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:122,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_simple.c:123,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:124,1
    - Dst: json_string_set
      Src: /src/jansson/test/suites/api/test_simple.c:126,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:127,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_simple.c:128,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_simple.c:128,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:129,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_simple.c:130,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:131,1
    - Dst: json_string_setn
      Src: /src/jansson/test/suites/api/test_simple.c:133,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:134,1
    - Dst: memcmp
      Src: /src/jansson/test/suites/api/test_simple.c:135,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_simple.c:135,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:136,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_simple.c:137,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:138,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:140,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_simple.c:142,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:144,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_simple.c:147,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:149,1
    - Dst: json_string_nocheck
      Src: /src/jansson/test/suites/api/test_simple.c:151,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:153,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_simple.c:154,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_simple.c:154,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:155,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_simple.c:156,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:157,1
    - Dst: json_string_set_nocheck
      Src: /src/jansson/test/suites/api/test_simple.c:159,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:160,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_simple.c:161,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_simple.c:161,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:162,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_simple.c:163,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:164,1
    - Dst: json_string_setn_nocheck
      Src: /src/jansson/test/suites/api/test_simple.c:166,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:167,1
    - Dst: memcmp
      Src: /src/jansson/test/suites/api/test_simple.c:168,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_simple.c:168,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:169,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_simple.c:170,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:171,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:173,1
    - Dst: json_string_nocheck
      Src: /src/jansson/test/suites/api/test_simple.c:176,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:178,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_simple.c:179,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_simple.c:179,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:180,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_simple.c:181,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:182,1
    - Dst: json_string_set_nocheck
      Src: /src/jansson/test/suites/api/test_simple.c:184,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:185,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_simple.c:186,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_simple.c:186,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:187,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_simple.c:188,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:189,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:191,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_simple.c:193,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:195,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_simple.c:196,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:197,1
    - Dst: json_number_value
      Src: /src/jansson/test/suites/api/test_simple.c:198,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:199,1
    - Dst: json_integer_set
      Src: /src/jansson/test/suites/api/test_simple.c:201,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:202,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_simple.c:203,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:204,1
    - Dst: json_number_value
      Src: /src/jansson/test/suites/api/test_simple.c:205,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:206,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:208,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_simple.c:210,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:212,1
    - Dst: json_real_value
      Src: /src/jansson/test/suites/api/test_simple.c:213,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:214,1
    - Dst: json_number_value
      Src: /src/jansson/test/suites/api/test_simple.c:215,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:216,1
    - Dst: json_real_set
      Src: /src/jansson/test/suites/api/test_simple.c:218,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:219,1
    - Dst: json_real_value
      Src: /src/jansson/test/suites/api/test_simple.c:220,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:221,1
    - Dst: json_number_value
      Src: /src/jansson/test/suites/api/test_simple.c:222,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:223,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:225,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_simple.c:227,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:229,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:230,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_simple.c:232,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:234,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:235,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_simple.c:237,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:239,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:240,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_simple.c:243,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:245,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:246,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:248,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_simple.c:249,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:251,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_simple.c:253,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:255,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:256,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:258,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_simple.c:259,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:261,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_simple.c:263,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:265,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:266,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:268,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_simple.c:269,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:271,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_simple.c:274,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_simple.c:276,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_simple.c:278,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:279,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_simple.c:282,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_simple.c:283,1
    - Dst: test_bad_args
      Src: /src/jansson/test/suites/api/test_simple.c:286,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 174
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 287
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_simple.c
    functionUses: 0
    functionsReached:
    - json_integer_set
    - json_string_set_nocheck
    - json_is_boolean
    - strcmp
    - json_is_number
    - json_incref
    - fail
    - json_string_setn_nocheck
    - json_boolean_value
    - json_is_true
    - json_number_value
    - json_string_value
    - json_integer
    - json_boolean
    - json_string_setn
    - json_is_real
    - json_real_value
    - json_string_length
    - json_real
    - json_integer_value
    - json_string_nocheck
    - json_null
    - json_typeof
    - json_real_set
    - json_string
    - test_bad_args
    - json_is_string
    - json_is_object
    - json_is_false
    - json_is_null
    - json_true
    - json_is_integer
    - json_false
    - json_decref
    - json_string_set
    - memcmp
    - json_is_array
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:32,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:33,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:34,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:37,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:38,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:39,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:42,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:43,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 50
    functionName: test_inifity
    functionSourceFile: /src/jansson/test/suites/api/test_pack.c
    functionUses: 0
    functionsReached:
    - json_pack_ex
    - fail
    - check_error
    linkageType: ''
    returnType: void
    signature: void test_inifity()
  - BBCount: 106
    BranchProfiles: []
    Callsites:
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:63,1
    - Dst: json_is_true
      Src: /src/jansson/test/suites/api/test_pack.c:64,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:65,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:67,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:68,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:71,1
    - Dst: json_is_false
      Src: /src/jansson/test/suites/api/test_pack.c:72,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:73,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:75,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:76,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:79,1
    - Dst: json_is_null
      Src: /src/jansson/test/suites/api/test_pack.c:80,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:81,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:83,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:84,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:87,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_pack.c:88,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_pack.c:88,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:89,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:91,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:92,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:95,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_pack.c:96,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_pack.c:96,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:97,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:99,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:100,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:103,1
    - Dst: json_is_real
      Src: /src/jansson/test/suites/api/test_pack.c:104,1
    - Dst: json_real_value
      Src: /src/jansson/test/suites/api/test_pack.c:104,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:105,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:107,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:108,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:111,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_pack.c:112,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_pack.c:112,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_pack.c:112,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:113,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:115,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:116,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:119,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_pack.c:120,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_pack.c:120,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_pack.c:120,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:121,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:123,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:124,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:127,1
    - Dst: json_is_null
      Src: /src/jansson/test/suites/api/test_pack.c:128,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:129,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:131,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:132,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:135,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:136,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:137,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:141,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:142,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:143,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:147,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_pack.c:148,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_pack.c:148,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_pack.c:148,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:149,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:151,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:152,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:155,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_pack.c:156,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_pack.c:156,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_pack.c:156,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:157,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:159,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:160,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:163,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_pack.c:164,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_pack.c:164,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_pack.c:164,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:165,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:167,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:168,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:171,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:172,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:173,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:177,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_pack.c:178,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_pack.c:178,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_pack.c:178,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:179,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:181,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:182,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:185,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:186,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:188,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_pack.c:189,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_pack.c:189,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_pack.c:189,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:190,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:192,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:193,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:196,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_pack.c:197,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_pack.c:197,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_pack.c:197,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:198,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:200,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:201,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:204,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_pack.c:205,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_pack.c:205,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_pack.c:205,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:206,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:208,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:210,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:213,1
    - Dst: json_is_object
      Src: /src/jansson/test/suites/api/test_pack.c:214,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_pack.c:214,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:215,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:217,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:218,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:221,1
    - Dst: json_is_array
      Src: /src/jansson/test/suites/api/test_pack.c:222,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_pack.c:222,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:223,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:225,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:226,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:229,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_pack.c:229,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_pack.c:230,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_pack.c:230,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:231,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:233,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:234,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:237,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_pack.c:237,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_pack.c:238,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_pack.c:238,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:239,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:241,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:242,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:245,1
    - Dst: json_is_null
      Src: /src/jansson/test/suites/api/test_pack.c:246,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:247,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:249,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:250,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:253,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_pack.c:253,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_pack.c:254,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_pack.c:254,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:255,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:257,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:258,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:259,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:262,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_pack.c:262,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_pack.c:263,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_pack.c:263,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:264,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:266,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:268,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:269,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:272,1
    - Dst: json_is_null
      Src: /src/jansson/test/suites/api/test_pack.c:273,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:274,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:276,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:279,1
    - Dst: json_is_object
      Src: /src/jansson/test/suites/api/test_pack.c:280,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_pack.c:280,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:281,1
    - Dst: json_is_array
      Src: /src/jansson/test/suites/api/test_pack.c:282,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_pack.c:282,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:283,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_pack.c:284,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:285,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:286,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:289,1
    - Dst: json_is_object
      Src: /src/jansson/test/suites/api/test_pack.c:290,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_pack.c:290,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:291,1
    - Dst: json_is_array
      Src: /src/jansson/test/suites/api/test_pack.c:292,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_pack.c:292,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:293,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_pack.c:294,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:295,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:296,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:299,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:301,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:303,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:305,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:307,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:308,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:309,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:312,1
    - Dst: json_is_object
      Src: /src/jansson/test/suites/api/test_pack.c:313,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_pack.c:313,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:314,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:315,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:317,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:319,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:322,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:323,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:324,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:327,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:328,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:329,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:333,1
    - Dst: json_is_array
      Src: /src/jansson/test/suites/api/test_pack.c:334,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_pack.c:334,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:335,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_pack.c:337,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_pack.c:337,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_pack.c:338,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_pack.c:338,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:340,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:342,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:345,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:347,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:349,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:350,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:351,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:354,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:356,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:357,1
    - Dst: json_is_array
      Src: /src/jansson/test/suites/api/test_pack.c:358,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_pack.c:358,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:359,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:360,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:364,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:365,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:366,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:369,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:370,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:371,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:374,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:375,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:376,1
    - Dst: test_inifity
      Src: /src/jansson/test/suites/api/test_pack.c:381,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:385,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_pack.c:386,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_pack.c:386,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_pack.c:386,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:387,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:388,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:391,1
    - Dst: json_is_array
      Src: /src/jansson/test/suites/api/test_pack.c:392,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_pack.c:392,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:393,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:394,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_pack.c:397,1
    - Dst: json_is_array
      Src: /src/jansson/test/suites/api/test_pack.c:398,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_pack.c:398,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:399,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:400,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:407,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:408,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:409,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:413,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:414,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:415,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:418,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:419,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:420,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:424,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:425,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:426,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:430,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:431,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:432,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:436,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:437,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:438,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:441,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:442,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:443,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:447,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:448,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:449,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:452,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:453,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:454,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:458,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:459,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:460,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:464,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:465,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:466,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:470,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:471,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:472,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_pack.c:475,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_pack.c:475,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:476,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:477,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:478,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:480,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_pack.c:481,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:484,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:485,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:486,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:490,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:491,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:492,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:496,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:497,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:498,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:502,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:503,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:504,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:507,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:508,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:509,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:512,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:513,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:515,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:518,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:519,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:521,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:524,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:525,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:526,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:528,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:529,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:530,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:532,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:533,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:534,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:536,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:537,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:538,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:540,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:541,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:542,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:545,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:546,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:547,1
    - Dst: json_pack_ex
      Src: /src/jansson/test/suites/api/test_pack.c:550,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_pack.c:550,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_pack.c:551,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_pack.c:552,1
    CyclomaticComplexity: 133
    EdgeCount: 133
    ICount: 323
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 553
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_pack.c
    functionUses: 0
    functionsReached:
    - json_object_size
    - strcmp
    - json_incref
    - fail
    - json_pack
    - json_is_true
    - json_string_value
    - json_array_get
    - json_integer
    - json_array_size
    - json_is_real
    - json_real_value
    - json_object
    - test_inifity
    - json_integer_value
    - json_pack_ex
    - json_is_string
    - json_object_get
    - json_is_object
    - json_is_false
    - json_is_null
    - json_is_integer
    - json_decref
    - check_error
    - json_is_array
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fds
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: pipe
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pipe(fds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buffer
    - size
    - data
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: encode_null_callback
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int encode_null_callback(const char *buffer, size_t size, void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:29,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:30,1
    - Dst: json_dumpb
      Src: /src/jansson/test/suites/api/test_dump.c:32,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:33,1
    - Dst: json_dumpf
      Src: /src/jansson/test/suites/api/test_dump.c:35,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:36,1
    - Dst: json_dumpfd
      Src: /src/jansson/test/suites/api/test_dump.c:39,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:40,1
    - Dst: json_dump_callback
      Src: /src/jansson/test/suites/api/test_dump.c:45,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: encode_null
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 0
    functionsReached:
    - json_dumpb
    - json_dumps
    - fail
    - json_dumpf
    - json_dumpfd
    - json_dump_callback
    linkageType: ''
    returnType: void
    signature: void encode_null()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_dump.c:55,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:56,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_dump.c:57,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:58,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:59,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_dump.c:61,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_dump.c:61,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:62,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_dump.c:63,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:64,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:65,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:67,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_dump.c:69,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:70,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_dump.c:71,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:72,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:73,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_dump.c:75,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_dump.c:75,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:76,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_dump.c:77,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:78,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:79,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:81,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 82
    functionName: encode_twice
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 0
    functionsReached:
    - json_dumps
    - free
    - strcmp
    - json_array
    - json_decref
    - fail
    - json_integer
    - json_array_append_new
    - json_object
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void encode_twice()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_dump.c:96,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_dump.c:97,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_dump.c:97,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_dump.c:98,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_dump.c:98,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_dump.c:98,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_dump.c:99,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_dump.c:99,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_dump.c:99,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_dump.c:100,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:102,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:103,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_dump.c:105,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_dump.c:105,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_dump.c:105,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:107,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_dump.c:108,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:109,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:110,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:112,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_dump.c:114,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_dump.c:115,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_dump.c:115,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_dump.c:116,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_dump.c:116,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_dump.c:116,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_dump.c:117,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_dump.c:117,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_dump.c:117,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_dump.c:118,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:120,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:121,1
    - Dst: json_array_remove
      Src: /src/jansson/test/suites/api/test_dump.c:123,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_dump.c:123,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_dump.c:123,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:125,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_dump.c:126,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:127,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:128,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 131
    functionName: circular_references
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 0
    functionsReached:
    - json_object_del
    - json_object_get
    - json_dumps
    - free
    - strcmp
    - json_array
    - json_decref
    - fail
    - json_array_get
    - json_array_append_new
    - json_array_remove
    - json_object
    - json_object_set
    - json_array_append
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void circular_references()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_dump.c:140,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:141,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:142,1
    - Dst: json_dumpf
      Src: /src/jansson/test/suites/api/test_dump.c:143,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:144,1
    - Dst: json_dumpfd
      Src: /src/jansson/test/suites/api/test_dump.c:145,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:146,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:148,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_dump.c:149,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:150,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:152,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:153,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_dump.c:155,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:156,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:157,1
    - Dst: json_dumpf
      Src: /src/jansson/test/suites/api/test_dump.c:158,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:159,1
    - Dst: json_dumpfd
      Src: /src/jansson/test/suites/api/test_dump.c:160,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:161,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:163,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_dump.c:164,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:165,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:167,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:168,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 169
    functionName: encode_other_than_array_or_object
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 0
    functionsReached:
    - json_dumps
    - free
    - strcmp
    - json_decref
    - fail
    - json_dumpf
    - json_integer
    - json_dumpfd
    - json_string
    linkageType: ''
    returnType: void
    signature: void encode_other_than_array_or_object()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_dump.c:177,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_dump.c:178,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_dump.c:178,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:180,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_dump.c:181,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:182,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:184,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:186,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_dump.c:188,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:189,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:191,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 193
    functionName: escape_slashes
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 0
    functionsReached:
    - json_dumps
    - free
    - strcmp
    - json_decref
    - fail
    - json_object
    - json_string
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void escape_slashes()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_stringn
      Src: /src/jansson/test/suites/api/test_dump.c:199,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:200,1
    - Dst: memcmp
      Src: /src/jansson/test/suites/api/test_dump.c:201,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:202,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:204,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 206
    functionName: encode_nul_byte
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 0
    functionsReached:
    - json_stringn
    - json_dumps
    - free
    - json_decref
    - fail
    - memcmp
    linkageType: ''
    returnType: void
    signature: void encode_nul_byte()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_dump_file
      Src: /src/jansson/test/suites/api/test_dump.c:212,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:214,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_dump.c:216,1
    - Dst: json_dump_file
      Src: /src/jansson/test/suites/api/test_dump.c:217,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:219,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:221,1
    - Dst: remove
      Src: /src/jansson/test/suites/api/test_dump.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 223
    functionName: dump_file
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 1
    functionsReached:
    - remove
    - json_dump_file
    - json_decref
    - fail
    - json_object
    linkageType: ''
    returnType: void
    signature: void dump_file()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_dump.c:230,1
    - Dst: json_dumpb
      Src: /src/jansson/test/suites/api/test_dump.c:232,1
    - Dst: strncmp
      Src: /src/jansson/test/suites/api/test_dump.c:233,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:234,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:236,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_dump.c:237,1
    - Dst: json_dumpb
      Src: /src/jansson/test/suites/api/test_dump.c:239,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:241,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 244
    functionName: dumpb
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 2
    functionsReached:
    - json_dumpb
    - json_decref
    - fail
    - strncmp
    - json_object
    - json_pack
    linkageType: ''
    returnType: void
    signature: void dumpb()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/jansson/test/suites/api/test_dump.c:251,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:252,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_dump.c:254,1
    - Dst: json_dumpfd
      Src: /src/jansson/test/suites/api/test_dump.c:256,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:257,1
    - Dst: close
      Src: /src/jansson/test/suites/api/test_dump.c:258,1
    - Dst: json_loadfd
      Src: /src/jansson/test/suites/api/test_dump.c:260,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:262,1
    - Dst: close
      Src: /src/jansson/test/suites/api/test_dump.c:263,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_dump.c:265,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:266,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:268,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 271
    functionName: dumpfd
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 3
    functionsReached:
    - close
    - json_equal
    - json_loadfd
    - json_decref
    - fail
    - pipe
    - json_pack
    - json_dumpfd
    linkageType: ''
    returnType: void
    signature: void dumpfd()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/jansson/test/suites/api/test_dump.c:286,1
    - Dst: calloc
      Src: /src/jansson/test/suites/api/test_dump.c:287,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_dump.c:288,1
    - Dst: json_dumpb
      Src: /src/jansson/test/suites/api/test_dump.c:290,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:291,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:293,1
    - Dst: strncmp
      Src: /src/jansson/test/suites/api/test_dump.c:294,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:295,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 298
    functionName: embed
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 0
    functionsReached:
    - json_dumpb
    - strlen
    - free
    - json_loads
    - json_decref
    - fail
    - strncmp
    - calloc
    linkageType: ''
    returnType: void
    signature: void embed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_dump.c:301,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_dump.c:305,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_dump.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: build_nested_array
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 0
    functionsReached:
    - json_array
    - json_array_append_new
    linkageType: ''
    returnType: json_t
    signature: json_t *build_nested_array(int depth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: build_nested_array
      Src: /src/jansson/test/suites/api/test_dump.c:318,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:319,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:321,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump.c:322,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:323,1
    - Dst: build_nested_array
      Src: /src/jansson/test/suites/api/test_dump.c:327,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump.c:328,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump.c:329,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 331
    functionName: max_depth
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 1
    functionsReached:
    - json_dumps
    - free
    - json_decref
    - fail
    - build_nested_array
    linkageType: ''
    returnType: void
    signature: void max_depth()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_null
      Src: /src/jansson/test/suites/api/test_dump.c:334,1
    - Dst: encode_twice
      Src: /src/jansson/test/suites/api/test_dump.c:335,1
    - Dst: circular_references
      Src: /src/jansson/test/suites/api/test_dump.c:336,1
    - Dst: encode_other_than_array_or_object
      Src: /src/jansson/test/suites/api/test_dump.c:337,1
    - Dst: escape_slashes
      Src: /src/jansson/test/suites/api/test_dump.c:338,1
    - Dst: encode_nul_byte
      Src: /src/jansson/test/suites/api/test_dump.c:339,1
    - Dst: dump_file
      Src: /src/jansson/test/suites/api/test_dump.c:340,1
    - Dst: dumpb
      Src: /src/jansson/test/suites/api/test_dump.c:341,1
    - Dst: dumpfd
      Src: /src/jansson/test/suites/api/test_dump.c:342,1
    - Dst: embed
      Src: /src/jansson/test/suites/api/test_dump.c:343,1
    - Dst: max_depth
      Src: /src/jansson/test/suites/api/test_dump.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 345
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_dump.c
    functionUses: 0
    functionsReached:
    - dumpfd
    - encode_twice
    - embed
    - escape_slashes
    - encode_null
    - dump_file
    - encode_other_than_array_or_object
    - encode_nul_byte
    - dumpb
    - circular_references
    - max_depth
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_version.c:13,1
    - Dst: jansson_version_str
      Src: /src/jansson/test/suites/api/test_version.c:13,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_version.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: test_version_str
    functionSourceFile: /src/jansson/test/suites/api/test_version.c
    functionUses: 0
    functionsReached:
    - jansson_version_str
    - strcmp
    - fail
    linkageType: ''
    returnType: void
    signature: void test_version_str(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: jansson_version_cmp
      Src: /src/jansson/test/suites/api/test_version.c:19,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_version.c:21,1
    - Dst: jansson_version_cmp
      Src: /src/jansson/test/suites/api/test_version.c:24,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_version.c:25,1
    - Dst: jansson_version_cmp
      Src: /src/jansson/test/suites/api/test_version.c:29,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_version.c:31,1
    - Dst: jansson_version_cmp
      Src: /src/jansson/test/suites/api/test_version.c:36,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_version.c:38,1
    - Dst: jansson_version_cmp
      Src: /src/jansson/test/suites/api/test_version.c:42,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_version.c:44,1
    - Dst: jansson_version_cmp
      Src: /src/jansson/test/suites/api/test_version.c:47,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_version.c:49,1
    - Dst: jansson_version_cmp
      Src: /src/jansson/test/suites/api/test_version.c:52,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_version.c:54,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 56
    functionName: test_version_cmp
    functionSourceFile: /src/jansson/test/suites/api/test_version.c
    functionUses: 0
    functionsReached:
    - fail
    - jansson_version_cmp
    linkageType: ''
    returnType: void
    signature: void test_version_cmp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_version_str
      Src: /src/jansson/test/suites/api/test_version.c:59,1
    - Dst: test_version_cmp
      Src: /src/jansson/test/suites/api/test_version.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_version.c
    functionUses: 0
    functionsReached:
    - test_version_cmp
    - test_version_str
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_copy.c:15,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:16,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_copy.c:19,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_copy.c:20,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:22,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:23,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:24,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_copy.c:27,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_copy.c:28,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:30,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:31,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:32,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_copy.c:35,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_copy.c:36,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:38,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:39,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:40,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_copy.c:43,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:45,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_copy.c:46,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:48,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:50,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_copy.c:51,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:52,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:54,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:55,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:56,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_copy.c:59,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:61,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_copy.c:62,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:64,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:66,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_copy.c:67,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:68,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:70,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:71,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:72,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_copy.c:75,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:77,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_copy.c:78,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:80,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:82,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_copy.c:83,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:84,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:86,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:87,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:88,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 89
    functionName: test_copy_simple
    functionSourceFile: /src/jansson/test/suites/api/test_copy.c
    functionUses: 0
    functionsReached:
    - json_true
    - json_equal
    - json_real
    - json_false
    - json_decref
    - fail
    - json_copy
    - json_integer
    - json_null
    - json_string
    linkageType: ''
    returnType: void
    signature: void test_copy_simple(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:94,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:95,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_copy.c:98,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:99,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:101,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:102,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:103,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_copy.c:106,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:107,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:109,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:110,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:111,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_copy.c:114,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:115,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:117,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:118,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:119,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_copy.c:122,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:124,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:125,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:127,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:129,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_copy.c:130,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:131,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:133,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:134,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:135,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_copy.c:138,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:140,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:141,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:143,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:145,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_copy.c:146,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:147,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:149,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:150,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:151,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_copy.c:154,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:156,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:157,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:159,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:161,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_copy.c:162,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:163,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:165,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:166,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:167,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 168
    functionName: test_deep_copy_simple
    functionSourceFile: /src/jansson/test/suites/api/test_copy.c
    functionUses: 0
    functionsReached:
    - json_deep_copy
    - json_true
    - json_equal
    - json_real
    - json_false
    - json_decref
    - fail
    - json_integer
    - json_null
    - json_string
    linkageType: ''
    returnType: void
    signature: void test_deep_copy_simple(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_copy.c:176,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:178,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_copy.c:180,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:182,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:184,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_copy.c:185,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:186,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_copy.c:188,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_copy.c:189,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_copy.c:189,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:190,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:193,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 195
    functionName: test_copy_array
    functionSourceFile: /src/jansson/test/suites/api/test_copy.c
    functionUses: 0
    functionsReached:
    - json_equal
    - json_loads
    - json_array_get
    - fail
    - json_copy
    - json_array_size
    - json_decref
    linkageType: ''
    returnType: void
    signature: void test_copy_array(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_copy.c:203,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:205,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:207,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:209,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:211,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_copy.c:212,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:213,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_copy.c:215,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_copy.c:216,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_copy.c:216,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:217,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:220,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 222
    functionName: test_deep_copy_array
    functionSourceFile: /src/jansson/test/suites/api/test_copy.c
    functionUses: 0
    functionsReached:
    - json_deep_copy
    - json_equal
    - json_loads
    - json_array_get
    - fail
    - json_decref
    - json_array_size
    linkageType: ''
    returnType: void
    signature: void test_deep_copy_array(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_copy.c:234,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:236,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_copy.c:238,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:240,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:242,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_copy.c:243,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:244,1
    - Dst: json_object_iter
      Src: /src/jansson/test/suites/api/test_copy.c:247,1
    - Dst: json_object_iter_key
      Src: /src/jansson/test/suites/api/test_copy.c:252,1
    - Dst: json_object_iter_value
      Src: /src/jansson/test/suites/api/test_copy.c:253,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_copy.c:254,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:257,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_copy.c:259,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:260,1
    - Dst: json_object_iter_next
      Src: /src/jansson/test/suites/api/test_copy.c:262,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:266,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 268
    functionName: test_copy_object
    functionSourceFile: /src/jansson/test/suites/api/test_copy.c
    functionUses: 0
    functionsReached:
    - json_object_get
    - json_object_iter_next
    - json_equal
    - json_loads
    - strcmp
    - json_object_iter_key
    - json_decref
    - fail
    - json_copy
    - json_object_iter
    - json_object_iter_value
    linkageType: ''
    returnType: void
    signature: void test_copy_object(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_copy.c:280,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:282,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:284,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:286,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:288,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_copy.c:289,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:290,1
    - Dst: json_object_iter
      Src: /src/jansson/test/suites/api/test_copy.c:293,1
    - Dst: json_object_iter_key
      Src: /src/jansson/test/suites/api/test_copy.c:298,1
    - Dst: json_object_iter_value
      Src: /src/jansson/test/suites/api/test_copy.c:299,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_copy.c:300,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:303,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_copy.c:305,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:306,1
    - Dst: json_object_iter_next
      Src: /src/jansson/test/suites/api/test_copy.c:308,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:312,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:313,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 314
    functionName: test_deep_copy_object
    functionSourceFile: /src/jansson/test/suites/api/test_copy.c
    functionUses: 0
    functionsReached:
    - json_deep_copy
    - json_object_get
    - json_object_iter_next
    - json_equal
    - json_loads
    - strcmp
    - json_object_iter_key
    - json_decref
    - fail
    - json_object_iter
    - json_object_iter_value
    linkageType: ''
    returnType: void
    signature: void test_deep_copy_object(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_copy.c:328,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_copy.c:329,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_copy.c:329,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_copy.c:330,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_copy.c:330,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_copy.c:330,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_copy.c:331,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_copy.c:331,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_copy.c:331,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_copy.c:332,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:334,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:336,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_copy.c:338,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_copy.c:338,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_copy.c:338,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:340,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:342,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:344,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:345,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_copy.c:347,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_copy.c:348,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_copy.c:348,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_copy.c:349,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_copy.c:349,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_copy.c:349,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_copy.c:350,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_copy.c:350,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_copy.c:350,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_copy.c:351,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:353,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:355,1
    - Dst: json_array_remove
      Src: /src/jansson/test/suites/api/test_copy.c:357,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_copy.c:357,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_copy.c:357,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:359,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:361,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:363,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 365
    functionName: test_deep_copy_circular_references
    functionSourceFile: /src/jansson/test/suites/api/test_copy.c
    functionUses: 0
    functionsReached:
    - json_deep_copy
    - json_object_del
    - json_object_get
    - json_array
    - json_decref
    - fail
    - json_array_get
    - json_array_append_new
    - json_array_remove
    - json_object
    - json_object_set
    - json_array_append
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void test_deep_copy_circular_references(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_copy.c:372,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_copy.c:374,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_copy.c:375,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_copy.c:379,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_copy.c:381,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_copy.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 384
    functionName: test_deep_copy_max_depth
    functionSourceFile: /src/jansson/test/suites/api/test_copy.c
    functionUses: 0
    functionsReached:
    - json_deep_copy
    - json_array
    - json_decref
    - fail
    - json_array_append_new
    linkageType: ''
    returnType: void
    signature: void test_deep_copy_max_depth(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_copy_simple
      Src: /src/jansson/test/suites/api/test_copy.c:387,1
    - Dst: test_deep_copy_simple
      Src: /src/jansson/test/suites/api/test_copy.c:388,1
    - Dst: test_copy_array
      Src: /src/jansson/test/suites/api/test_copy.c:389,1
    - Dst: test_deep_copy_array
      Src: /src/jansson/test/suites/api/test_copy.c:390,1
    - Dst: test_copy_object
      Src: /src/jansson/test/suites/api/test_copy.c:391,1
    - Dst: test_deep_copy_object
      Src: /src/jansson/test/suites/api/test_copy.c:392,1
    - Dst: test_deep_copy_circular_references
      Src: /src/jansson/test/suites/api/test_copy.c:393,1
    - Dst: test_deep_copy_max_depth
      Src: /src/jansson/test/suites/api/test_copy.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_copy.c
    functionUses: 0
    functionsReached:
    - test_copy_simple
    - test_deep_copy_simple
    - test_copy_array
    - test_deep_copy_object
    - test_deep_copy_circular_references
    - test_deep_copy_array
    - test_copy_object
    - test_deep_copy_max_depth
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_number.c:21,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:23,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_number.c:25,1
    - Dst: json_real_set
      Src: /src/jansson/test/suites/api/test_number.c:26,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:27,1
    - Dst: json_real_value
      Src: /src/jansson/test/suites/api/test_number.c:29,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:30,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_number.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: test_inifity
    functionSourceFile: /src/jansson/test/suites/api/test_number.c
    functionUses: 1
    functionsReached:
    - json_real
    - json_decref
    - fail
    - json_real_value
    - json_real_set
    linkageType: ''
    returnType: void
    signature: void test_inifity()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_number.c:40,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_number.c:42,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:43,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_number.c:44,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:45,1
    - Dst: json_integer_set
      Src: /src/jansson/test/suites/api/test_number.c:47,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:48,1
    - Dst: json_integer_set
      Src: /src/jansson/test/suites/api/test_number.c:49,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:50,1
    - Dst: json_real_value
      Src: /src/jansson/test/suites/api/test_number.c:52,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:53,1
    - Dst: json_real_value
      Src: /src/jansson/test/suites/api/test_number.c:54,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:55,1
    - Dst: json_real_set
      Src: /src/jansson/test/suites/api/test_number.c:57,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:58,1
    - Dst: json_real_set
      Src: /src/jansson/test/suites/api/test_number.c:59,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:60,1
    - Dst: json_number_value
      Src: /src/jansson/test/suites/api/test_number.c:62,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:63,1
    - Dst: json_number_value
      Src: /src/jansson/test/suites/api/test_number.c:64,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:65,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:68,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_number.c:70,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 71
    functionName: test_bad_args
    functionSourceFile: /src/jansson/test/suites/api/test_number.c
    functionUses: 2
    functionsReached:
    - json_integer_set
    - json_number_value
    - json_decref
    - fail
    - json_integer_value
    - json_real_value
    - json_real_set
    - json_string
    linkageType: ''
    returnType: void
    signature: void test_bad_args(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_number.c:78,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_number.c:79,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:82,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:84,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_number.c:86,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:88,1
    - Dst: json_real_value
      Src: /src/jansson/test/suites/api/test_number.c:90,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:92,1
    - Dst: json_number_value
      Src: /src/jansson/test/suites/api/test_number.c:94,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:96,1
    - Dst: json_number_value
      Src: /src/jansson/test/suites/api/test_number.c:97,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:99,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_number.c:101,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_number.c:102,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_number.c:105,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:107,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_number.c:109,1
    - Dst: json_real_set
      Src: /src/jansson/test/suites/api/test_number.c:110,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:111,1
    - Dst: json_real_value
      Src: /src/jansson/test/suites/api/test_number.c:113,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_number.c:114,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_number.c:116,1
    - Dst: test_inifity
      Src: /src/jansson/test/suites/api/test_number.c:120,1
    - Dst: test_bad_args
      Src: /src/jansson/test/suites/api/test_number.c:122,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 123
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_number.c
    functionUses: 0
    functionsReached:
    - test_inifity
    - test_bad_args
    - json_number_value
    - json_real
    - json_decref
    - fail
    - json_integer
    - json_integer_value
    - json_real_value
    - json_real_set
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: fail
    functionSourceFile: /src/jansson/test/suites/api/util.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - code_
    - ','
    - texts_
    - ','
    - num_
    - ','
    - source_
    - ','
    - line_
    - ','
    - column_
    - ','
    - position_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 78
    functionName: check_errors
    functionSourceFile: /src/jansson/test/suites/api/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_errors(code_, texts_, num_, source_, line_, column_, position_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - code_
    - ','
    - text_
    - ','
    - source_
    - ','
    - line_
    - ','
    - column_
    - ','
    - position_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: check_error
    functionSourceFile: /src/jansson/test/suites/api/util.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_error(code_, text_, source_, line_, column_, position_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/jansson/test/suites/api/util.h:87,1
    - Dst: run_tests
      Src: /src/jansson/test/suites/api/util.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: main
    functionSourceFile: /src/jansson/test/suites/api/util.h
    functionUses: 14
    functionsReached:
    - run_tests
    - setlocale
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: json_sprintf
      Src: /src/jansson/test/suites/api/test_sprintf.c:6,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_sprintf.c:8,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_sprintf.c:9,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_sprintf.c:10,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_sprintf.c:11,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_sprintf.c:11,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_sprintf.c:12,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_sprintf.c:14,1
    - Dst: json_sprintf
      Src: /src/jansson/test/suites/api/test_sprintf.c:16,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_sprintf.c:18,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_sprintf.c:19,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_sprintf.c:20,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_sprintf.c:21,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_sprintf.c:22,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_sprintf.c:23,1
    - Dst: json_sprintf
      Src: /src/jansson/test/suites/api/test_sprintf.c:25,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_sprintf.c:26,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 27
    functionName: test_sprintf
    functionSourceFile: /src/jansson/test/suites/api/test_sprintf.c
    functionUses: 0
    functionsReached:
    - json_string_length
    - json_is_string
    - strcmp
    - json_string_value
    - json_sprintf
    - json_decref
    - fail
    linkageType: ''
    returnType: void
    signature: void test_sprintf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sprintf
      Src: /src/jansson/test/suites/api/test_sprintf.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_sprintf.c
    functionUses: 1
    functionsReached:
    - test_sprintf
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/jansson/test/suites/api/test_load_callback.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - buf
    - buflen
    - arg
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: greedy_reader
    functionSourceFile: /src/jansson/test/suites/api/test_load_callback.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t greedy_reader(void *buf, size_t buflen, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/jansson/test/suites/api/test_load_callback.c:40,1
    - Dst: json_load_callback
      Src: /src/jansson/test/suites/api/test_load_callback.c:43,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load_callback.c:46,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load_callback.c:47,1
    - Dst: strlen
      Src: /src/jansson/test/suites/api/test_load_callback.c:50,1
    - Dst: json_load_callback
      Src: /src/jansson/test/suites/api/test_load_callback.c:53,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load_callback.c:55,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load_callback.c:56,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_load_callback.c:59,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load_callback.c:60,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_load_callback.c:62,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load_callback.c:63,1
    - Dst: json_load_callback
      Src: /src/jansson/test/suites/api/test_load_callback.c:67,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load_callback.c:69,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load_callback.c:70,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_load_callback.c:73,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load_callback.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 77
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_load_callback.c
    functionUses: 1
    functionsReached:
    - strlen
    - strcmp
    - json_decref
    - fail
    - json_load_callback
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: chaos_malloc
    functionSourceFile: /src/jansson/test/suites/api/test_chaos_realloc.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *chaos_malloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: chaos_realloc
    functionSourceFile: /src/jansson/test/suites/api/test_chaos_realloc.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *chaos_realloc(void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: chaos_free
    functionSourceFile: /src/jansson/test/suites/api/test_chaos_realloc.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void chaos_free(void *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - condition
    - ','
    - code
    - ','
    - cleanup
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: chaos_loop
    functionSourceFile: /src/jansson/test/suites/api/test_chaos_realloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chaos_loop(condition, code, cleanup)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - json
    - ','
    - initcall
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: chaos_loop_new_value
    functionSourceFile: /src/jansson/test/suites/api/test_chaos_realloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chaos_loop_new_value(json, initcall)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:56,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:61,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:62,1
    - Dst: json_error_code
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:64,1
    - Dst: json_error_code
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:65,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:66,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:71,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:77,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 79
    functionName: test_unpack
    functionSourceFile: /src/jansson/test/suites/api/test_chaos_realloc.c
    functionUses: 0
    functionsReached:
    - strcmp
    - json_decref
    - fail
    - json_unpack_ex
    - json_pack
    - json_error_code
    linkageType: ''
    returnType: int
    signature: int test_unpack()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:82,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buffer
    - size
    - data
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: dump_chaos_callback
    functionSourceFile: /src/jansson/test/suites/api/test_chaos_realloc.c
    functionUses: 0
    functionsReached:
    - json_decref
    - json_object
    linkageType: ''
    returnType: int
    signature: int dump_chaos_callback(const char *buffer, size_t size, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:101,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:102,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:103,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:104,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:105,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:106,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:108,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:112,1
    - Dst: json_get_alloc_funcs2
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:114,1
    - Dst: json_set_alloc_funcs2
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:115,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:117,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:117,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:118,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:118,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:119,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:119,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:120,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:120,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:121,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:121,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:121,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:122,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:122,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:123,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:123,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:128,1
    - Dst: test_unpack
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:128,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:130,1
    - Dst: json_dump_callback
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:130,1
    - Dst: JSON_INDENT
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:130,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:132,1
    - Dst: json_dump_callback
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:132,1
    - Dst: JSON_INDENT
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:133,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:135,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:135,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:135,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:138,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:138,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:139,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:139,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:141,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:141,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:142,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:142,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:144,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:144,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:145,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:145,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:146,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:146,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:149,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:149,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:150,1
    - Dst: json_loadb
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:150,1
    - Dst: strlen
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:150,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:152,1
    - Dst: json_sprintf
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:152,1
    - Dst: snprintf
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:159,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:160,1
    - Dst: json_object_set_new_nocheck
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:160,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:160,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:162,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:162,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:162,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:163,1
    - Dst: json_array_insert_new
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:163,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:163,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:166,1
    - Dst: json_array_extend
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:166,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:167,1
    - Dst: json_string_set_nocheck
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:167,1
    - Dst: json_set_alloc_funcs2
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:169,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:171,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:172,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:173,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:174,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:175,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:176,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:177,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 178
    functionName: test_chaos_realloc
    functionSourceFile: /src/jansson/test/suites/api/test_chaos_realloc.c
    functionUses: 0
    functionsReached:
    - json_string_set_nocheck
    - json_incref
    - json_array_insert_new
    - json_array_extend
    - fail
    - json_array_append_new
    - json_pack
    - json_dump_callback
    - chaos_loop_new_value
    - free
    - json_object_set_new_nocheck
    - json_loadb
    - json_array
    - json_integer
    - json_object
    - test_unpack
    - json_get_alloc_funcs2
    - json_deep_copy
    - json_set_alloc_funcs2
    - strlen
    - json_dumps
    - json_real
    - json_sprintf
    - json_null
    - json_string
    - chaos_loop
    - json_loads
    - json_decref
    - json_copy
    - snprintf
    - JSON_INDENT
    linkageType: ''
    returnType: void
    signature: void test_chaos_realloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_chaos_realloc
      Src: /src/jansson/test/suites/api/test_chaos_realloc.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_chaos_realloc.c
    functionUses: 1
    functionsReached:
    - test_chaos_realloc
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:27,1
    - Dst: memcmp
      Src: /src/jansson/test/suites/api/test_fixed_size.c:28,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 33
    functionName: test_keylen_iterator
    functionSourceFile: /src/jansson/test/suites/api/test_fixed_size.c
    functionUses: 0
    functionsReached:
    - memcmp
    - fail
    linkageType: ''
    returnType: void
    signature: void test_keylen_iterator(json_t *object)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:27,1
    - Dst: memcmp
      Src: /src/jansson/test/suites/api/test_fixed_size.c:28,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: json_object_keylen_foreach
    functionSourceFile: /src/jansson/test/suites/api/test_fixed_size.c
    functionUses: 0
    functionsReached:
    - memcmp
    - fail
    linkageType: ''
    returnType: void
    signature: void json_object_keylen_foreach(object, key, keylen, value)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_fixed_size.c:36,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:42,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:43,1
    - Dst: json_object_set_new_nocheck
      Src: /src/jansson/test/suites/api/test_fixed_size.c:45,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_fixed_size.c:45,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:47,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:48,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:50,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_fixed_size.c:50,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:51,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:53,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:54,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/test/suites/api/test_fixed_size.c:56,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_fixed_size.c:56,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:57,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:59,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:60,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_fixed_size.c:62,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_fixed_size.c:62,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:63,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:65,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_fixed_size.c:65,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:66,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:68,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:69,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/test/suites/api/test_fixed_size.c:71,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_fixed_size.c:71,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:72,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:74,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:75,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:77,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_fixed_size.c:77,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:78,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:80,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:81,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/test/suites/api/test_fixed_size.c:83,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_fixed_size.c:83,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:84,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:86,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:87,1
    - Dst: test_keylen_iterator
      Src: /src/jansson/test/suites/api/test_fixed_size.c:89,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:91,1
    - Dst: json_false
      Src: /src/jansson/test/suites/api/test_fixed_size.c:91,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:92,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:94,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:95,1
    - Dst: json_object_deln
      Src: /src/jansson/test/suites/api/test_fixed_size.c:97,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:98,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:99,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:100,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:101,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:102,1
    - Dst: json_object_deln
      Src: /src/jansson/test/suites/api/test_fixed_size.c:104,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:105,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:106,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:107,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:108,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:109,1
    - Dst: json_object_deln
      Src: /src/jansson/test/suites/api/test_fixed_size.c:111,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:112,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:113,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:114,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:115,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:116,1
    - Dst: json_object_deln
      Src: /src/jansson/test/suites/api/test_fixed_size.c:118,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:119,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:120,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:121,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:122,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:123,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_fixed_size.c:125,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 126
    functionName: test_keylen
    functionSourceFile: /src/jansson/test/suites/api/test_fixed_size.c
    functionUses: 0
    functionsReached:
    - json_object_getn
    - json_object_size
    - json_object_setn_nocheck
    - test_keylen_iterator
    - json_object_get
    - json_true
    - json_object_set_new_nocheck
    - json_object_deln
    - json_false
    - json_decref
    - fail
    - json_object
    linkageType: ''
    returnType: void
    signature: void test_keylen(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_fixed_size.c:129,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_fixed_size.c:130,1
    - Dst: json_object_set_new_nocheck
      Src: /src/jansson/test/suites/api/test_fixed_size.c:133,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_fixed_size.c:133,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:135,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:136,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:138,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:139,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:141,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:142,1
    - Dst: json_object_setn_new
      Src: /src/jansson/test/suites/api/test_fixed_size.c:144,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_fixed_size.c:144,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:145,1
    - Dst: json_object_setn_new_nocheck
      Src: /src/jansson/test/suites/api/test_fixed_size.c:147,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_fixed_size.c:147,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:148,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_fixed_size.c:150,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:151,1
    - Dst: json_object_deln
      Src: /src/jansson/test/suites/api/test_fixed_size.c:153,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:154,1
    - Dst: json_object_deln
      Src: /src/jansson/test/suites/api/test_fixed_size.c:156,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:157,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_fixed_size.c:159,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_fixed_size.c:160,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 161
    functionName: test_invalid_keylen
    functionSourceFile: /src/jansson/test/suites/api/test_fixed_size.c
    functionUses: 0
    functionsReached:
    - json_object_getn
    - json_object_setn_new_nocheck
    - json_object_del
    - json_true
    - json_object_set_new_nocheck
    - json_object_deln
    - json_decref
    - fail
    - json_object_setn_new
    - json_object
    linkageType: ''
    returnType: void
    signature: void test_invalid_keylen(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_fixed_size.c:164,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/test/suites/api/test_fixed_size.c:168,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_fixed_size.c:168,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/test/suites/api/test_fixed_size.c:169,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_fixed_size.c:169,1
    - Dst: json_is_true
      Src: /src/jansson/test/suites/api/test_fixed_size.c:171,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:171,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:172,1
    - Dst: json_is_true
      Src: /src/jansson/test/suites/api/test_fixed_size.c:174,1
    - Dst: json_object_getn
      Src: /src/jansson/test/suites/api/test_fixed_size.c:174,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:175,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:177,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:178,1
    - Dst: json_object_deln
      Src: /src/jansson/test/suites/api/test_fixed_size.c:180,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:181,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:183,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:184,1
    - Dst: json_object_deln
      Src: /src/jansson/test/suites/api/test_fixed_size.c:186,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:187,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_fixed_size.c:189,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:190,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_fixed_size.c:192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 193
    functionName: test_binary_keys
    functionSourceFile: /src/jansson/test/suites/api/test_fixed_size.c
    functionUses: 0
    functionsReached:
    - json_object_getn
    - json_object_size
    - json_object_setn_nocheck
    - json_is_true
    - json_true
    - json_object_deln
    - json_decref
    - fail
    - json_object
    linkageType: ''
    returnType: void
    signature: void test_binary_keys(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_fixed_size.c:196,1
    - Dst: json_object_setn_new_nocheck
      Src: /src/jansson/test/suites/api/test_fixed_size.c:205,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_fixed_size.c:205,1
    - Dst: json_object_setn_new_nocheck
      Src: /src/jansson/test/suites/api/test_fixed_size.c:206,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_fixed_size.c:206,1
    - Dst: malloc
      Src: /src/jansson/test/suites/api/test_fixed_size.c:208,1
    - Dst: json_dumpb
      Src: /src/jansson/test/suites/api/test_fixed_size.c:210,1
    - Dst: memcmp
      Src: /src/jansson/test/suites/api/test_fixed_size.c:212,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:213,1
    - Dst: json_dumpb
      Src: /src/jansson/test/suites/api/test_fixed_size.c:215,1
    - Dst: memcmp
      Src: /src/jansson/test/suites/api/test_fixed_size.c:216,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_fixed_size.c:217,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_fixed_size.c:219,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_fixed_size.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 221
    functionName: test_dump_order
    functionSourceFile: /src/jansson/test/suites/api/test_fixed_size.c
    functionUses: 0
    functionsReached:
    - json_dumpb
    - json_object_setn_new_nocheck
    - free
    - json_decref
    - fail
    - memcmp
    - json_object
    - json_string
    - malloc
    linkageType: ''
    returnType: void
    signature: void test_dump_order(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_keylen
      Src: /src/jansson/test/suites/api/test_fixed_size.c:224,1
    - Dst: test_invalid_keylen
      Src: /src/jansson/test/suites/api/test_fixed_size.c:225,1
    - Dst: test_binary_keys
      Src: /src/jansson/test/suites/api/test_fixed_size.c:226,1
    - Dst: test_dump_order
      Src: /src/jansson/test/suites/api/test_fixed_size.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_fixed_size.c
    functionUses: 1
    functionsReached:
    - test_dump_order
    - test_keylen
    - test_binary_keys
    - test_invalid_keylen
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:15,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:16,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:19,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:21,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:23,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:23,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:24,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:24,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:25,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:26,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:28,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:29,1
    - Dst: json_object_clear
      Src: /src/jansson/test/suites/api/test_object.c:31,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:33,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:34,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:36,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:37,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 38
    functionName: test_clear
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_object_size
    - json_object_clear
    - json_decref
    - fail
    - json_integer
    - json_object
    - json_object_set
    linkageType: ''
    returnType: void
    signature: void test_clear()
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:43,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:44,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:46,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:47,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:50,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:52,1
    - Dst: json_object_update
      Src: /src/jansson/test/suites/api/test_object.c:56,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:57,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:59,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:60,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:62,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:63,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:67,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:67,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:68,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:68,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:69,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:70,1
    - Dst: json_object_update
      Src: /src/jansson/test/suites/api/test_object.c:72,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:73,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:75,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:76,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:78,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:78,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:79,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:79,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:80,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:81,1
    - Dst: json_object_update
      Src: /src/jansson/test/suites/api/test_object.c:85,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:86,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:88,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:89,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:91,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:91,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:92,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:92,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:93,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:94,1
    - Dst: json_object_clear
      Src: /src/jansson/test/suites/api/test_object.c:99,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:100,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:102,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:102,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:103,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:103,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:104,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:105,1
    - Dst: json_object_update
      Src: /src/jansson/test/suites/api/test_object.c:107,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:108,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:110,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:111,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:113,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:113,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:114,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:114,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:115,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:116,1
    - Dst: json_object_clear
      Src: /src/jansson/test/suites/api/test_object.c:119,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:120,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:122,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:122,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:123,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:123,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:124,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:125,1
    - Dst: json_object_update_new
      Src: /src/jansson/test/suites/api/test_object.c:127,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:128,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:129,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:131,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:132,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:134,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:134,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:135,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:135,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:136,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:136,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:137,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:138,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:140,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:141,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:142,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:143,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 144
    functionName: test_update
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_object_update_new
    - json_object_size
    - json_object_clear
    - json_object_get
    - json_object_update
    - json_decref
    - fail
    - json_integer
    - json_object
    - json_pack
    - json_object_set
    linkageType: ''
    returnType: void
    signature: void test_update()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:152,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:154,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_object.c:156,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:158,1
    - Dst: strlen
      Src: /src/jansson/test/suites/api/test_object.c:161,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:163,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:164,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:167,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 169
    functionName: test_set_many_keys
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - strlen
    - json_decref
    - fail
    - json_object
    - json_object_set
    - json_string
    linkageType: ''
    returnType: void
    signature: void test_set_many_keys()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:174,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:175,1
    - Dst: json_object_update_existing
      Src: /src/jansson/test/suites/api/test_object.c:177,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:178,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:180,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:181,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:183,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:183,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:184,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:186,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:186,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:187,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:189,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:192,1
    - Dst: json_object_update_existing_new
      Src: /src/jansson/test/suites/api/test_object.c:194,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:194,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:195,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:197,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:198,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:200,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:200,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:201,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:203,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:203,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:204,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:206,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:208,1
    - Dst: json_object_update_missing
      Src: /src/jansson/test/suites/api/test_object.c:210,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:211,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:213,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:214,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:216,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:216,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:217,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:219,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:219,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:220,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:222,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:222,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:223,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:225,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:228,1
    - Dst: json_object_update_missing_new
      Src: /src/jansson/test/suites/api/test_object.c:230,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:230,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:231,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:233,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:234,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:236,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:236,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:237,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:239,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:239,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:240,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:242,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:242,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:243,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:245,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:246,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 247
    functionName: test_conditional_updates
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_object_size
    - json_object_update_missing_new
    - json_object_get
    - json_object_update_existing_new
    - json_object_update_existing
    - json_decref
    - fail
    - json_integer_value
    - json_object_update_missing
    - json_pack
    linkageType: ''
    returnType: void
    signature: void test_conditional_updates()
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:252,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:254,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:255,1
    - Dst: json_object_update_recursive
      Src: /src/jansson/test/suites/api/test_object.c:257,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:258,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:260,1
    - Dst: json_object_update_recursive
      Src: /src/jansson/test/suites/api/test_object.c:262,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:263,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:265,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:266,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:268,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:268,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:269,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:271,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:271,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:272,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:274,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:274,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:275,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:277,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:278,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:280,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:281,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:282,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:285,1
    - Dst: json_object_update_recursive
      Src: /src/jansson/test/suites/api/test_object.c:287,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:288,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:290,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:291,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:293,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:294,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:296,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:296,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:296,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:297,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:299,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:301,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:304,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:306,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:307,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:310,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:311,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:312,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:312,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:312,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:313,1
    - Dst: json_object_update_recursive
      Src: /src/jansson/test/suites/api/test_object.c:315,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:316,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_object.c:318,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:318,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:318,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:319,1
    - Dst: json_object_update_recursive
      Src: /src/jansson/test/suites/api/test_object.c:321,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:322,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:324,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:325,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 326
    functionName: test_recursive_updates
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_object_size
    - json_object_get
    - json_object_update_recursive
    - json_decref
    - fail
    - json_integer
    - json_integer_value
    - json_pack
    - json_object_set
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void test_recursive_updates()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:331,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:332,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:334,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:337,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:338,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:341,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:341,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:342,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_object.c:345,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:346,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:349,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:350,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:351,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 352
    functionName: test_circular
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_dumps
    - json_decref
    - fail
    - json_object
    - json_object_set
    linkageType: ''
    returnType: void
    signature: void test_circular()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:357,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_object.c:358,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:361,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:363,1
    - Dst: json_object_set_nocheck
      Src: /src/jansson/test/suites/api/test_object.c:365,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:366,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:367,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:368,1
    - Dst: json_object_set_nocheck
      Src: /src/jansson/test/suites/api/test_object.c:371,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:372,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:373,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:374,1
    - Dst: json_object_set_new_nocheck
      Src: /src/jansson/test/suites/api/test_object.c:376,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:376,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:377,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:378,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:378,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:379,1
    - Dst: json_object_set_new_nocheck
      Src: /src/jansson/test/suites/api/test_object.c:382,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:382,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:383,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:384,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:384,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:385,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:387,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:388,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 389
    functionName: test_set_nocheck
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_object_get
    - json_object_set_nocheck
    - json_object_set_new_nocheck
    - json_decref
    - fail
    - json_integer
    - json_integer_value
    - json_object
    - json_string
    linkageType: ''
    returnType: void
    signature: void test_set_nocheck()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: json_object_iter
      Src: /src/jansson/test/suites/api/test_object.c:395,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:396,1
    - Dst: json_object_iter_next
      Src: /src/jansson/test/suites/api/test_object.c:398,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:399,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:401,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_object.c:402,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_object.c:403,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_object.c:404,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:406,1
    - Dst: json_object_iter_next
      Src: /src/jansson/test/suites/api/test_object.c:408,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:409,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:411,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:411,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:412,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:413,1
    - Dst: json_object_iter
      Src: /src/jansson/test/suites/api/test_object.c:415,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:417,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_object.c:418,1
    - Dst: json_object_iter_key
      Src: /src/jansson/test/suites/api/test_object.c:418,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:419,1
    - Dst: json_object_iter_value
      Src: /src/jansson/test/suites/api/test_object.c:420,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:421,1
    - Dst: json_object_iter_next
      Src: /src/jansson/test/suites/api/test_object.c:423,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:425,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_object.c:426,1
    - Dst: json_object_iter_key
      Src: /src/jansson/test/suites/api/test_object.c:426,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:427,1
    - Dst: json_object_iter_value
      Src: /src/jansson/test/suites/api/test_object.c:428,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:429,1
    - Dst: json_object_iter_next
      Src: /src/jansson/test/suites/api/test_object.c:431,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:433,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_object.c:434,1
    - Dst: json_object_iter_key
      Src: /src/jansson/test/suites/api/test_object.c:434,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:435,1
    - Dst: json_object_iter_value
      Src: /src/jansson/test/suites/api/test_object.c:436,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:437,1
    - Dst: json_object_iter_next
      Src: /src/jansson/test/suites/api/test_object.c:439,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:440,1
    - Dst: json_object_iter_at
      Src: /src/jansson/test/suites/api/test_object.c:442,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:443,1
    - Dst: json_object_iter_at
      Src: /src/jansson/test/suites/api/test_object.c:445,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:447,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_object.c:449,1
    - Dst: json_object_iter_key
      Src: /src/jansson/test/suites/api/test_object.c:449,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:450,1
    - Dst: json_object_iter_value
      Src: /src/jansson/test/suites/api/test_object.c:451,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:452,1
    - Dst: json_object_iter_set
      Src: /src/jansson/test/suites/api/test_object.c:454,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:455,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_object.c:457,1
    - Dst: json_object_iter_key
      Src: /src/jansson/test/suites/api/test_object.c:457,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:458,1
    - Dst: json_object_iter_value
      Src: /src/jansson/test/suites/api/test_object.c:459,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:460,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:461,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:462,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:464,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:465,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:466,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:467,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 468
    functionName: test_iterators
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_object_iter_at
    - json_object_get
    - json_object_iter_next
    - strcmp
    - json_object_iter_key
    - json_decref
    - fail
    - json_object_iter_set
    - json_object_iter
    - json_object_iter_value
    - json_object
    - json_object_set
    - json_string
    linkageType: ''
    returnType: void
    signature: void test_iterators()
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:473,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_object.c:474,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_object.c:475,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:478,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:480,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:482,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:483,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:485,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:486,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:488,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:489,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_object.c:491,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:492,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:494,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:495,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:497,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:498,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:501,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:502,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:504,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:506,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:508,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:511,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:511,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:512,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:513,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:515,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:517,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:519,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:521,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:522,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:524,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:526,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:528,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_object.c:530,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:531,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_object.c:533,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:534,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_object.c:536,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:537,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_object.c:539,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:540,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:544,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:545,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:547,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:548,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:550,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:551,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:553,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:554,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:556,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:557,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:559,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:560,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_object.c:562,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:562,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:563,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:565,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_object.c:566,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_object.c:566,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:567,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_object.c:569,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:569,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:570,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_object.c:572,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:573,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:575,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:576,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:577,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 578
    functionName: test_misc
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_object_del
    - json_object_get
    - json_is_integer
    - json_decref
    - fail
    - json_integer
    - json_integer_value
    - json_object
    - json_object_set
    - json_string
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void test_misc()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:587,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_object.c:589,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:589,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_object.c:590,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:590,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_object.c:591,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:591,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_object.c:592,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:592,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_object.c:593,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:593,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_object.c:596,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:596,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_object.c:599,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_object.c:602,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:602,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_object.c:604,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_object.c:606,1
    - Dst: fprintf
      Src: /src/jansson/test/suites/api/test_object.c:607,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:608,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_object.c:611,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 613
    functionName: test_preserve_order
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_object_del
    - json_dumps
    - free
    - strcmp
    - json_decref
    - json_integer
    - fprintf
    - fail
    - json_object
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void test_preserve_order()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:619,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:620,1
    - Dst: json_object_foreach
      Src: /src/jansson/test/suites/api/test_object.c:622,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:622,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_object.c:624,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:625,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:627,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 629
    functionName: test_object_foreach
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_equal
    - json_object_foreach
    - json_decref
    - fail
    - json_object
    - json_pack
    - json_object_set
    linkageType: ''
    returnType: void
    signature: void test_object_foreach()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_object.c:636,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_object.c:638,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:640,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:641,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 644
    functionName: test_object_foreach_safe
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_object_size
    - json_object_del
    - json_decref
    - fail
    - json_pack
    linkageType: ''
    returnType: void
    signature: void test_object_foreach_safe()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_object.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: json_object_foreach_safe
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 0
    functionsReached:
    - json_object_del
    linkageType: ''
    returnType: void
    signature: void json_object_foreach_safe(object, tmp, key, value)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:647,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_object.c:648,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:652,1
    - Dst: json_object_set
      Src: /src/jansson/test/suites/api/test_object.c:654,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_object.c:654,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:655,1
    - Dst: json_object_iter
      Src: /src/jansson/test/suites/api/test_object.c:657,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:659,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:661,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:662,1
    - Dst: json_object_size
      Src: /src/jansson/test/suites/api/test_object.c:663,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:664,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:666,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:667,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:668,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:669,1
    - Dst: json_object_get
      Src: /src/jansson/test/suites/api/test_object.c:670,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:671,1
    - Dst: json_object_set_new_nocheck
      Src: /src/jansson/test/suites/api/test_object.c:673,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_object.c:673,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:674,1
    - Dst: json_object_set_new_nocheck
      Src: /src/jansson/test/suites/api/test_object.c:676,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_object.c:676,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:677,1
    - Dst: json_object_set_new_nocheck
      Src: /src/jansson/test/suites/api/test_object.c:679,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_object.c:679,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:680,1
    - Dst: json_object_set_new_nocheck
      Src: /src/jansson/test/suites/api/test_object.c:682,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_object.c:682,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:683,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_object.c:685,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:686,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_object.c:687,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:688,1
    - Dst: json_object_del
      Src: /src/jansson/test/suites/api/test_object.c:689,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:690,1
    - Dst: json_object_clear
      Src: /src/jansson/test/suites/api/test_object.c:692,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:693,1
    - Dst: json_object_clear
      Src: /src/jansson/test/suites/api/test_object.c:694,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:695,1
    - Dst: json_object_update
      Src: /src/jansson/test/suites/api/test_object.c:697,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:698,1
    - Dst: json_object_update
      Src: /src/jansson/test/suites/api/test_object.c:700,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:701,1
    - Dst: json_object_update
      Src: /src/jansson/test/suites/api/test_object.c:703,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:704,1
    - Dst: json_object_update
      Src: /src/jansson/test/suites/api/test_object.c:706,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:707,1
    - Dst: json_object_update_existing
      Src: /src/jansson/test/suites/api/test_object.c:710,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:711,1
    - Dst: json_object_update_existing
      Src: /src/jansson/test/suites/api/test_object.c:713,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:714,1
    - Dst: json_object_update_existing
      Src: /src/jansson/test/suites/api/test_object.c:716,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:717,1
    - Dst: json_object_update_existing
      Src: /src/jansson/test/suites/api/test_object.c:719,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:720,1
    - Dst: json_object_update_missing
      Src: /src/jansson/test/suites/api/test_object.c:723,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:724,1
    - Dst: json_object_update_missing
      Src: /src/jansson/test/suites/api/test_object.c:726,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:727,1
    - Dst: json_object_update_missing
      Src: /src/jansson/test/suites/api/test_object.c:729,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:730,1
    - Dst: json_object_update_missing
      Src: /src/jansson/test/suites/api/test_object.c:732,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:733,1
    - Dst: json_object_iter
      Src: /src/jansson/test/suites/api/test_object.c:736,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:737,1
    - Dst: json_object_iter
      Src: /src/jansson/test/suites/api/test_object.c:738,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:739,1
    - Dst: json_object_iter_at
      Src: /src/jansson/test/suites/api/test_object.c:741,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:742,1
    - Dst: json_object_iter_at
      Src: /src/jansson/test/suites/api/test_object.c:743,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:744,1
    - Dst: json_object_iter_at
      Src: /src/jansson/test/suites/api/test_object.c:745,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:746,1
    - Dst: json_object_iter_next
      Src: /src/jansson/test/suites/api/test_object.c:748,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:749,1
    - Dst: json_object_iter_next
      Src: /src/jansson/test/suites/api/test_object.c:750,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:751,1
    - Dst: json_object_iter_key
      Src: /src/jansson/test/suites/api/test_object.c:753,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:754,1
    - Dst: json_object_key_to_iter
      Src: /src/jansson/test/suites/api/test_object.c:756,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:757,1
    - Dst: json_object_iter_value
      Src: /src/jansson/test/suites/api/test_object.c:759,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:760,1
    - Dst: json_object_iter_set_new
      Src: /src/jansson/test/suites/api/test_object.c:762,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_object.c:762,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:763,1
    - Dst: json_object_iter_set_new
      Src: /src/jansson/test/suites/api/test_object.c:765,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_object.c:765,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:766,1
    - Dst: json_object_iter_set_new
      Src: /src/jansson/test/suites/api/test_object.c:768,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_object.c:768,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:769,1
    - Dst: json_object_iter_set_new
      Src: /src/jansson/test/suites/api/test_object.c:770,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:771,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:774,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_object.c:777,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:779,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_object.c:780,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 781
    functionName: test_bad_args
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 3
    functionsReached:
    - json_object_size
    - json_object_clear
    - json_incref
    - fail
    - json_object_iter
    - json_object_key_to_iter
    - json_object_set
    - json_object_del
    - json_object_iter_next
    - json_object_update
    - json_object_set_new_nocheck
    - json_object_iter_key
    - json_integer
    - json_object_update_missing
    - json_object
    - json_object_iter_value
    - json_null
    - json_object_iter_at
    - json_object_get
    - json_object_iter_set_new
    - json_object_update_existing
    - json_decref
    linkageType: ''
    returnType: void
    signature: void test_bad_args(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_misc
      Src: /src/jansson/test/suites/api/test_object.c:784,1
    - Dst: test_clear
      Src: /src/jansson/test/suites/api/test_object.c:785,1
    - Dst: test_update
      Src: /src/jansson/test/suites/api/test_object.c:786,1
    - Dst: test_set_many_keys
      Src: /src/jansson/test/suites/api/test_object.c:787,1
    - Dst: test_conditional_updates
      Src: /src/jansson/test/suites/api/test_object.c:788,1
    - Dst: test_recursive_updates
      Src: /src/jansson/test/suites/api/test_object.c:789,1
    - Dst: test_circular
      Src: /src/jansson/test/suites/api/test_object.c:790,1
    - Dst: test_set_nocheck
      Src: /src/jansson/test/suites/api/test_object.c:791,1
    - Dst: test_iterators
      Src: /src/jansson/test/suites/api/test_object.c:792,1
    - Dst: test_preserve_order
      Src: /src/jansson/test/suites/api/test_object.c:793,1
    - Dst: test_object_foreach
      Src: /src/jansson/test/suites/api/test_object.c:794,1
    - Dst: test_object_foreach_safe
      Src: /src/jansson/test/suites/api/test_object.c:795,1
    - Dst: test_bad_args
      Src: /src/jansson/test/suites/api/test_object.c:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 797
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_object.c
    functionUses: 1
    functionsReached:
    - test_conditional_updates
    - test_update
    - test_object_foreach
    - test_set_many_keys
    - test_bad_args
    - test_preserve_order
    - test_misc
    - test_set_nocheck
    - test_recursive_updates
    - test_iterators
    - test_object_foreach_safe
    - test_circular
    - test_clear
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_load_file
      Src: /src/jansson/test/suites/api/test_load.c:17,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:19,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:21,1
    - Dst: strchr
      Src: /src/jansson/test/suites/api/test_load.c:26,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:28,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_load.c:32,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:33,1
    - Dst: json_error_code
      Src: /src/jansson/test/suites/api/test_load.c:34,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:35,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 36
    functionName: file_not_found
    functionSourceFile: /src/jansson/test/suites/api/test_load.c
    functionUses: 0
    functionsReached:
    - strcmp
    - fail
    - json_load_file
    - strchr
    - json_error_code
    linkageType: ''
    returnType: void
    signature: void file_not_found()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_load_file
      Src: /src/jansson/test/suites/api/test_load.c:42,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:46,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:48,1
    - Dst: strncmp
      Src: /src/jansson/test/suites/api/test_load.c:50,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:51,1
    - Dst: json_error_code
      Src: /src/jansson/test/suites/api/test_load.c:52,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: very_long_file_name
    functionSourceFile: /src/jansson/test/suites/api/test_load.c
    functionUses: 0
    functionsReached:
    - fail
    - json_load_file
    - strncmp
    - json_error_code
    linkageType: ''
    returnType: void
    signature: void very_long_file_name()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:59,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:60,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_load.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: reject_duplicates
    functionSourceFile: /src/jansson/test/suites/api/test_load.c
    functionUses: 0
    functionsReached:
    - fail
    - json_loads
    - check_error
    linkageType: ''
    returnType: void
    signature: void reject_duplicates()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:71,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:72,1
    - Dst: check_error
      Src: /src/jansson/test/suites/api/test_load.c:73,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:76,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:78,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: disable_eof_check
    functionSourceFile: /src/jansson/test/suites/api/test_load.c
    functionUses: 0
    functionsReached:
    - json_decref
    - fail
    - json_loads
    - check_error
    linkageType: ''
    returnType: void
    signature: void disable_eof_check()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:87,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_load.c:88,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:89,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load.c:90,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:92,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_load.c:93,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:94,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load.c:95,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:97,1
    - Dst: json_is_true
      Src: /src/jansson/test/suites/api/test_load.c:98,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:99,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load.c:100,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:102,1
    - Dst: json_is_null
      Src: /src/jansson/test/suites/api/test_load.c:103,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:104,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load.c:105,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 106
    functionName: decode_any
    functionSourceFile: /src/jansson/test/suites/api/test_load.c
    functionUses: 0
    functionsReached:
    - json_is_true
    - json_is_string
    - json_is_null
    - json_loads
    - json_is_integer
    - json_decref
    - fail
    linkageType: ''
    returnType: void
    signature: void decode_any()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:119,1
    - Dst: json_is_real
      Src: /src/jansson/test/suites/api/test_load.c:120,1
    - Dst: json_real_value
      Src: /src/jansson/test/suites/api/test_load.c:120,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:121,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load.c:122,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:129,1
    - Dst: json_is_real
      Src: /src/jansson/test/suites/api/test_load.c:130,1
    - Dst: json_real_value
      Src: /src/jansson/test/suites/api/test_load.c:130,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:131,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load.c:132,1
    - Dst: memset
      Src: /src/jansson/test/suites/api/test_load.c:138,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:141,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_load.c:142,1
    - Dst: json_error_code
      Src: /src/jansson/test/suites/api/test_load.c:143,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:144,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load.c:145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 146
    functionName: decode_int_as_real
    functionSourceFile: /src/jansson/test/suites/api/test_load.c
    functionUses: 0
    functionsReached:
    - strcmp
    - json_loads
    - json_decref
    - fail
    - json_is_real
    - memset
    - json_real_value
    - json_error_code
    linkageType: ''
    returnType: void
    signature: void decode_int_as_real()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:154,1
    - Dst: json_is_string
      Src: /src/jansson/test/suites/api/test_load.c:155,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:156,1
    - Dst: json_string_length
      Src: /src/jansson/test/suites/api/test_load.c:158,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:159,1
    - Dst: memcmp
      Src: /src/jansson/test/suites/api/test_load.c:161,1
    - Dst: json_string_value
      Src: /src/jansson/test/suites/api/test_load.c:161,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:162,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: allow_nul
    functionSourceFile: /src/jansson/test/suites/api/test_load.c
    functionUses: 0
    functionsReached:
    - json_string_length
    - json_is_string
    - json_string_value
    - json_loads
    - json_decref
    - fail
    - memcmp
    linkageType: ''
    returnType: void
    signature: void allow_nul()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:171,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:173,1
    - Dst: json_loadb
      Src: /src/jansson/test/suites/api/test_load.c:175,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:177,1
    - Dst: json_loadf
      Src: /src/jansson/test/suites/api/test_load.c:179,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:181,1
    - Dst: json_loadfd
      Src: /src/jansson/test/suites/api/test_load.c:183,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:185,1
    - Dst: json_load_file
      Src: /src/jansson/test/suites/api/test_load.c:187,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 190
    functionName: load_wrong_args
    functionSourceFile: /src/jansson/test/suites/api/test_load.c
    functionUses: 0
    functionsReached:
    - json_loadf
    - json_loads
    - json_loadfd
    - json_loadb
    - fail
    - json_load_file
    linkageType: ''
    returnType: void
    signature: void load_wrong_args()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:197,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:199,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load.c:200,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:202,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:204,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_load.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: position
    functionSourceFile: /src/jansson/test/suites/api/test_load.c
    functionUses: 0
    functionsReached:
    - json_decref
    - fail
    - json_loads
    linkageType: ''
    returnType: void
    signature: void position()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:210,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:212,1
    - Dst: strlen
      Src: /src/jansson/test/suites/api/test_load.c:213,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:214,1
    - Dst: json_error_code
      Src: /src/jansson/test/suites/api/test_load.c:215,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:216,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_load.c:218,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:220,1
    - Dst: strlen
      Src: /src/jansson/test/suites/api/test_load.c:221,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:222,1
    - Dst: json_error_code
      Src: /src/jansson/test/suites/api/test_load.c:223,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_load.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 225
    functionName: error_code
    functionSourceFile: /src/jansson/test/suites/api/test_load.c
    functionUses: 6
    functionsReached:
    - fail
    - json_loads
    - strlen
    - json_error_code
    linkageType: ''
    returnType: void
    signature: void error_code()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_not_found
      Src: /src/jansson/test/suites/api/test_load.c:228,1
    - Dst: very_long_file_name
      Src: /src/jansson/test/suites/api/test_load.c:229,1
    - Dst: reject_duplicates
      Src: /src/jansson/test/suites/api/test_load.c:230,1
    - Dst: disable_eof_check
      Src: /src/jansson/test/suites/api/test_load.c:231,1
    - Dst: decode_any
      Src: /src/jansson/test/suites/api/test_load.c:232,1
    - Dst: decode_int_as_real
      Src: /src/jansson/test/suites/api/test_load.c:233,1
    - Dst: allow_nul
      Src: /src/jansson/test/suites/api/test_load.c:234,1
    - Dst: load_wrong_args
      Src: /src/jansson/test/suites/api/test_load.c:235,1
    - Dst: position
      Src: /src/jansson/test/suites/api/test_load.c:236,1
    - Dst: error_code
      Src: /src/jansson/test/suites/api/test_load.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_load.c
    functionUses: 1
    functionsReached:
    - error_code
    - decode_any
    - file_not_found
    - very_long_file_name
    - disable_eof_check
    - allow_nul
    - reject_duplicates
    - decode_int_as_real
    - load_wrong_args
    - position
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/jansson/test/suites/api/test_loadb.c:16,1
    - Dst: strlen
      Src: /src/jansson/test/suites/api/test_loadb.c:16,1
    - Dst: json_loadb
      Src: /src/jansson/test/suites/api/test_loadb.c:18,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_loadb.c:20,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_loadb.c:22,1
    - Dst: json_loadb
      Src: /src/jansson/test/suites/api/test_loadb.c:24,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_loadb.c:26,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_loadb.c:27,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_loadb.c:31,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_loadb.c:33,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_loadb.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 37
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_loadb.c
    functionUses: 1
    functionsReached:
    - strlen
    - strcmp
    - json_loadb
    - json_decref
    - fail
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/jansson/test/suites/api/test_chaos.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: chaos_malloc
    functionSourceFile: /src/jansson/test/suites/api/test_chaos.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *chaos_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/jansson/test/suites/api/test_chaos.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: chaos_free
    functionSourceFile: /src/jansson/test/suites/api/test_chaos.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void chaos_free(void *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - condition
    - ','
    - code
    - ','
    - cleanup
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: chaos_loop
    functionSourceFile: /src/jansson/test/suites/api/test_chaos.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chaos_loop(condition, code, cleanup)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - json
    - ','
    - initcall
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: chaos_loop_new_value
    functionSourceFile: /src/jansson/test/suites/api/test_chaos.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chaos_loop_new_value(json, initcall)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos.c:46,1
    - Dst: json_unpack_ex
      Src: /src/jansson/test/suites/api/test_chaos.c:51,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_chaos.c:52,1
    - Dst: json_error_code
      Src: /src/jansson/test/suites/api/test_chaos.c:54,1
    - Dst: json_error_code
      Src: /src/jansson/test/suites/api/test_chaos.c:55,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_chaos.c:56,1
    - Dst: strcmp
      Src: /src/jansson/test/suites/api/test_chaos.c:61,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 69
    functionName: test_unpack
    functionSourceFile: /src/jansson/test/suites/api/test_chaos.c
    functionUses: 1
    functionsReached:
    - strcmp
    - json_decref
    - fail
    - json_unpack_ex
    - json_pack
    - json_error_code
    linkageType: ''
    returnType: int
    signature: int test_unpack()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_chaos.c:72,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buffer
    - size
    - data
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: dump_chaos_callback
    functionSourceFile: /src/jansson/test/suites/api/test_chaos.c
    functionUses: 0
    functionsReached:
    - json_decref
    - json_object
    linkageType: ''
    returnType: int
    signature: int dump_chaos_callback(const char *buffer, size_t size, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_chaos.c:90,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_chaos.c:91,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_chaos.c:92,1
    - Dst: json_string
      Src: /src/jansson/test/suites/api/test_chaos.c:93,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_chaos.c:94,1
    - Dst: json_real
      Src: /src/jansson/test/suites/api/test_chaos.c:95,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos.c:97,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_chaos.c:101,1
    - Dst: json_get_alloc_funcs
      Src: /src/jansson/test/suites/api/test_chaos.c:103,1
    - Dst: json_set_alloc_funcs
      Src: /src/jansson/test/suites/api/test_chaos.c:104,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:106,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos.c:106,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:107,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos.c:107,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:108,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos.c:108,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:109,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos.c:109,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:110,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos.c:110,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_chaos.c:110,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:111,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos.c:111,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:112,1
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_chaos.c:112,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos.c:117,1
    - Dst: test_unpack
      Src: /src/jansson/test/suites/api/test_chaos.c:117,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos.c:119,1
    - Dst: json_dump_callback
      Src: /src/jansson/test/suites/api/test_chaos.c:119,1
    - Dst: JSON_INDENT
      Src: /src/jansson/test/suites/api/test_chaos.c:119,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos.c:121,1
    - Dst: json_dump_callback
      Src: /src/jansson/test/suites/api/test_chaos.c:121,1
    - Dst: JSON_INDENT
      Src: /src/jansson/test/suites/api/test_chaos.c:122,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos.c:124,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_chaos.c:124,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_chaos.c:124,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:127,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_chaos.c:127,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:128,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_chaos.c:128,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:130,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_chaos.c:130,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:131,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/suites/api/test_chaos.c:131,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:133,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_chaos.c:133,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:134,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_chaos.c:134,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:135,1
    - Dst: json_copy
      Src: /src/jansson/test/suites/api/test_chaos.c:135,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:138,1
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_chaos.c:138,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:139,1
    - Dst: json_loadb
      Src: /src/jansson/test/suites/api/test_chaos.c:139,1
    - Dst: strlen
      Src: /src/jansson/test/suites/api/test_chaos.c:139,1
    - Dst: chaos_loop_new_value
      Src: /src/jansson/test/suites/api/test_chaos.c:141,1
    - Dst: json_sprintf
      Src: /src/jansson/test/suites/api/test_chaos.c:141,1
    - Dst: snprintf
      Src: /src/jansson/test/suites/api/test_chaos.c:148,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos.c:149,1
    - Dst: json_object_set_new_nocheck
      Src: /src/jansson/test/suites/api/test_chaos.c:149,1
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_chaos.c:149,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos.c:151,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_chaos.c:151,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_chaos.c:151,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos.c:152,1
    - Dst: json_array_insert_new
      Src: /src/jansson/test/suites/api/test_chaos.c:152,1
    - Dst: json_null
      Src: /src/jansson/test/suites/api/test_chaos.c:152,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos.c:155,1
    - Dst: json_array_extend
      Src: /src/jansson/test/suites/api/test_chaos.c:155,1
    - Dst: chaos_loop
      Src: /src/jansson/test/suites/api/test_chaos.c:156,1
    - Dst: json_string_set_nocheck
      Src: /src/jansson/test/suites/api/test_chaos.c:156,1
    - Dst: json_set_alloc_funcs
      Src: /src/jansson/test/suites/api/test_chaos.c:158,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos.c:159,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos.c:160,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos.c:161,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos.c:162,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos.c:163,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos.c:164,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_chaos.c:165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 166
    functionName: test_chaos
    functionSourceFile: /src/jansson/test/suites/api/test_chaos.c
    functionUses: 0
    functionsReached:
    - json_string_set_nocheck
    - json_incref
    - json_array_insert_new
    - json_array_extend
    - fail
    - json_array_append_new
    - json_pack
    - json_dump_callback
    - chaos_loop_new_value
    - free
    - json_object_set_new_nocheck
    - json_get_alloc_funcs
    - json_loadb
    - json_array
    - json_integer
    - json_set_alloc_funcs
    - json_object
    - test_unpack
    - json_deep_copy
    - strlen
    - json_dumps
    - json_real
    - json_sprintf
    - json_null
    - json_string
    - chaos_loop
    - json_loads
    - json_decref
    - json_copy
    - snprintf
    - JSON_INDENT
    linkageType: ''
    returnType: void
    signature: void test_chaos()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_chaos
      Src: /src/jansson/test/suites/api/test_chaos.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_chaos.c
    functionUses: 1
    functionsReached:
    - test_chaos
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/jansson/test/suites/api/test_dump_callback.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buffer
    - len
    - data
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: my_writer
    functionSourceFile: /src/jansson/test/suites/api/test_dump_callback.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int my_writer(const char *buffer, size_t len, void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/test/suites/api/test_dump_callback.c:35,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump_callback.c:37,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_dump_callback.c:40,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump_callback.c:42,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump_callback.c:43,1
    - Dst: strlen
      Src: /src/jansson/test/suites/api/test_dump_callback.c:47,1
    - Dst: malloc
      Src: /src/jansson/test/suites/api/test_dump_callback.c:48,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump_callback.c:50,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump_callback.c:51,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump_callback.c:52,1
    - Dst: json_dump_callback
      Src: /src/jansson/test/suites/api/test_dump_callback.c:55,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump_callback.c:56,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump_callback.c:57,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump_callback.c:58,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump_callback.c:59,1
    - Dst: strncmp
      Src: /src/jansson/test/suites/api/test_dump_callback.c:62,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump_callback.c:63,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump_callback.c:64,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump_callback.c:65,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump_callback.c:66,1
    - Dst: json_dump_callback
      Src: /src/jansson/test/suites/api/test_dump_callback.c:71,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump_callback.c:72,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump_callback.c:73,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump_callback.c:74,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_dump_callback.c:75,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_dump_callback.c:79,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump_callback.c:80,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_dump_callback.c:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 82
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_dump_callback.c
    functionUses: 1
    functionsReached:
    - strlen
    - json_dumps
    - free
    - json_loads
    - json_decref
    - fail
    - strncmp
    - json_dump_callback
    - malloc
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:15,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:16,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:17,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:20,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:22,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:24,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:25,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:27,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:28,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:30,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:31,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:33,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:34,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:36,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:38,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:40,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:42,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:43,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:45,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:46,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:48,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:50,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:52,1
    - Dst: json_array_set
      Src: /src/jansson/test/suites/api/test_array.c:54,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:55,1
    - Dst: json_array_set
      Src: /src/jansson/test/suites/api/test_array.c:57,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:58,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:60,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:61,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:63,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:65,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:67,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:69,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:70,1
    - Dst: json_array_set
      Src: /src/jansson/test/suites/api/test_array.c:72,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:73,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:76,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:77,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:79,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:80,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:84,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:86,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:88,1
    - Dst: json_array_set_new
      Src: /src/jansson/test/suites/api/test_array.c:91,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:91,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:92,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:94,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_array.c:95,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_array.c:95,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:96,1
    - Dst: json_array_set_new
      Src: /src/jansson/test/suites/api/test_array.c:98,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:99,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_array.c:101,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:101,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:102,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:104,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:104,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_array.c:105,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_array.c:105,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:106,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_array.c:108,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:109,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:111,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:112,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:113,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 114
    functionName: test_misc
    functionSourceFile: /src/jansson/test/suites/api/test_array.c
    functionUses: 1
    functionsReached:
    - json_array_set
    - json_array_set_new
    - json_is_integer
    - json_array
    - json_array_get
    - json_integer
    - fail
    - json_array_size
    - json_integer_value
    - json_array_append_new
    - json_decref
    - json_array_append
    linkageType: ''
    returnType: void
    signature: void test_misc(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:120,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:121,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:122,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:123,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:126,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:128,1
    - Dst: json_array_insert
      Src: /src/jansson/test/suites/api/test_array.c:130,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:131,1
    - Dst: json_array_insert
      Src: /src/jansson/test/suites/api/test_array.c:133,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:134,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:136,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:137,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:139,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:140,1
    - Dst: json_array_insert
      Src: /src/jansson/test/suites/api/test_array.c:142,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:143,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:145,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:146,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:148,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:149,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:151,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:152,1
    - Dst: json_array_insert
      Src: /src/jansson/test/suites/api/test_array.c:154,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:155,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:157,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:158,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:160,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:161,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:163,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:164,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:166,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:167,1
    - Dst: json_array_insert_new
      Src: /src/jansson/test/suites/api/test_array.c:169,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:169,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:170,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:172,1
    - Dst: json_is_integer
      Src: /src/jansson/test/suites/api/test_array.c:173,1
    - Dst: json_integer_value
      Src: /src/jansson/test/suites/api/test_array.c:173,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:174,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:176,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:177,1
    - Dst: json_array_insert
      Src: /src/jansson/test/suites/api/test_array.c:180,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:181,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:185,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:186,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:189,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:190,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:192,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:193,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:194,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:195,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 196
    functionName: test_insert
    functionSourceFile: /src/jansson/test/suites/api/test_array.c
    functionUses: 0
    functionsReached:
    - json_array_insert
    - json_is_integer
    - json_array
    - json_array_insert_new
    - json_array_get
    - json_integer
    - fail
    - json_array_size
    - json_integer_value
    - json_decref
    linkageType: ''
    returnType: void
    signature: void test_insert(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:202,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:203,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:204,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:207,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:209,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:211,1
    - Dst: json_array_remove
      Src: /src/jansson/test/suites/api/test_array.c:213,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:214,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:216,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:217,1
    - Dst: json_array_remove
      Src: /src/jansson/test/suites/api/test_array.c:219,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:220,1
    - Dst: json_array_remove
      Src: /src/jansson/test/suites/api/test_array.c:222,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:223,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:225,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:226,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:228,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:228,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:229,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:229,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:230,1
    - Dst: json_array_remove
      Src: /src/jansson/test/suites/api/test_array.c:232,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:233,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:235,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:236,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:238,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:238,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:239,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:240,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:242,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:244,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:246,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:247,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:249,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:250,1
    - Dst: json_array_remove
      Src: /src/jansson/test/suites/api/test_array.c:253,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:255,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:256,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:257,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 258
    functionName: test_remove
    functionSourceFile: /src/jansson/test/suites/api/test_array.c
    functionUses: 0
    functionsReached:
    - json_array
    - json_array_get
    - json_array_remove
    - json_integer
    - fail
    - json_array_size
    - json_decref
    - json_array_append
    linkageType: ''
    returnType: void
    signature: void test_remove(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:264,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:265,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:266,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:269,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:271,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:274,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:275,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:278,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:279,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:282,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:283,1
    - Dst: json_array_clear
      Src: /src/jansson/test/suites/api/test_array.c:285,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:286,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:288,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:289,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:291,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:292,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:293,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 294
    functionName: test_clear
    functionSourceFile: /src/jansson/test/suites/api/test_array.c
    functionUses: 1
    functionsReached:
    - json_array_clear
    - json_array
    - json_decref
    - json_integer
    - fail
    - json_array_size
    - json_array_append
    linkageType: ''
    returnType: void
    signature: void test_clear(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:300,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:301,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:302,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:303,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:306,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:308,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:311,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:312,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:315,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:316,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:319,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:319,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:320,1
    - Dst: json_array_extend
      Src: /src/jansson/test/suites/api/test_array.c:322,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:323,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:326,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:327,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:330,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:331,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:334,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:335,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:336,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:337,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 338
    functionName: test_extend
    functionSourceFile: /src/jansson/test/suites/api/test_array.c
    functionUses: 0
    functionsReached:
    - json_array
    - json_array_extend
    - json_integer
    - fail
    - json_array_size
    - json_array_get
    - json_decref
    - json_array_append
    linkageType: ''
    returnType: void
    signature: void test_extend(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:345,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:347,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:349,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:350,1
    - Dst: json_array_insert
      Src: /src/jansson/test/suites/api/test_array.c:352,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:353,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_array.c:355,1
    - Dst: json_true
      Src: /src/jansson/test/suites/api/test_array.c:355,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:356,1
    - Dst: json_array_set
      Src: /src/jansson/test/suites/api/test_array.c:358,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:359,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:361,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:365,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:366,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:368,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:370,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:370,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:371,1
    - Dst: json_dumps
      Src: /src/jansson/test/suites/api/test_array.c:374,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:375,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:378,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:379,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:380,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 381
    functionName: test_circular
    functionSourceFile: /src/jansson/test/suites/api/test_array.c
    functionUses: 1
    functionsReached:
    - json_array_insert
    - json_dumps
    - json_true
    - json_array_set
    - json_array
    - json_decref
    - fail
    - json_array_append_new
    - json_array_append
    linkageType: ''
    returnType: void
    signature: void test_circular()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_array.c:387,1
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:388,1
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:390,1
    - Dst: json_equal
      Src: /src/jansson/test/suites/api/test_array.c:392,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:393,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:395,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 397
    functionName: test_array_foreach
    functionSourceFile: /src/jansson/test/suites/api/test_array.c
    functionUses: 0
    functionsReached:
    - json_equal
    - json_array
    - json_decref
    - fail
    - json_pack
    - json_array_append
    linkageType: ''
    returnType: void
    signature: void test_array_foreach()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_array_append
      Src: /src/jansson/test/suites/api/test_array.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: json_array_foreach
    functionSourceFile: /src/jansson/test/suites/api/test_array.c
    functionUses: 0
    functionsReached:
    - json_array_append
    linkageType: ''
    returnType: void
    signature: void json_array_foreach(array1, index, value)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/test/suites/api/test_array.c:400,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_array.c:401,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:404,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:406,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:407,1
    - Dst: json_array_size
      Src: /src/jansson/test/suites/api/test_array.c:408,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:409,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:411,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:412,1
    - Dst: json_array_get
      Src: /src/jansson/test/suites/api/test_array.c:413,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:414,1
    - Dst: json_array_set_new
      Src: /src/jansson/test/suites/api/test_array.c:416,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_array.c:416,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:417,1
    - Dst: json_array_set_new
      Src: /src/jansson/test/suites/api/test_array.c:418,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_array.c:418,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:419,1
    - Dst: json_array_set_new
      Src: /src/jansson/test/suites/api/test_array.c:420,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:421,1
    - Dst: json_array_set_new
      Src: /src/jansson/test/suites/api/test_array.c:422,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_array.c:422,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:423,1
    - Dst: json_array_remove
      Src: /src/jansson/test/suites/api/test_array.c:425,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:426,1
    - Dst: json_array_remove
      Src: /src/jansson/test/suites/api/test_array.c:427,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:428,1
    - Dst: json_array_clear
      Src: /src/jansson/test/suites/api/test_array.c:430,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:431,1
    - Dst: json_array_clear
      Src: /src/jansson/test/suites/api/test_array.c:432,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:433,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_array.c:435,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_array.c:435,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:436,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_array.c:437,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_array.c:437,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:438,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_array.c:439,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:440,1
    - Dst: json_array_append_new
      Src: /src/jansson/test/suites/api/test_array.c:441,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_array.c:441,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:442,1
    - Dst: json_array_insert_new
      Src: /src/jansson/test/suites/api/test_array.c:444,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_array.c:444,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:445,1
    - Dst: json_array_insert_new
      Src: /src/jansson/test/suites/api/test_array.c:446,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_array.c:446,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:447,1
    - Dst: json_array_insert_new
      Src: /src/jansson/test/suites/api/test_array.c:448,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:449,1
    - Dst: json_array_insert_new
      Src: /src/jansson/test/suites/api/test_array.c:450,1
    - Dst: json_incref
      Src: /src/jansson/test/suites/api/test_array.c:450,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:451,1
    - Dst: json_array_extend
      Src: /src/jansson/test/suites/api/test_array.c:453,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:454,1
    - Dst: json_array_extend
      Src: /src/jansson/test/suites/api/test_array.c:456,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:457,1
    - Dst: json_array_extend
      Src: /src/jansson/test/suites/api/test_array.c:459,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:460,1
    - Dst: json_array_extend
      Src: /src/jansson/test/suites/api/test_array.c:462,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:463,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:467,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_array.c:469,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:471,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_array.c:472,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 473
    functionName: test_bad_args
    functionSourceFile: /src/jansson/test/suites/api/test_array.c
    functionUses: 4
    functionsReached:
    - json_array_clear
    - json_array_set_new
    - json_incref
    - json_array
    - json_array_insert_new
    - json_array_get
    - json_integer
    - fail
    - json_array_size
    - json_array_remove
    - json_array_append_new
    - json_array_extend
    - json_decref
    linkageType: ''
    returnType: void
    signature: void test_bad_args(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_misc
      Src: /src/jansson/test/suites/api/test_array.c:476,1
    - Dst: test_insert
      Src: /src/jansson/test/suites/api/test_array.c:477,1
    - Dst: test_remove
      Src: /src/jansson/test/suites/api/test_array.c:478,1
    - Dst: test_clear
      Src: /src/jansson/test/suites/api/test_array.c:479,1
    - Dst: test_extend
      Src: /src/jansson/test/suites/api/test_array.c:480,1
    - Dst: test_circular
      Src: /src/jansson/test/suites/api/test_array.c:481,1
    - Dst: test_array_foreach
      Src: /src/jansson/test/suites/api/test_array.c:482,1
    - Dst: test_bad_args
      Src: /src/jansson/test/suites/api/test_array.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 484
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_array.c
    functionUses: 1
    functionsReached:
    - test_bad_args
    - test_insert
    - test_array_foreach
    - test_extend
    - test_misc
    - test_remove
    - test_circular
    - test_clear
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pack
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:15,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: create_and_free_complex_object
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 2
    functionsReached:
    - json_decref
    - json_pack
    linkageType: ''
    returnType: void
    signature: void create_and_free_complex_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:24,1
    - Dst: snprintf
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:27,1
    - Dst: json_object_set_new
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:28,1
    - Dst: json_integer
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:28,1
    - Dst: json_decref
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: create_and_free_object_with_oom
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 1
    functionsReached:
    - json_decref
    - json_integer
    - snprintf
    - json_object
    - json_object_set_new
    linkageType: ''
    returnType: void
    signature: void create_and_free_object_with_oom()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: my_malloc
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *my_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: my_free
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void my_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: my_realloc
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *my_realloc(void *ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_set_alloc_funcs2
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:54,1
    - Dst: json_get_alloc_funcs2
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:55,1
    - Dst: create_and_free_complex_object
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:56,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: test_simple2
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - json_get_alloc_funcs2
    - create_and_free_complex_object
    - fail
    - json_set_alloc_funcs2
    linkageType: ''
    returnType: void
    signature: void test_simple2()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: oom_malloc
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *oom_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: oom_free
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void oom_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: oom_realloc
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *oom_realloc(void *ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_set_alloc_funcs2
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:88,1
    - Dst: create_and_free_object_with_oom
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:89,1
    - Dst: fail
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: test_oom2
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - create_and_free_object_with_oom
    - fail
    - json_set_alloc_funcs2
    linkageType: ''
    returnType: void
    signature: void test_oom2()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: secure_malloc
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *secure_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: secure_realloc
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *secure_realloc(void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:123,1
    - Dst: free
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: secure_free
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void secure_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_set_alloc_funcs2
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:128,1
    - Dst: create_and_free_complex_object
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: test_secure_funcs2
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - create_and_free_complex_object
    - json_set_alloc_funcs2
    linkageType: ''
    returnType: void
    signature: void test_secure_funcs2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_get_alloc_funcs2
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: test_bad_args2
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 0
    functionsReached:
    - json_get_alloc_funcs2
    linkageType: ''
    returnType: void
    signature: void test_bad_args2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_simple2
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:138,1
    - Dst: test_secure_funcs2
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:139,1
    - Dst: test_oom2
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:140,1
    - Dst: test_bad_args2
      Src: /src/jansson/test/suites/api/test_memory_funcs_realloc.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: run_tests
    functionSourceFile: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
    functionUses: 1
    functionsReached:
    - test_oom2
    - test_simple2
    - test_bad_args2
    - test_secure_funcs2
    linkageType: ''
    returnType: void
    signature: void run_tests()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: json_loadb
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:29,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:35,1
    - Dst: json_decref
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:37,1
    - Dst: json_dumps
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:48,1
    - Dst: json_loads
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:51,1
    - Dst: json_decref
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:53,1
    - Dst: free
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:54,1
    - Dst: json_is_object
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:58,1
    - Dst: json_object_iter
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:62,1
    - Dst: json_object_iter_key
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:64,1
    - Dst: json_object_iter_value
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:65,1
    - Dst: json_unpack
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:72,1
    - Dst: json_unpack
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:76,1
    - Dst: json_is_array
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:80,1
    - Dst: json_array_size
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:80,1
    - Dst: json_unpack
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:82,1
    - Dst: json_decref
      Src: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc:85,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 87
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc
    functionUses: 2
    functionsReached:
    - json_deep_copy
    - json_dumps
    - free
    - json_is_object
    - json_loads
    - json_unpack
    - json_loadb
    - json_object_iter_key
    - json_decref
    - json_array_size
    - json_object_iter
    - json_object_iter_value
    - json_is_array
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - d
    - s
    argTypes:
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: u8
    functionSourceFile: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t u8(const uint8_t **d, size_t *s)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: u8
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:36,1
    - Dst: u8
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:37,1
    - Dst: json_loadb
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:53,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:60,1
    - Dst: json_equal
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:62,1
    - Dst: json_decref
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:63,1
    - Dst: json_copy
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:69,1
    - Dst: json_equal
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:71,1
    - Dst: json_decref
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:72,1
    - Dst: json_equal
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:78,1
    - Dst: json_is_object
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:83,1
    - Dst: json_object
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:84,1
    - Dst: json_object_update
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:86,1
    - Dst: json_decref
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:87,1
    - Dst: json_is_object
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:94,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:95,1
    - Dst: json_deep_copy
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:97,1
    - Dst: json_object_update_existing
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:99,1
    - Dst: json_decref
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:100,1
    - Dst: json_decref
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:102,1
    - Dst: json_decref
      Src: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc:109,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 111
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc
    functionUses: 2
    functionsReached:
    - u8
    - json_deep_copy
    - json_is_object
    - json_equal
    - json_object_update
    - json_object_update_existing
    - json_loadb
    - json_decref
    - json_copy
    - json_object
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:19,1
    - Dst: fopen
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:22,1
    - Dst: printf
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:28,1
    - Dst: fseek
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:31,1
    - Dst: ftell
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:32,1
    - Dst: fseek
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:35,1
    - Dst: calloc
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:38,1
    - Dst: fread
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:42,1
    - Dst: printf
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:43,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:46,1
    - Dst: printf
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:48,1
    - Dst: free
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:51,1
    - Dst: fprintf
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:56,1
    - Dst: fclose
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:63,1
    - Dst: fprintf
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:69,1
    - Dst: printf
      Src: /src/jansson/test/ossfuzz/standaloneengine.cc:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 74
    functionName: main
    functionSourceFile: /src/jansson/test/ossfuzz/standaloneengine.cc
    functionUses: 14
    functionsReached:
    - fclose
    - ftell
    - printf
    - free
    - fread
    - fopen
    - fseek
    - calloc
    - fprintf
    - LLVMFuzzerTestOneInput
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FMT
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: FUZZ_DEBUG
    functionSourceFile: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUZZ_DEBUG(FMT, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint64_t *>
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buffer
    - size
    - data
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: json_dump_counter
    functionSourceFile: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint64_t *>
    linkageType: ''
    returnType: int
    signature: int json_dump_counter(const char *buffer, size_t size, void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:37,1
    - Dst: FUZZ_DEBUG
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:39,1
    - Dst: FUZZ_DEBUG
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:50,1
    - Dst: FUZZ_DEBUG
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:67,1
    - Dst: FUZZ_DEBUG
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:92,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:98,1
    - Dst: json_loadb
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:99,1
    - Dst: json_dumps
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:109,1
    - Dst: free
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:112,1
    - Dst: json_dump_callback
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:122,1
    - Dst: FUZZ_DEBUG
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:123,1
    - Dst: json_decref
      Src: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 132
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc
    functionUses: 3
    functionsReached:
    - json_dumps
    - free
    - json_loadb
    - FUZZ_DEBUG
    - json_decref
    - getenv
    - json_dump_callback
    - reinterpret_cast<const char *>
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/jansson/doc/github_commits.c:22,1
    - Dst: strlen
      Src: /src/jansson/doc/github_commits.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: newline_offset
    functionSourceFile: /src/jansson/doc/github_commits.c
    functionUses: 0
    functionsReached:
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int newline_offset(const char *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:38,1
    - Dst: memcpy
      Src: /src/jansson/doc/github_commits.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: write_response
    functionSourceFile: /src/jansson/doc/github_commits.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fprintf
    linkageType: ''
    returnType: size_t
    signature: size_t write_response(void *ptr, size_t size, size_t nmemb, void *stream)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/jansson/doc/github_commits.c:55,1
    - Dst: curl_easy_init
      Src: /src/jansson/doc/github_commits.c:56,1
    - Dst: malloc
      Src: /src/jansson/doc/github_commits.c:60,1
    - Dst: curl_easy_setopt
      Src: /src/jansson/doc/github_commits.c:66,1
    - Dst: curl_slist_append
      Src: /src/jansson/doc/github_commits.c:69,1
    - Dst: curl_easy_setopt
      Src: /src/jansson/doc/github_commits.c:70,1
    - Dst: curl_easy_setopt
      Src: /src/jansson/doc/github_commits.c:72,1
    - Dst: curl_easy_setopt
      Src: /src/jansson/doc/github_commits.c:73,1
    - Dst: curl_easy_perform
      Src: /src/jansson/doc/github_commits.c:75,1
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:77,1
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:78,1
    - Dst: curl_easy_strerror
      Src: /src/jansson/doc/github_commits.c:78,1
    - Dst: curl_easy_getinfo
      Src: /src/jansson/doc/github_commits.c:82,1
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:84,1
    - Dst: curl_easy_cleanup
      Src: /src/jansson/doc/github_commits.c:88,1
    - Dst: curl_slist_free_all
      Src: /src/jansson/doc/github_commits.c:89,1
    - Dst: curl_global_cleanup
      Src: /src/jansson/doc/github_commits.c:90,1
    - Dst: free
      Src: /src/jansson/doc/github_commits.c:99,1
    - Dst: curl_easy_cleanup
      Src: /src/jansson/doc/github_commits.c:101,1
    - Dst: curl_slist_free_all
      Src: /src/jansson/doc/github_commits.c:103,1
    - Dst: curl_global_cleanup
      Src: /src/jansson/doc/github_commits.c:104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 106
    functionName: request
    functionSourceFile: /src/jansson/doc/github_commits.c
    functionUses: 117
    functionsReached:
    - curl_easy_setopt
    - curl_easy_getinfo
    - curl_global_cleanup
    - free
    - curl_easy_strerror
    - curl_slist_append
    - curl_global_init
    - curl_easy_cleanup
    - curl_easy_perform
    - fprintf
    - curl_slist_free_all
    - curl_easy_init
    - malloc
    linkageType: ''
    returnType: char
    signature: char *request(const char *url)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:117,1
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:118,1
    - Dst: snprintf
      Src: /src/jansson/doc/github_commits.c:122,1
    - Dst: request
      Src: /src/jansson/doc/github_commits.c:124,1
    - Dst: json_loads
      Src: /src/jansson/doc/github_commits.c:128,1
    - Dst: free
      Src: /src/jansson/doc/github_commits.c:129,1
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:132,1
    - Dst: json_is_array
      Src: /src/jansson/doc/github_commits.c:136,1
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:137,1
    - Dst: json_decref
      Src: /src/jansson/doc/github_commits.c:138,1
    - Dst: json_array_size
      Src: /src/jansson/doc/github_commits.c:142,1
    - Dst: json_array_get
      Src: /src/jansson/doc/github_commits.c:146,1
    - Dst: json_is_object
      Src: /src/jansson/doc/github_commits.c:147,1
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:148,1
    - Dst: json_decref
      Src: /src/jansson/doc/github_commits.c:149,1
    - Dst: json_object_get
      Src: /src/jansson/doc/github_commits.c:153,1
    - Dst: json_is_string
      Src: /src/jansson/doc/github_commits.c:154,1
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:155,1
    - Dst: json_decref
      Src: /src/jansson/doc/github_commits.c:156,1
    - Dst: json_object_get
      Src: /src/jansson/doc/github_commits.c:160,1
    - Dst: json_is_object
      Src: /src/jansson/doc/github_commits.c:161,1
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:162,1
    - Dst: json_decref
      Src: /src/jansson/doc/github_commits.c:163,1
    - Dst: json_object_get
      Src: /src/jansson/doc/github_commits.c:167,1
    - Dst: json_is_string
      Src: /src/jansson/doc/github_commits.c:168,1
    - Dst: fprintf
      Src: /src/jansson/doc/github_commits.c:169,1
    - Dst: json_decref
      Src: /src/jansson/doc/github_commits.c:170,1
    - Dst: json_string_value
      Src: /src/jansson/doc/github_commits.c:174,1
    - Dst: printf
      Src: /src/jansson/doc/github_commits.c:175,1
    - Dst: json_string_value
      Src: /src/jansson/doc/github_commits.c:175,1
    - Dst: newline_offset
      Src: /src/jansson/doc/github_commits.c:175,1
    - Dst: json_decref
      Src: /src/jansson/doc/github_commits.c:179,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 181
    functionName: main
    functionSourceFile: /src/jansson/doc/github_commits.c
    functionUses: 14
    functionsReached:
    - newline_offset
    - json_is_string
    - json_object_get
    - free
    - json_is_object
    - json_string_value
    - json_loads
    - printf
    - json_decref
    - request
    - json_array_get
    - json_array_size
    - snprintf
    - fprintf
    - json_is_array
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_malloc
      Src: /src/jansson/src/strbuffer.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - strbuff
    argTypes:
    - strbuffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: strbuffer_init
    functionSourceFile: /src/jansson/src/strbuffer.c
    functionUses: 0
    functionsReached:
    - jsonp_malloc
    linkageType: ''
    returnType: int
    signature: int strbuffer_init(strbuffer_t *strbuff)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_free
      Src: /src/jansson/src/strbuffer.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - strbuff
    argTypes:
    - strbuffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: strbuffer_close
    functionSourceFile: /src/jansson/src/strbuffer.c
    functionUses: 0
    functionsReached:
    - jsonp_free
    linkageType: ''
    returnType: void
    signature: void strbuffer_close(strbuffer_t *strbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - strbuff
    argTypes:
    - strbuffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: strbuffer_clear
    functionSourceFile: /src/jansson/src/strbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strbuffer_clear(strbuffer_t *strbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - strbuff
    argTypes:
    - strbuffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: strbuffer_value
    functionSourceFile: /src/jansson/src/strbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *strbuffer_value(const strbuffer_t *strbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - strbuff
    argTypes:
    - strbuffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: strbuffer_steal_value
    functionSourceFile: /src/jansson/src/strbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *strbuffer_steal_value(strbuffer_t *strbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuffer_append_bytes
      Src: /src/jansson/src/strbuffer.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - strbuff
    - byte
    argTypes:
    - strbuffer_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: strbuffer_append_byte
    functionSourceFile: /src/jansson/src/strbuffer.c
    functionUses: 0
    functionsReached:
    - strbuffer_append_bytes
    linkageType: ''
    returnType: int
    signature: int strbuffer_append_byte(strbuffer_t *strbuff, char byte)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/jansson/src/strbuffer.c:71,1
    - Dst: jsonp_realloc
      Src: /src/jansson/src/strbuffer.c:73,1
    - Dst: memcpy
      Src: /src/jansson/src/strbuffer.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - strbuff
    - data
    - size
    argTypes:
    - strbuffer_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 86
    functionName: strbuffer_append_bytes
    functionSourceFile: /src/jansson/src/strbuffer.c
    functionUses: 1
    functionsReached:
    - jsonp_realloc
    - memcpy
    - max
    linkageType: ''
    returnType: int
    signature: int strbuffer_append_bytes(strbuffer_t *strbuff, const char *data,
      size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - strbuff
    argTypes:
    - strbuffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: strbuffer_pop
    functionSourceFile: /src/jansson/src/strbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char strbuffer_pop(strbuffer_t *strbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: buf_to_uint32
    functionSourceFile: /src/jansson/src/hashtable_seed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t buf_to_uint32(char *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/jansson/src/hashtable_seed.c:68,1
    - Dst: read
      Src: /src/jansson/src/hashtable_seed.c:72,1
    - Dst: close
      Src: /src/jansson/src/hashtable_seed.c:73,1
    - Dst: fopen
      Src: /src/jansson/src/hashtable_seed.c:77,1
    - Dst: fread
      Src: /src/jansson/src/hashtable_seed.c:81,1
    - Dst: fclose
      Src: /src/jansson/src/hashtable_seed.c:82,1
    - Dst: buf_to_uint32
      Src: /src/jansson/src/hashtable_seed.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - seed
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 90
    functionName: seed_from_urandom
    functionSourceFile: /src/jansson/src/hashtable_seed.c
    functionUses: 0
    functionsReached:
    - fclose
    - close
    - fread
    - open
    - fopen
    - read
    - buf_to_uint32
    linkageType: ''
    returnType: int
    signature: int seed_from_urandom(uint32_t *seed)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandle
      Src: /src/jansson/src/hashtable_seed.c:112,1
    - Dst: TEXT
      Src: /src/jansson/src/hashtable_seed.c:112,1
    - Dst: GetProcAddress
      Src: /src/jansson/src/hashtable_seed.c:117,1
    - Dst: GetProcAddress
      Src: /src/jansson/src/hashtable_seed.c:121,1
    - Dst: GetProcAddress
      Src: /src/jansson/src/hashtable_seed.c:126,1
    - Dst: pCryptAcquireContext
      Src: /src/jansson/src/hashtable_seed.c:130,1
    - Dst: pCryptGenRandom
      Src: /src/jansson/src/hashtable_seed.c:134,1
    - Dst: pCryptReleaseContext
      Src: /src/jansson/src/hashtable_seed.c:135,1
    - Dst: buf_to_uint32
      Src: /src/jansson/src/hashtable_seed.c:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - seed
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 142
    functionName: seed_from_windows_cryptoapi
    functionSourceFile: /src/jansson/src/hashtable_seed.c
    functionUses: 0
    functionsReached:
    - TEXT
    - GetProcAddress
    - GetModuleHandle
    - pCryptGenRandom
    - pCryptAcquireContext
    - pCryptReleaseContext
    - buf_to_uint32
    linkageType: ''
    returnType: int
    signature: int seed_from_windows_cryptoapi(uint32_t *seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/jansson/src/hashtable_seed.c:150,1
    - Dst: time
      Src: /src/jansson/src/hashtable_seed.c:154,1
    - Dst: GetCurrentProcessId
      Src: /src/jansson/src/hashtable_seed.c:159,1
    - Dst: getpid
      Src: /src/jansson/src/hashtable_seed.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - seed
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 165
    functionName: seed_from_timestamp_and_pid
    functionSourceFile: /src/jansson/src/hashtable_seed.c
    functionUses: 0
    functionsReached:
    - getpid
    - GetCurrentProcessId
    - gettimeofday
    - time
    linkageType: ''
    returnType: int
    signature: int seed_from_timestamp_and_pid(uint32_t *seed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: seed_from_urandom
      Src: /src/jansson/src/hashtable_seed.c:172,1
    - Dst: seed_from_windows_cryptoapi
      Src: /src/jansson/src/hashtable_seed.c:177,1
    - Dst: seed_from_timestamp_and_pid
      Src: /src/jansson/src/hashtable_seed.c:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 192
    functionName: generate_seed
    functionSourceFile: /src/jansson/src/hashtable_seed.c
    functionUses: 0
    functionsReached:
    - seed_from_windows_cryptoapi
    - seed_from_urandom
    - seed_from_timestamp_and_pid
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t generate_seed()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_test_and_set
      Src: /src/jansson/src/hashtable_seed.c:203,1
    - Dst: generate_seed
      Src: /src/jansson/src/hashtable_seed.c:206,1
    - Dst: __atomic_store_n
      Src: /src/jansson/src/hashtable_seed.c:208,1
    - Dst: sched_yield
      Src: /src/jansson/src/hashtable_seed.c:213,1
    - Dst: __atomic_load_n
      Src: /src/jansson/src/hashtable_seed.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - seed
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 218
    functionName: json_object_seed
    functionSourceFile: /src/jansson/src/hashtable_seed.c
    functionUses: 1
    functionsReached:
    - generate_seed
    - __atomic_store_n
    - sched_yield
    - __atomic_test_and_set
    - __atomic_load_n
    linkageType: ''
    returnType: void
    signature: void json_object_seed(size_t seed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: generate_seed
      Src: /src/jansson/src/hashtable_seed.c:229,1
    - Dst: __sync_bool_compare_and_swap
      Src: /src/jansson/src/hashtable_seed.c:233,1
    - Dst: sched_yield
      Src: /src/jansson/src/hashtable_seed.c:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - seed
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 244
    functionName: json_object_seed
    functionSourceFile: /src/jansson/src/hashtable_seed.c
    functionUses: 1
    functionsReached:
    - generate_seed
    - sched_yield
    - __sync_bool_compare_and_swap
    linkageType: ''
    returnType: void
    signature: void json_object_seed(size_t seed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedIncrement
      Src: /src/jansson/src/hashtable_seed.c:251,1
    - Dst: generate_seed
      Src: /src/jansson/src/hashtable_seed.c:254,1
    - Dst: SwitchToThread
      Src: /src/jansson/src/hashtable_seed.c:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - seed
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 264
    functionName: json_object_seed
    functionSourceFile: /src/jansson/src/hashtable_seed.c
    functionUses: 1
    functionsReached:
    - InterlockedIncrement
    - generate_seed
    - SwitchToThread
    linkageType: ''
    returnType: void
    signature: void json_object_seed(size_t seed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generate_seed
      Src: /src/jansson/src/hashtable_seed.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - seed
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 276
    functionName: json_object_seed
    functionSourceFile: /src/jansson/src/hashtable_seed.c
    functionUses: 1
    functionsReached:
    - generate_seed
    linkageType: ''
    returnType: void
    signature: void json_object_seed(size_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: isnan
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE isnan(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/jansson/src/value.c:37,1
    - Dst: isnan
      Src: /src/jansson/src/value.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: isinf
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - isnan
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE isinf(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - json
    - type
    argTypes:
    - json_t*
    - json_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: json_init
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_init(json_t *json, json_type type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/jansson/src/value.c:50,1
    - Dst: hashtable_get
      Src: /src/jansson/src/value.c:55,1
    - Dst: hashtable_set
      Src: /src/jansson/src/value.c:58,1
    - Dst: json_null
      Src: /src/jansson/src/value.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - parents
    - json
    - key
    - key_size
    - key_len_out
    argTypes:
    - hashtable_t*
    - json_t*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: jsonp_loop_check
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - snprintf
    - hashtable_set
    - hashtable_get
    - json_null
    linkageType: ''
    returnType: int
    signature: "int jsonp_loop_check(hashtable_t *parents, const json_t *json, char
      *key, size_t key_size,\n                     size_t *key_len_out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_malloc
      Src: /src/jansson/src/value.c:66,1
    - Dst: json_object_seed
      Src: /src/jansson/src/value.c:72,1
    - Dst: json_init
      Src: /src/jansson/src/value.c:75,1
    - Dst: hashtable_init
      Src: /src/jansson/src/value.c:77,1
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: json_object
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 66
    functionsReached:
    - json_object_seed
    - jsonp_free
    - json_init
    - hashtable_init
    - jsonp_malloc
    linkageType: ''
    returnType: json_t
    signature: json_t *json_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_close
      Src: /src/jansson/src/value.c:86,1
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - json_object_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: json_delete_object
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - jsonp_free
    - hashtable_close
    linkageType: ''
    returnType: void
    signature: void json_delete_object(json_object_t *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:93,1
    - Dst: json_to_object
      Src: /src/jansson/src/value.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: json_object_size
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 9
    functionsReached:
    - json_is_object
    - json_to_object
    linkageType: ''
    returnType: size_t
    signature: size_t json_object_size(const json_t *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_getn
      Src: /src/jansson/src/value.c:104,1
    - Dst: strlen
      Src: /src/jansson/src/value.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - json
    - key
    argTypes:
    - json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: json_object_get
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 154
    functionsReached:
    - json_object_getn
    - strlen
    linkageType: ''
    returnType: json_t
    signature: json_t *json_object_get(const json_t *json, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:110,1
    - Dst: json_to_object
      Src: /src/jansson/src/value.c:113,1
    - Dst: hashtable_get
      Src: /src/jansson/src/value.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - json
    - key
    - key_len
    argTypes:
    - json_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: json_object_getn
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 4
    functionsReached:
    - json_is_object
    - json_to_object
    - hashtable_get
    linkageType: ''
    returnType: json_t
    signature: json_t *json_object_getn(const json_t *json, const char *key, size_t
      key_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_decref
      Src: /src/jansson/src/value.c:119,1
    - Dst: json_object_setn_new_nocheck
      Src: /src/jansson/src/value.c:122,1
    - Dst: strlen
      Src: /src/jansson/src/value.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - json
    - key
    - value
    argTypes:
    - json_t*
    - char*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: json_object_set_new_nocheck
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 6
    functionsReached:
    - json_decref
    - json_object_setn_new_nocheck
    - strlen
    linkageType: ''
    returnType: int
    signature: int json_object_set_new_nocheck(json_t *json, const char *key, json_t
      *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:132,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:133,1
    - Dst: json_to_object
      Src: /src/jansson/src/value.c:136,1
    - Dst: hashtable_set
      Src: /src/jansson/src/value.c:138,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - json
    - key
    - key_len
    - value
    argTypes:
    - json_t*
    - char*
    - size_t
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 144
    functionName: json_object_setn_new_nocheck
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 3
    functionsReached:
    - json_is_object
    - json_decref
    - hashtable_set
    - json_to_object
    linkageType: ''
    returnType: int
    signature: "int json_object_setn_new_nocheck(json_t *json, const char *key, size_t
      key_len,\n                                 json_t *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_decref
      Src: /src/jansson/src/value.c:148,1
    - Dst: json_object_setn_new
      Src: /src/jansson/src/value.c:152,1
    - Dst: strlen
      Src: /src/jansson/src/value.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - json
    - key
    - value
    argTypes:
    - json_t*
    - char*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: json_object_set_new
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 88
    functionsReached:
    - json_decref
    - json_object_setn_new
    - strlen
    linkageType: ''
    returnType: int
    signature: int json_object_set_new(json_t *json, const char *key, json_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_check_string
      Src: /src/jansson/src/value.c:156,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:157,1
    - Dst: json_object_setn_new_nocheck
      Src: /src/jansson/src/value.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - json
    - key
    - key_len
    - value
    argTypes:
    - json_t*
    - char*
    - size_t
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: json_object_setn_new
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 2
    functionsReached:
    - json_decref
    - json_object_setn_new_nocheck
    - utf8_check_string
    linkageType: ''
    returnType: int
    signature: int json_object_setn_new(json_t *json, const char *key, size_t key_len,
      json_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_deln
      Src: /src/jansson/src/value.c:168,1
    - Dst: strlen
      Src: /src/jansson/src/value.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - json
    - key
    argTypes:
    - json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: json_object_del
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 13
    functionsReached:
    - json_object_deln
    - strlen
    linkageType: ''
    returnType: int
    signature: int json_object_del(json_t *json, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:174,1
    - Dst: json_to_object
      Src: /src/jansson/src/value.c:177,1
    - Dst: hashtable_del
      Src: /src/jansson/src/value.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - json
    - key
    - key_len
    argTypes:
    - json_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: json_object_deln
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 4
    functionsReached:
    - json_is_object
    - hashtable_del
    - json_to_object
    linkageType: ''
    returnType: int
    signature: int json_object_deln(json_t *json, const char *key, size_t key_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:184,1
    - Dst: json_to_object
      Src: /src/jansson/src/value.c:187,1
    - Dst: hashtable_clear
      Src: /src/jansson/src/value.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: json_object_clear
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 3
    functionsReached:
    - json_is_object
    - hashtable_clear
    - json_to_object
    linkageType: ''
    returnType: int
    signature: int json_object_clear(json_t *json)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:198,1
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:198,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/src/value.c:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - object
    - other
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: json_object_update
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 4
    functionsReached:
    - json_is_object
    - json_object_setn_nocheck
    linkageType: ''
    returnType: int
    signature: int json_object_update(json_t *object, json_t *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/src/value.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: json_object_keylen_foreach
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_object_setn_nocheck
    linkageType: ''
    returnType: void
    signature: void json_object_keylen_foreach(other, key, key_len, value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:214,1
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:214,1
    - Dst: json_object_getn
      Src: /src/jansson/src/value.c:218,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/src/value.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - object
    - other
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 223
    functionName: json_object_update_existing
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 3
    functionsReached:
    - json_object_getn
    - json_is_object
    - json_object_setn_nocheck
    linkageType: ''
    returnType: int
    signature: int json_object_update_existing(json_t *object, json_t *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_getn
      Src: /src/jansson/src/value.c:218,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/src/value.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: json_object_keylen_foreach
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_object_getn
    - json_object_setn_nocheck
    linkageType: ''
    returnType: void
    signature: void json_object_keylen_foreach(other, key, key_len, value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:230,1
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:230,1
    - Dst: json_object_getn
      Src: /src/jansson/src/value.c:234,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/src/value.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - object
    - other
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 239
    functionName: json_object_update_missing
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 2
    functionsReached:
    - json_object_getn
    - json_is_object
    - json_object_setn_nocheck
    linkageType: ''
    returnType: int
    signature: int json_object_update_missing(json_t *object, json_t *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_getn
      Src: /src/jansson/src/value.c:234,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/src/value.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: json_object_keylen_foreach
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_object_getn
    - json_object_setn_nocheck
    linkageType: ''
    returnType: void
    signature: void json_object_keylen_foreach(other, key, key_len, value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:249,1
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:249,1
    - Dst: jsonp_loop_check
      Src: /src/jansson/src/value.c:252,1
    - Dst: json_object_getn
      Src: /src/jansson/src/value.c:256,1
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:258,1
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:258,1
    - Dst: do_object_update_recursive
      Src: /src/jansson/src/value.c:259,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/src/value.c:264,1
    - Dst: hashtable_del
      Src: /src/jansson/src/value.c:271,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - object
    - other
    - parents
    argTypes:
    - json_t*
    - json_t*
    - hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 274
    functionName: do_object_update_recursive
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 1
    functionsReached:
    - json_object_getn
    - json_object_setn_nocheck
    - jsonp_loop_check
    - json_is_object
    - hashtable_del
    - do_object_update_recursive
    linkageType: ''
    returnType: int
    signature: int do_object_update_recursive(json_t *object, json_t *other, hashtable_t
      *parents)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_getn
      Src: /src/jansson/src/value.c:256,1
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:258,1
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:258,1
    - Dst: do_object_update_recursive
      Src: /src/jansson/src/value.c:259,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/src/value.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 269
    functionName: json_object_keylen_foreach
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_object_getn
    - json_is_object
    - json_object_setn_nocheck
    - do_object_update_recursive
    linkageType: ''
    returnType: void
    signature: void json_object_keylen_foreach(other, key, key_len, value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_init
      Src: /src/jansson/src/value.c:280,1
    - Dst: do_object_update_recursive
      Src: /src/jansson/src/value.c:282,1
    - Dst: hashtable_close
      Src: /src/jansson/src/value.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - object
    - other
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 286
    functionName: json_object_update_recursive
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 1
    functionsReached:
    - hashtable_init
    - hashtable_close
    - do_object_update_recursive
    linkageType: ''
    returnType: int
    signature: int json_object_update_recursive(json_t *object, json_t *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:291,1
    - Dst: json_to_object
      Src: /src/jansson/src/value.c:294,1
    - Dst: hashtable_iter
      Src: /src/jansson/src/value.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: json_object_iter
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 23
    functionsReached:
    - json_is_object
    - hashtable_iter
    - json_to_object
    linkageType: ''
    returnType: void
    signature: void *json_object_iter(json_t *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:301,1
    - Dst: json_to_object
      Src: /src/jansson/src/value.c:304,1
    - Dst: hashtable_iter_at
      Src: /src/jansson/src/value.c:305,1
    - Dst: strlen
      Src: /src/jansson/src/value.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - json
    - key
    argTypes:
    - json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 306
    functionName: json_object_iter_at
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 2
    functionsReached:
    - json_is_object
    - json_to_object
    - strlen
    - hashtable_iter_at
    linkageType: ''
    returnType: void
    signature: void *json_object_iter_at(json_t *json, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:311,1
    - Dst: json_to_object
      Src: /src/jansson/src/value.c:314,1
    - Dst: hashtable_iter_next
      Src: /src/jansson/src/value.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - json
    - iter
    argTypes:
    - json_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 316
    functionName: json_object_iter_next
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 22
    functionsReached:
    - json_is_object
    - json_to_object
    - hashtable_iter_next
    linkageType: ''
    returnType: void
    signature: void *json_object_iter_next(json_t *json, void *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_iter_key
      Src: /src/jansson/src/value.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: json_object_iter_key
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 21
    functionsReached:
    - hashtable_iter_key
    linkageType: ''
    returnType: char
    signature: char *json_object_iter_key(void *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_iter_key_len
      Src: /src/jansson/src/value.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: json_object_iter_key_len
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - hashtable_iter_key_len
    linkageType: ''
    returnType: size_t
    signature: size_t json_object_iter_key_len(void *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_iter_value
      Src: /src/jansson/src/value.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 337
    functionName: json_object_iter_value
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 23
    functionsReached:
    - hashtable_iter_value
    linkageType: ''
    returnType: json_t
    signature: json_t *json_object_iter_value(void *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_object
      Src: /src/jansson/src/value.c:340,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:341,1
    - Dst: hashtable_iter_set
      Src: /src/jansson/src/value.c:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - json
    - iter
    - value
    argTypes:
    - json_t*
    - void*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: json_object_iter_set_new
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 1
    functionsReached:
    - json_is_object
    - json_decref
    - hashtable_iter_set
    linkageType: ''
    returnType: int
    signature: int json_object_iter_set_new(json_t *json, void *iter, json_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_key_to_iter
      Src: /src/jansson/src/value.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: json_object_key_to_iter
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 1
    functionsReached:
    - hashtable_key_to_iter
    linkageType: ''
    returnType: void
    signature: void *json_object_key_to_iter(const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object_size
      Src: /src/jansson/src/value.c:361,1
    - Dst: json_object_size
      Src: /src/jansson/src/value.c:361,1
    - Dst: json_object_keylen_foreach
      Src: /src/jansson/src/value.c:364,1
    - Dst: json_object_getn
      Src: /src/jansson/src/value.c:365,1
    - Dst: do_equal
      Src: /src/jansson/src/value.c:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - object1
    - object2
    - depth
    argTypes:
    - json_t*
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 372
    functionName: json_object_equal
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_object_getn
    - json_object_size
    - do_equal
    - json_object_keylen_foreach
    linkageType: ''
    returnType: int
    signature: int json_object_equal(const json_t *object1, const json_t *object2,
      int depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/src/value.c:381,1
    - Dst: json_object_keylen_foreach
      Src: /src/jansson/src/value.c:385,1
    - Dst: json_object_setn_nocheck
      Src: /src/jansson/src/value.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 389
    functionName: json_object_copy
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_object_setn_nocheck
    - json_object
    - json_object_keylen_foreach
    linkageType: ''
    returnType: json_t
    signature: json_t *json_object_copy(json_t *object)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_loop_check
      Src: /src/jansson/src/value.c:398,1
    - Dst: json_object
      Src: /src/jansson/src/value.c:401,1
    - Dst: json_object_iter
      Src: /src/jansson/src/value.c:407,1
    - Dst: json_object_iter_key
      Src: /src/jansson/src/value.c:412,1
    - Dst: json_object_iter_key_len
      Src: /src/jansson/src/value.c:413,1
    - Dst: json_object_iter_value
      Src: /src/jansson/src/value.c:414,1
    - Dst: json_object_setn_new_nocheck
      Src: /src/jansson/src/value.c:416,1
    - Dst: do_deep_copy
      Src: /src/jansson/src/value.c:417,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:418,1
    - Dst: json_object_iter_next
      Src: /src/jansson/src/value.c:422,1
    - Dst: hashtable_del
      Src: /src/jansson/src/value.c:426,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - object
    - parents
    - depth
    argTypes:
    - json_t*
    - hashtable_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 391
    functionDepth: 5
    functionLinenumber: 391
    functionLinenumberEnd: 429
    functionName: json_object_deep_copy
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_object_setn_new_nocheck
    - jsonp_loop_check
    - json_object_iter_next
    - hashtable_del
    - do_deep_copy
    - json_object_iter_key
    - json_decref
    - json_object_iter
    - json_object_iter_value
    - json_object
    - json_object_iter_key_len
    linkageType: ''
    returnType: json_t
    signature: "json_t *json_object_deep_copy(const json_t *object, hashtable_t *parents,\n
      \                                    int depth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_malloc
      Src: /src/jansson/src/value.c:434,1
    - Dst: json_init
      Src: /src/jansson/src/value.c:437,1
    - Dst: jsonp_malloc
      Src: /src/jansson/src/value.c:442,1
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 449
    functionName: json_array
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 25
    functionsReached:
    - jsonp_malloc
    - jsonp_free
    - json_init
    linkageType: ''
    returnType: json_t
    signature: json_t *json_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_decref
      Src: /src/jansson/src/value.c:455,1
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:457,1
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - json_array_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 459
    functionName: json_delete_array
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_decref
    - jsonp_free
    linkageType: ''
    returnType: void
    signature: void json_delete_array(json_array_t *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_array
      Src: /src/jansson/src/value.c:462,1
    - Dst: json_to_array
      Src: /src/jansson/src/value.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: json_array_size
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 30
    functionsReached:
    - json_is_array
    - json_to_array
    linkageType: ''
    returnType: size_t
    signature: size_t json_array_size(const json_t *json)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_is_array
      Src: /src/jansson/src/value.c:470,1
    - Dst: json_to_array
      Src: /src/jansson/src/value.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - json
    - index
    argTypes:
    - json_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 478
    functionName: json_array_get
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 29
    functionsReached:
    - json_is_array
    - json_to_array
    linkageType: ''
    returnType: json_t
    signature: json_t *json_array_get(const json_t *json, size_t index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_is_array
      Src: /src/jansson/src/value.c:486,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:487,1
    - Dst: json_to_array
      Src: /src/jansson/src/value.c:490,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:493,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - json
    - index
    - value
    argTypes:
    - json_t*
    - size_t
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 501
    functionName: json_array_set_new
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 3
    functionsReached:
    - json_decref
    - json_is_array
    - json_to_array
    linkageType: ''
    returnType: int
    signature: int json_array_set_new(json_t *json, size_t index, json_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/jansson/src/value.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - array
    - dest
    - src
    - count
    argTypes:
    - json_array_t*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 505
    functionName: array_move
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void array_move(json_array_t *array, size_t dest, size_t src, size_t
      count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/jansson/src/value.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dest
    - dpos
    - src
    - spos
    - count
    argTypes:
    - json_t**
    - size_t
    - json_t**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 510
    functionName: array_copy
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void array_copy(json_t **dest, size_t dpos, json_t **src, size_t spos,\n
      \                      size_t count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/jansson/src/value.c:521,1
    - Dst: jsonp_realloc
      Src: /src/jansson/src/value.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 531
    functionName: json_array_grow
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - jsonp_realloc
    - max
    linkageType: ''
    returnType: json_t
    signature: json_t **json_array_grow(json_array_t *array, size_t amount)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_is_array
      Src: /src/jansson/src/value.c:539,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:540,1
    - Dst: json_to_array
      Src: /src/jansson/src/value.c:543,1
    - Dst: json_array_grow
      Src: /src/jansson/src/value.c:545,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - json
    - value
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 554
    functionName: json_array_append_new
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 19
    functionsReached:
    - json_decref
    - json_array_grow
    - json_is_array
    - json_to_array
    linkageType: ''
    returnType: int
    signature: int json_array_append_new(json_t *json, json_t *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_is_array
      Src: /src/jansson/src/value.c:562,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:563,1
    - Dst: json_to_array
      Src: /src/jansson/src/value.c:566,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:569,1
    - Dst: json_array_grow
      Src: /src/jansson/src/value.c:573,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:574,1
    - Dst: array_move
      Src: /src/jansson/src/value.c:578,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - json
    - index
    - value
    argTypes:
    - json_t*
    - size_t
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 584
    functionName: json_array_insert_new
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 4
    functionsReached:
    - json_array_grow
    - json_to_array
    - json_decref
    - array_move
    - json_is_array
    linkageType: ''
    returnType: int
    signature: int json_array_insert_new(json_t *json, size_t index, json_t *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_is_array
      Src: /src/jansson/src/value.c:589,1
    - Dst: json_to_array
      Src: /src/jansson/src/value.c:591,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:596,1
    - Dst: array_move
      Src: /src/jansson/src/value.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - json
    - index
    argTypes:
    - json_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 605
    functionName: json_array_remove
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 5
    functionsReached:
    - json_decref
    - array_move
    - json_is_array
    - json_to_array
    linkageType: ''
    returnType: int
    signature: int json_array_remove(json_t *json, size_t index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_array
      Src: /src/jansson/src/value.c:611,1
    - Dst: json_to_array
      Src: /src/jansson/src/value.c:613,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 620
    functionName: json_array_clear
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 2
    functionsReached:
    - json_decref
    - json_is_array
    - json_to_array
    linkageType: ''
    returnType: int
    signature: int json_array_clear(json_t *json)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_is_array
      Src: /src/jansson/src/value.c:626,1
    - Dst: json_is_array
      Src: /src/jansson/src/value.c:626,1
    - Dst: json_to_array
      Src: /src/jansson/src/value.c:628,1
    - Dst: json_to_array
      Src: /src/jansson/src/value.c:629,1
    - Dst: json_array_grow
      Src: /src/jansson/src/value.c:631,1
    - Dst: json_incref
      Src: /src/jansson/src/value.c:635,1
    - Dst: array_copy
      Src: /src/jansson/src/value.c:637,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - json
    - other_json
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 641
    functionName: json_array_extend
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 4
    functionsReached:
    - json_array_grow
    - json_incref
    - json_to_array
    - array_copy
    - json_is_array
    linkageType: ''
    returnType: int
    signature: int json_array_extend(json_t *json, json_t *other_json)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_array_size
      Src: /src/jansson/src/value.c:646,1
    - Dst: json_array_size
      Src: /src/jansson/src/value.c:647,1
    - Dst: json_array_get
      Src: /src/jansson/src/value.c:653,1
    - Dst: json_array_get
      Src: /src/jansson/src/value.c:654,1
    - Dst: do_equal
      Src: /src/jansson/src/value.c:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - array1
    - array2
    - depth
    argTypes:
    - json_t*
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 661
    functionName: json_array_equal
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_array_get
    - do_equal
    - json_array_size
    linkageType: ''
    returnType: int
    signature: int json_array_equal(const json_t *array1, const json_t *array2, int
      depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/src/value.c:667,1
    - Dst: json_array_size
      Src: /src/jansson/src/value.c:671,1
    - Dst: json_array_append
      Src: /src/jansson/src/value.c:672,1
    - Dst: json_array_get
      Src: /src/jansson/src/value.c:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - array
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 675
    functionName: json_array_copy
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_array
    - json_array_get
    - json_array_size
    - json_array_append
    linkageType: ''
    returnType: json_t
    signature: json_t *json_array_copy(json_t *array)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_loop_check
      Src: /src/jansson/src/value.c:684,1
    - Dst: json_array
      Src: /src/jansson/src/value.c:687,1
    - Dst: json_array_size
      Src: /src/jansson/src/value.c:691,1
    - Dst: json_array_append_new
      Src: /src/jansson/src/value.c:692,1
    - Dst: do_deep_copy
      Src: /src/jansson/src/value.c:693,1
    - Dst: json_array_get
      Src: /src/jansson/src/value.c:693,1
    - Dst: json_decref
      Src: /src/jansson/src/value.c:694,1
    - Dst: hashtable_del
      Src: /src/jansson/src/value.c:701,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - array
    - parents
    - depth
    argTypes:
    - json_t*
    - hashtable_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 704
    functionName: json_array_deep_copy
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - jsonp_loop_check
    - hashtable_del
    - do_deep_copy
    - json_array
    - json_array_get
    - json_decref
    - json_array_append_new
    - json_array_size
    linkageType: ''
    returnType: json_t
    signature: "json_t *json_array_deep_copy(const json_t *array, hashtable_t *parents,\n
      \                                   int depth)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_strndup
      Src: /src/jansson/src/value.c:718,1
    - Dst: jsonp_malloc
      Src: /src/jansson/src/value.c:723,1
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:725,1
    - Dst: json_init
      Src: /src/jansson/src/value.c:728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - value
    - len
    - own
    argTypes:
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 733
    functionName: string_create
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - jsonp_malloc
    - jsonp_free
    - json_init
    - jsonp_strndup
    linkageType: ''
    returnType: json_t
    signature: json_t *string_create(const char *value, size_t len, int own)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_create
      Src: /src/jansson/src/value.c:739,1
    - Dst: strlen
      Src: /src/jansson/src/value.c:739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 740
    functionName: json_string_nocheck
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 2
    functionsReached:
    - strlen
    - string_create
    linkageType: ''
    returnType: json_t
    signature: json_t *json_string_nocheck(const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_create
      Src: /src/jansson/src/value.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 744
    functionName: json_stringn_nocheck
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 1
    functionsReached:
    - string_create
    linkageType: ''
    returnType: json_t
    signature: json_t *json_stringn_nocheck(const char *value, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_create
      Src: /src/jansson/src/value.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 749
    functionName: jsonp_stringn_nocheck_own
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - string_create
    linkageType: ''
    returnType: json_t
    signature: json_t *jsonp_stringn_nocheck_own(const char *value, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_stringn
      Src: /src/jansson/src/value.c:755,1
    - Dst: strlen
      Src: /src/jansson/src/value.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 756
    functionName: json_string
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 76
    functionsReached:
    - json_stringn
    - strlen
    linkageType: ''
    returnType: json_t
    signature: json_t *json_string(const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_check_string
      Src: /src/jansson/src/value.c:759,1
    - Dst: json_stringn_nocheck
      Src: /src/jansson/src/value.c:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - value
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 758
    functionDepth: 3
    functionLinenumber: 758
    functionLinenumberEnd: 763
    functionName: json_stringn
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 9
    functionsReached:
    - json_stringn_nocheck
    - utf8_check_string
    linkageType: ''
    returnType: json_t
    signature: json_t *json_stringn(const char *value, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_string
      Src: /src/jansson/src/value.c:766,1
    - Dst: json_to_string
      Src: /src/jansson/src/value.c:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 770
    functionName: json_string_value
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 91
    functionsReached:
    - json_to_string
    - json_is_string
    linkageType: ''
    returnType: char
    signature: char *json_string_value(const json_t *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_string
      Src: /src/jansson/src/value.c:773,1
    - Dst: json_to_string
      Src: /src/jansson/src/value.c:776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 777
    functionName: json_string_length
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 4
    functionsReached:
    - json_to_string
    - json_is_string
    linkageType: ''
    returnType: size_t
    signature: size_t json_string_length(const json_t *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_string_setn_nocheck
      Src: /src/jansson/src/value.c:783,1
    - Dst: strlen
      Src: /src/jansson/src/value.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - json
    - value
    argTypes:
    - json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 784
    functionName: json_string_set_nocheck
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 4
    functionsReached:
    - strlen
    - json_string_setn_nocheck
    linkageType: ''
    returnType: int
    signature: int json_string_set_nocheck(json_t *json, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_is_string
      Src: /src/jansson/src/value.c:790,1
    - Dst: jsonp_strndup
      Src: /src/jansson/src/value.c:793,1
    - Dst: json_to_string
      Src: /src/jansson/src/value.c:797,1
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - json
    - value
    - len
    argTypes:
    - json_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 803
    functionName: json_string_setn_nocheck
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 3
    functionsReached:
    - json_to_string
    - jsonp_strndup
    - jsonp_free
    - json_is_string
    linkageType: ''
    returnType: int
    signature: int json_string_setn_nocheck(json_t *json, const char *value, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_string_setn
      Src: /src/jansson/src/value.c:809,1
    - Dst: strlen
      Src: /src/jansson/src/value.c:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - json
    - value
    argTypes:
    - json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 810
    functionName: json_string_set
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 2
    functionsReached:
    - json_string_setn
    - strlen
    linkageType: ''
    returnType: int
    signature: int json_string_set(json_t *json, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_check_string
      Src: /src/jansson/src/value.c:813,1
    - Dst: json_string_setn_nocheck
      Src: /src/jansson/src/value.c:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - json
    - value
    - len
    argTypes:
    - json_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 817
    functionName: json_string_setn
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 3
    functionsReached:
    - utf8_check_string
    - json_string_setn_nocheck
    linkageType: ''
    returnType: int
    signature: int json_string_setn(json_t *json, const char *value, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:820,1
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - string
    argTypes:
    - json_string_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 822
    functionName: json_delete_string
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - jsonp_free
    linkageType: ''
    returnType: void
    signature: void json_delete_string(json_string_t *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_to_string
      Src: /src/jansson/src/value.c:827,1
    - Dst: json_to_string
      Src: /src/jansson/src/value.c:828,1
    - Dst: memcmp
      Src: /src/jansson/src/value.c:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - string1
    - string2
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 830
    functionName: json_string_equal
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - memcmp
    - json_to_string
    linkageType: ''
    returnType: int
    signature: int json_string_equal(const json_t *string1, const json_t *string2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_to_string
      Src: /src/jansson/src/value.c:835,1
    - Dst: json_stringn_nocheck
      Src: /src/jansson/src/value.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - string
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 832
    functionDepth: 3
    functionLinenumber: 832
    functionLinenumberEnd: 837
    functionName: json_string_copy
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_stringn_nocheck
    - json_to_string
    linkageType: ''
    returnType: json_t
    signature: json_t *json_string_copy(const json_t *string)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/jansson/src/value.c:844,1
    - Dst: vsnprintf
      Src: /src/jansson/src/value.c:846,1
    - Dst: json_string
      Src: /src/jansson/src/value.c:850,1
    - Dst: jsonp_malloc
      Src: /src/jansson/src/value.c:854,1
    - Dst: vsnprintf
      Src: /src/jansson/src/value.c:858,1
    - Dst: utf8_check_string
      Src: /src/jansson/src/value.c:859,1
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:860,1
    - Dst: jsonp_stringn_nocheck_own
      Src: /src/jansson/src/value.c:864,1
    - Dst: va_end
      Src: /src/jansson/src/value.c:867,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 869
    functionName: json_vsprintf
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - jsonp_free
    - va_end
    - utf8_check_string
    - jsonp_stringn_nocheck_own
    - va_copy
    - jsonp_malloc
    - vsnprintf
    - json_string
    linkageType: ''
    returnType: json_t
    signature: json_t *json_vsprintf(const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/jansson/src/value.c:875,1
    - Dst: json_vsprintf
      Src: /src/jansson/src/value.c:876,1
    - Dst: va_end
      Src: /src/jansson/src/value.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 871
    functionDepth: 4
    functionLinenumber: 871
    functionLinenumberEnd: 880
    functionName: json_sprintf
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 3
    functionsReached:
    - va_end
    - json_vsprintf
    - va_start
    linkageType: ''
    returnType: json_t
    signature: json_t *json_sprintf(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_malloc
      Src: /src/jansson/src/value.c:885,1
    - Dst: json_init
      Src: /src/jansson/src/value.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - json_int_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 892
    functionName: json_integer
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 66
    functionsReached:
    - jsonp_malloc
    - json_init
    linkageType: ''
    returnType: json_t
    signature: json_t *json_integer(json_int_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_integer
      Src: /src/jansson/src/value.c:895,1
    - Dst: json_to_integer
      Src: /src/jansson/src/value.c:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: json_integer_value
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 32
    functionsReached:
    - json_to_integer
    - json_is_integer
    linkageType: ''
    returnType: json_int_t
    signature: json_int_t json_integer_value(const json_t *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_integer
      Src: /src/jansson/src/value.c:902,1
    - Dst: json_to_integer
      Src: /src/jansson/src/value.c:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - json
    - value
    argTypes:
    - json_t*
    - json_int_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 908
    functionName: json_integer_set
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 6
    functionsReached:
    - json_to_integer
    - json_is_integer
    linkageType: ''
    returnType: int
    signature: int json_integer_set(json_t *json, json_int_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - integer
    argTypes:
    - json_integer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 910
    functionName: json_delete_integer
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - jsonp_free
    linkageType: ''
    returnType: void
    signature: void json_delete_integer(json_integer_t *integer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_integer_value
      Src: /src/jansson/src/value.c:913,1
    - Dst: json_integer_value
      Src: /src/jansson/src/value.c:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - integer1
    - integer2
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 914
    functionName: json_integer_equal
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_integer_value
    linkageType: ''
    returnType: int
    signature: int json_integer_equal(const json_t *integer1, const json_t *integer2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_integer
      Src: /src/jansson/src/value.c:917,1
    - Dst: json_integer_value
      Src: /src/jansson/src/value.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - integer
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 916
    functionDepth: 2
    functionLinenumber: 916
    functionLinenumberEnd: 918
    functionName: json_integer_copy
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_integer
    - json_integer_value
    linkageType: ''
    returnType: json_t
    signature: json_t *json_integer_copy(const json_t *integer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/jansson/src/value.c:925,1
    - Dst: isinf
      Src: /src/jansson/src/value.c:925,1
    - Dst: jsonp_malloc
      Src: /src/jansson/src/value.c:928,1
    - Dst: json_init
      Src: /src/jansson/src/value.c:931,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 922
    functionDepth: 2
    functionLinenumber: 922
    functionLinenumberEnd: 935
    functionName: json_real
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 11
    functionsReached:
    - isinf
    - isnan
    - json_init
    - jsonp_malloc
    linkageType: ''
    returnType: json_t
    signature: json_t *json_real(double value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_real
      Src: /src/jansson/src/value.c:938,1
    - Dst: json_to_real
      Src: /src/jansson/src/value.c:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 942
    functionName: json_real_value
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 9
    functionsReached:
    - json_to_real
    - json_is_real
    linkageType: ''
    returnType: double
    signature: double json_real_value(const json_t *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_is_real
      Src: /src/jansson/src/value.c:945,1
    - Dst: isnan
      Src: /src/jansson/src/value.c:945,1
    - Dst: isinf
      Src: /src/jansson/src/value.c:945,1
    - Dst: json_to_real
      Src: /src/jansson/src/value.c:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - json
    - value
    argTypes:
    - json_t*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 951
    functionName: json_real_set
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 4
    functionsReached:
    - json_to_real
    - isinf
    - isnan
    - json_is_real
    linkageType: ''
    returnType: int
    signature: int json_real_set(json_t *json, double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_free
      Src: /src/jansson/src/value.c:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - real
    argTypes:
    - json_real_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 953
    functionName: json_delete_real
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - jsonp_free
    linkageType: ''
    returnType: void
    signature: void json_delete_real(json_real_t *real)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_real_value
      Src: /src/jansson/src/value.c:956,1
    - Dst: json_real_value
      Src: /src/jansson/src/value.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - real1
    - real2
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 955
    functionDepth: 2
    functionLinenumber: 955
    functionLinenumberEnd: 957
    functionName: json_real_equal
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_real_value
    linkageType: ''
    returnType: int
    signature: int json_real_equal(const json_t *real1, const json_t *real2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_real
      Src: /src/jansson/src/value.c:960,1
    - Dst: json_real_value
      Src: /src/jansson/src/value.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - real
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 959
    functionDepth: 3
    functionLinenumber: 959
    functionLinenumberEnd: 961
    functionName: json_real_copy
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 0
    functionsReached:
    - json_real_value
    - json_real
    linkageType: ''
    returnType: json_t
    signature: json_t *json_real_copy(const json_t *real)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_is_integer
      Src: /src/jansson/src/value.c:966,1
    - Dst: json_integer_value
      Src: /src/jansson/src/value.c:967,1
    - Dst: json_is_real
      Src: /src/jansson/src/value.c:968,1
    - Dst: json_real_value
      Src: /src/jansson/src/value.c:969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 965
    functionDepth: 2
    functionLinenumber: 965
    functionLinenumberEnd: 972
    functionName: json_number_value
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 7
    functionsReached:
    - json_integer_value
    - json_real_value
    - json_is_integer
    - json_is_real
    linkageType: ''
    returnType: double
    signature: double json_number_value(const json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 979
    functionName: json_true
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: json_t
    signature: json_t *json_true(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 984
    functionName: json_false
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: json_t
    signature: json_t *json_false(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 989
    functionName: json_null
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: json_t
    signature: json_t *json_null(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: json_typeof
      Src: /src/jansson/src/value.c:997,1
    - Dst: json_delete_object
      Src: /src/jansson/src/value.c:999,1
    - Dst: json_to_object
      Src: /src/jansson/src/value.c:999,1
    - Dst: json_delete_array
      Src: /src/jansson/src/value.c:1002,1
    - Dst: json_to_array
      Src: /src/jansson/src/value.c:1002,1
    - Dst: json_delete_string
      Src: /src/jansson/src/value.c:1005,1
    - Dst: json_to_string
      Src: /src/jansson/src/value.c:1005,1
    - Dst: json_delete_integer
      Src: /src/jansson/src/value.c:1008,1
    - Dst: json_to_integer
      Src: /src/jansson/src/value.c:1008,1
    - Dst: json_delete_real
      Src: /src/jansson/src/value.c:1011,1
    - Dst: json_to_real
      Src: /src/jansson/src/value.c:1011,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 993
    functionDepth: 2
    functionLinenumber: 993
    functionLinenumberEnd: 1018
    functionName: json_delete
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 1
    functionsReached:
    - json_to_object
    - json_delete_string
    - json_delete_integer
    - json_to_real
    - json_to_array
    - json_delete_object
    - json_to_string
    - json_delete_real
    - json_delete_array
    - json_to_integer
    - json_typeof
    linkageType: ''
    returnType: void
    signature: void json_delete(json_t *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_equal
      Src: /src/jansson/src/value.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - json1
    - json2
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1024
    functionName: json_equal
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 18
    functionsReached:
    - do_equal
    linkageType: ''
    returnType: int
    signature: int json_equal(const json_t *json1, const json_t *json2)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: json_typeof
      Src: /src/jansson/src/value.c:1030,1
    - Dst: json_typeof
      Src: /src/jansson/src/value.c:1030,1
    - Dst: json_typeof
      Src: /src/jansson/src/value.c:1040,1
    - Dst: json_object_equal
      Src: /src/jansson/src/value.c:1042,1
    - Dst: json_array_equal
      Src: /src/jansson/src/value.c:1044,1
    - Dst: json_string_equal
      Src: /src/jansson/src/value.c:1046,1
    - Dst: json_integer_equal
      Src: /src/jansson/src/value.c:1048,1
    - Dst: json_real_equal
      Src: /src/jansson/src/value.c:1050,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - json1
    - json2
    - depth
    argTypes:
    - json_t*
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1026
    functionDepth: 3
    functionLinenumber: 1026
    functionLinenumberEnd: 1054
    functionName: do_equal
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 3
    functionsReached:
    - json_object_equal
    - json_integer_equal
    - json_array_equal
    - json_string_equal
    - json_real_equal
    - json_typeof
    linkageType: ''
    returnType: int
    signature: int do_equal(const json_t *json1, const json_t *json2, int depth)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: json_typeof
      Src: /src/jansson/src/value.c:1062,1
    - Dst: json_object_copy
      Src: /src/jansson/src/value.c:1064,1
    - Dst: json_array_copy
      Src: /src/jansson/src/value.c:1066,1
    - Dst: json_string_copy
      Src: /src/jansson/src/value.c:1068,1
    - Dst: json_integer_copy
      Src: /src/jansson/src/value.c:1070,1
    - Dst: json_real_copy
      Src: /src/jansson/src/value.c:1072,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1058
    functionDepth: 6
    functionLinenumber: 1058
    functionLinenumberEnd: 1080
    functionName: json_copy
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 14
    functionsReached:
    - json_string_copy
    - json_real_copy
    - json_array_copy
    - json_object_copy
    - json_typeof
    - json_integer_copy
    linkageType: ''
    returnType: json_t
    signature: json_t *json_copy(json_t *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_init
      Src: /src/jansson/src/value.c:1086,1
    - Dst: do_deep_copy
      Src: /src/jansson/src/value.c:1088,1
    - Dst: hashtable_close
      Src: /src/jansson/src/value.c:1089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1092
    functionName: json_deep_copy
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 14
    functionsReached:
    - hashtable_init
    - hashtable_close
    - do_deep_copy
    linkageType: ''
    returnType: json_t
    signature: json_t *json_deep_copy(const json_t *json)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: json_typeof
      Src: /src/jansson/src/value.c:1101,1
    - Dst: json_object_deep_copy
      Src: /src/jansson/src/value.c:1103,1
    - Dst: json_array_deep_copy
      Src: /src/jansson/src/value.c:1105,1
    - Dst: json_string_copy
      Src: /src/jansson/src/value.c:1109,1
    - Dst: json_integer_copy
      Src: /src/jansson/src/value.c:1111,1
    - Dst: json_real_copy
      Src: /src/jansson/src/value.c:1113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - json
    - parents
    - depth
    argTypes:
    - json_t*
    - hashtable_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1094
    functionDepth: 6
    functionLinenumber: 1094
    functionLinenumberEnd: 1121
    functionName: do_deep_copy
    functionSourceFile: /src/jansson/src/value.c
    functionUses: 3
    functionsReached:
    - json_string_copy
    - json_real_copy
    - json_object_deep_copy
    - json_array_deep_copy
    - json_typeof
    - json_integer_copy
    linkageType: ''
    returnType: json_t
    signature: json_t *do_deep_copy(const json_t *json, hashtable_t *parents, int
      depth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_error_set_source
      Src: /src/jansson/src/error.c:11,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - error
    - source
    argTypes:
    - json_error_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 15
    functionName: jsonp_error_init
    functionSourceFile: /src/jansson/src/error.c
    functionUses: 0
    functionsReached:
    - jsonp_error_set_source
    linkageType: ''
    returnType: void
    signature: void jsonp_error_init(json_error_t *error, const char *source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/jansson/src/error.c:23,1
    - Dst: strncpy
      Src: /src/jansson/src/error.c:25,1
    - Dst: memcpy
      Src: /src/jansson/src/error.c:28,1
    - Dst: strncpy
      Src: /src/jansson/src/error.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - error
    - source
    argTypes:
    - json_error_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: jsonp_error_set_source
    functionSourceFile: /src/jansson/src/error.c
    functionUses: 1
    functionsReached:
    - memcpy
    - strlen
    - strncpy
    linkageType: ''
    returnType: void
    signature: void jsonp_error_set_source(json_error_t *error, const char *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/jansson/src/error.c:37,1
    - Dst: jsonp_error_vset
      Src: /src/jansson/src/error.c:38,1
    - Dst: va_end
      Src: /src/jansson/src/error.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - error
    - line
    - column
    - position
    - code
    - msg
    argTypes:
    - json_error_t*
    - int
    - int
    - size_t
    - enum json_error_code
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: jsonp_error_set
    functionSourceFile: /src/jansson/src/error.c
    functionUses: 0
    functionsReached:
    - jsonp_error_vset
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: "void jsonp_error_set(json_error_t *error, int line, int column, size_t
      position,\n                     enum json_error_code code, const char *msg,
      ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/jansson/src/error.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - error
    - line
    - column
    - position
    - code
    - msg
    - ap
    argTypes:
    - json_error_t*
    - int
    - int
    - size_t
    - enum json_error_code
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: jsonp_error_vset
    functionSourceFile: /src/jansson/src/error.c
    functionUses: 1
    functionsReached:
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: "void jsonp_error_vset(json_error_t *error, int line, int column, size_t
      position,\n                      enum json_error_code code, const char *msg,
      va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - list_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: list_to_pair
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_to_pair(list_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - list_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: ordered_list_to_pair
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ordered_list_to_pair(list_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: hash_str
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hash_str(key, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: list_init
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE list_init(list_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - list
    - node
    argTypes:
    - list_t*
    - list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: list_insert
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE list_insert(list_t *list, list_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: list_remove
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE list_remove(list_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - hashtable
    - bucket
    argTypes:
    - hashtable_t*
    - bucket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: bucket_is_empty
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE bucket_is_empty(hashtable_t *hashtable, bucket_t *bucket)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bucket_is_empty
      Src: /src/jansson/src/hashtable.c:62,1
    - Dst: list_insert
      Src: /src/jansson/src/hashtable.c:63,1
    - Dst: list_insert
      Src: /src/jansson/src/hashtable.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hashtable
    - bucket
    - list
    argTypes:
    - hashtable_t*
    - bucket_t*
    - list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: insert_to_bucket
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached:
    - bucket_is_empty
    - list_insert
    linkageType: ''
    returnType: void
    signature: void insert_to_bucket(hashtable_t *hashtable, bucket_t *bucket, list_t
      *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bucket_is_empty
      Src: /src/jansson/src/hashtable.c:76,1
    - Dst: list_to_pair
      Src: /src/jansson/src/hashtable.c:81,1
    - Dst: memcmp
      Src: /src/jansson/src/hashtable.c:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 5
    argNames:
    - hashtable
    - bucket
    - key
    - key_len
    - hash
    argTypes:
    - hashtable_t*
    - bucket_t*
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 93
    functionName: hashtable_find_pair
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached:
    - memcmp
    - bucket_is_empty
    - list_to_pair
    linkageType: ''
    returnType: pair_t
    signature: "pair_t *hashtable_find_pair(hashtable_t *hashtable, bucket_t *bucket,\n
      \                                  const char *key, size_t key_len, size_t hash)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashmask
      Src: /src/jansson/src/hashtable.c:102,1
    - Dst: hashtable_find_pair
      Src: /src/jansson/src/hashtable.c:105,1
    - Dst: list_remove
      Src: /src/jansson/src/hashtable.c:118,1
    - Dst: list_remove
      Src: /src/jansson/src/hashtable.c:119,1
    - Dst: json_decref
      Src: /src/jansson/src/hashtable.c:120,1
    - Dst: jsonp_free
      Src: /src/jansson/src/hashtable.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - hashtable
    - key
    - key_len
    - hash
    argTypes:
    - hashtable_t*
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 126
    functionName: hashtable_do_del
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached:
    - jsonp_free
    - hashtable_find_pair
    - json_decref
    - list_remove
    - hashmask
    linkageType: ''
    returnType: int
    signature: "int hashtable_do_del(hashtable_t *hashtable, const char *key, size_t
      key_len,\n                            size_t hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_to_pair
      Src: /src/jansson/src/hashtable.c:134,1
    - Dst: json_decref
      Src: /src/jansson/src/hashtable.c:135,1
    - Dst: jsonp_free
      Src: /src/jansson/src/hashtable.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - hashtable
    argTypes:
    - hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: hashtable_do_clear
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached:
    - json_decref
    - jsonp_free
    - list_to_pair
    linkageType: ''
    returnType: void
    signature: void hashtable_do_clear(hashtable_t *hashtable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashsize
      Src: /src/jansson/src/hashtable.c:147,1
    - Dst: jsonp_malloc
      Src: /src/jansson/src/hashtable.c:149,1
    - Dst: jsonp_free
      Src: /src/jansson/src/hashtable.c:153,1
    - Dst: list_init
      Src: /src/jansson/src/hashtable.c:162,1
    - Dst: list_to_pair
      Src: /src/jansson/src/hashtable.c:166,1
    - Dst: insert_to_bucket
      Src: /src/jansson/src/hashtable.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - hashtable
    argTypes:
    - hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 172
    functionName: hashtable_do_rehash
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached:
    - jsonp_free
    - list_init
    - hashsize
    - list_to_pair
    - jsonp_malloc
    - insert_to_bucket
    linkageType: ''
    returnType: int
    signature: int hashtable_do_rehash(hashtable_t *hashtable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_malloc
      Src: /src/jansson/src/hashtable.c:179,1
    - Dst: hashsize
      Src: /src/jansson/src/hashtable.c:179,1
    - Dst: list_init
      Src: /src/jansson/src/hashtable.c:183,1
    - Dst: list_init
      Src: /src/jansson/src/hashtable.c:184,1
    - Dst: hashsize
      Src: /src/jansson/src/hashtable.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - hashtable
    argTypes:
    - hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 191
    functionName: hashtable_init
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 3
    functionsReached:
    - list_init
    - jsonp_malloc
    - hashsize
    linkageType: ''
    returnType: int
    signature: int hashtable_init(hashtable_t *hashtable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_do_clear
      Src: /src/jansson/src/hashtable.c:194,1
    - Dst: jsonp_free
      Src: /src/jansson/src/hashtable.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hashtable
    argTypes:
    - hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: hashtable_close
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 3
    functionsReached:
    - hashtable_do_clear
    - jsonp_free
    linkageType: ''
    returnType: void
    signature: void hashtable_close(hashtable_t *hashtable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_malloc
      Src: /src/jansson/src/hashtable.c:210,1
    - Dst: memcpy
      Src: /src/jansson/src/hashtable.c:216,1
    - Dst: list_init
      Src: /src/jansson/src/hashtable.c:221,1
    - Dst: list_init
      Src: /src/jansson/src/hashtable.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - value
    - key
    - key_len
    - hash
    argTypes:
    - json_t*
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 225
    functionName: init_pair
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 0
    functionsReached:
    - list_init
    - memcpy
    - jsonp_malloc
    linkageType: ''
    returnType: pair_t
    signature: pair_t *init_pair(json_t *value, const char *key, size_t key_len, size_t
      hash)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashsize
      Src: /src/jansson/src/hashtable.c:234,1
    - Dst: hashtable_do_rehash
      Src: /src/jansson/src/hashtable.c:235,1
    - Dst: hash_str
      Src: /src/jansson/src/hashtable.c:238,1
    - Dst: hashmask
      Src: /src/jansson/src/hashtable.c:239,1
    - Dst: hashtable_find_pair
      Src: /src/jansson/src/hashtable.c:241,1
    - Dst: json_decref
      Src: /src/jansson/src/hashtable.c:244,1
    - Dst: init_pair
      Src: /src/jansson/src/hashtable.c:247,1
    - Dst: insert_to_bucket
      Src: /src/jansson/src/hashtable.c:252,1
    - Dst: list_insert
      Src: /src/jansson/src/hashtable.c:253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - hashtable
    - key
    - key_len
    - value
    argTypes:
    - hashtable_t*
    - char*
    - size_t
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 258
    functionName: hashtable_set
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 2
    functionsReached:
    - hashtable_do_rehash
    - init_pair
    - hashtable_find_pair
    - hashsize
    - insert_to_bucket
    - list_insert
    - json_decref
    - hash_str
    - hashmask
    linkageType: ''
    returnType: int
    signature: "int hashtable_set(hashtable_t *hashtable, const char *key, size_t
      key_len,\n                  json_t *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_str
      Src: /src/jansson/src/hashtable.c:265,1
    - Dst: hashmask
      Src: /src/jansson/src/hashtable.c:266,1
    - Dst: hashtable_find_pair
      Src: /src/jansson/src/hashtable.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - hashtable
    - key
    - key_len
    argTypes:
    - hashtable_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: hashtable_get
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 2
    functionsReached:
    - hashmask
    - hashtable_find_pair
    - hash_str
    linkageType: ''
    returnType: void
    signature: void *hashtable_get(hashtable_t *hashtable, const char *key, size_t
      key_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_str
      Src: /src/jansson/src/hashtable.c:276,1
    - Dst: hashtable_do_del
      Src: /src/jansson/src/hashtable.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hashtable
    - key
    - key_len
    argTypes:
    - hashtable_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: hashtable_del
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 4
    functionsReached:
    - hashtable_do_del
    - hash_str
    linkageType: ''
    returnType: int
    signature: int hashtable_del(hashtable_t *hashtable, const char *key, size_t key_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_do_clear
      Src: /src/jansson/src/hashtable.c:283,1
    - Dst: hashsize
      Src: /src/jansson/src/hashtable.c:285,1
    - Dst: list_init
      Src: /src/jansson/src/hashtable.c:289,1
    - Dst: list_init
      Src: /src/jansson/src/hashtable.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hashtable
    argTypes:
    - hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 292
    functionName: hashtable_clear
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 1
    functionsReached:
    - list_init
    - hashtable_do_clear
    - hashsize
    linkageType: ''
    returnType: void
    signature: void hashtable_clear(hashtable_t *hashtable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_iter_next
      Src: /src/jansson/src/hashtable.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashtable
    argTypes:
    - hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: hashtable_iter
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 1
    functionsReached:
    - hashtable_iter_next
    linkageType: ''
    returnType: void
    signature: void *hashtable_iter(hashtable_t *hashtable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_str
      Src: /src/jansson/src/hashtable.c:303,1
    - Dst: hashmask
      Src: /src/jansson/src/hashtable.c:304,1
    - Dst: hashtable_find_pair
      Src: /src/jansson/src/hashtable.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - hashtable
    - key
    - key_len
    argTypes:
    - hashtable_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 311
    functionName: hashtable_iter_at
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 1
    functionsReached:
    - hashmask
    - hashtable_find_pair
    - hash_str
    linkageType: ''
    returnType: void
    signature: void *hashtable_iter_at(hashtable_t *hashtable, const char *key, size_t
      key_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hashtable
    - iter
    argTypes:
    - hashtable_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: hashtable_iter_next
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *hashtable_iter_next(hashtable_t *hashtable, void *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ordered_list_to_pair
      Src: /src/jansson/src/hashtable.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: hashtable_iter_key
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 1
    functionsReached:
    - ordered_list_to_pair
    linkageType: ''
    returnType: void
    signature: void *hashtable_iter_key(void *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ordered_list_to_pair
      Src: /src/jansson/src/hashtable.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: hashtable_iter_key_len
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 1
    functionsReached:
    - ordered_list_to_pair
    linkageType: ''
    returnType: size_t
    signature: size_t hashtable_iter_key_len(void *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ordered_list_to_pair
      Src: /src/jansson/src/hashtable.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: hashtable_iter_value
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 1
    functionsReached:
    - ordered_list_to_pair
    linkageType: ''
    returnType: void
    signature: void *hashtable_iter_value(void *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ordered_list_to_pair
      Src: /src/jansson/src/hashtable.c:336,1
    - Dst: json_decref
      Src: /src/jansson/src/hashtable.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - iter
    - value
    argTypes:
    - void*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: hashtable_iter_set
    functionSourceFile: /src/jansson/src/hashtable.c
    functionUses: 1
    functionsReached:
    - ordered_list_to_pair
    - json_decref
    linkageType: ''
    returnType: void
    signature: void hashtable_iter_set(void *iter, json_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: l_isupper
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l_isupper(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: l_islower
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l_islower(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: l_isalpha
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l_isalpha(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: l_isdigit
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l_isdigit(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: l_isxdigit
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l_isxdigit(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: stream_to_lex
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: stream_to_lex(stream)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/jansson/src/load.c:98,1
    - Dst: vsnprintf
      Src: /src/jansson/src/load.c:99,1
    - Dst: va_end
      Src: /src/jansson/src/load.c:101,1
    - Dst: strbuffer_value
      Src: /src/jansson/src/load.c:104,1
    - Dst: snprintf
      Src: /src/jansson/src/load.c:112,1
    - Dst: snprintf
      Src: /src/jansson/src/load.c:126,1
    - Dst: jsonp_error_set
      Src: /src/jansson/src/load.c:134,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - error
    - lex
    - code
    - msg
    argTypes:
    - json_error_t*
    - lex_t*
    - enum json_error_code
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 135
    functionName: error_set
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 1
    functionsReached:
    - va_end
    - jsonp_error_set
    - va_start
    - strbuffer_value
    - vsnprintf
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void error_set(json_error_t *error, const lex_t *lex, enum json_error_code
      code,\n                      const char *msg, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - stream
    - get
    - data
    argTypes:
    - stream_t*
    - get_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: stream_init
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stream_init(stream_t *stream, get_func get, void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stream_t*::get
      Src: /src/jansson/src/load.c:158,1
    - Dst: utf8_check_first
      Src: /src/jansson/src/load.c:171,1
    - Dst: assert
      Src: /src/jansson/src/load.c:175,1
    - Dst: stream_t*::get
      Src: /src/jansson/src/load.c:178,1
    - Dst: utf8_check_full
      Src: /src/jansson/src/load.c:180,1
    - Dst: utf8_check_first
      Src: /src/jansson/src/load.c:195,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:205,1
    - Dst: stream_to_lex
      Src: /src/jansson/src/load.c:205,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - stream
    - error
    argTypes:
    - stream_t*
    - json_error_t*
    assertStmts:
    - condition: (count >= 2)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/jansson/src/load.c
    constantsTouched: []
    func_position:
      end: 208
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 208
    functionName: stream_get
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - stream_t*::get
    - error_set
    - stream_to_lex
    - assert
    - utf8_check_first
    - utf8_check_full
    linkageType: ''
    returnType: int
    signature: int stream_get(stream_t *stream, json_error_t *error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: utf8_check_first
      Src: /src/jansson/src/load.c:218,1
    - Dst: assert
      Src: /src/jansson/src/load.c:221,1
    - Dst: assert
      Src: /src/jansson/src/load.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - stream
    - c
    argTypes:
    - stream_t*
    - int
    assertStmts:
    - condition: (stream->buffer_pos > 0)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/jansson/src/load.c
    - condition: (stream->buffer[stream->buffer_pos] == c)
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/jansson/src/load.c
    constantsTouched: []
    func_position:
      end: 224
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 224
    functionName: stream_unget
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - assert
    - utf8_check_first
    linkageType: ''
    returnType: void
    signature: void stream_unget(stream_t *stream, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream_get
      Src: /src/jansson/src/load.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lex
    - error
    argTypes:
    - lex_t*
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: lex_get
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - stream_get
    linkageType: ''
    returnType: int
    signature: int lex_get(lex_t *lex, json_error_t *error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuffer_append_byte
      Src: /src/jansson/src/load.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lex
    - c
    argTypes:
    - lex_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: lex_save
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - strbuffer_append_byte
    linkageType: ''
    returnType: void
    signature: void lex_save(lex_t *lex, int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stream_get
      Src: /src/jansson/src/load.c:233,1
    - Dst: lex_save
      Src: /src/jansson/src/load.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - lex
    - error
    argTypes:
    - lex_t*
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: lex_get_save
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - lex_save
    - stream_get
    linkageType: ''
    returnType: int
    signature: int lex_get_save(lex_t *lex, json_error_t *error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream_unget
      Src: /src/jansson/src/load.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lex
    - c
    argTypes:
    - lex_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: lex_unget
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - stream_unget
    linkageType: ''
    returnType: void
    signature: void lex_unget(lex_t *lex, int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stream_unget
      Src: /src/jansson/src/load.c:250,1
    - Dst: strbuffer_pop
      Src: /src/jansson/src/load.c:254,1
    - Dst: assert
      Src: /src/jansson/src/load.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lex
    - c
    argTypes:
    - lex_t*
    - int
    assertStmts:
    - condition: (c == d)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/jansson/src/load.c
    constantsTouched: []
    func_position:
      end: 257
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 257
    functionName: lex_unget_unsave
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - assert
    - stream_unget
    - strbuffer_pop
    linkageType: ''
    returnType: void
    signature: void lex_unget_unsave(lex_t *lex, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lex_save
      Src: /src/jansson/src/load.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lex
    argTypes:
    - lex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 265
    functionName: lex_save_cached
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - lex_save
    linkageType: ''
    returnType: void
    signature: void lex_save_cached(lex_t *lex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_free
      Src: /src/jansson/src/load.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lex
    argTypes:
    - lex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: lex_free_string
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - jsonp_free
    linkageType: ''
    returnType: void
    signature: void lex_free_string(lex_t *lex)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/jansson/src/load.c:278,1
    - Dst: l_isdigit
      Src: /src/jansson/src/load.c:283,1
    - Dst: l_islower
      Src: /src/jansson/src/load.c:285,1
    - Dst: l_isupper
      Src: /src/jansson/src/load.c:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str[0] == 'u')
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/jansson/src/load.c
    constantsTouched: []
    func_position:
      end: 294
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 294
    functionName: decode_unicode_escape
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - assert
    - l_isupper
    - l_islower
    - l_isdigit
    linkageType: ''
    returnType: int32_t
    signature: int32_t decode_unicode_escape(const char *str)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:305,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:312,1
    - Dst: lex_unget_unsave
      Src: /src/jansson/src/load.c:319,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:321,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:323,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:329,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:331,1
    - Dst: l_isxdigit
      Src: /src/jansson/src/load.c:333,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:334,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:338,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:342,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:344,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:348,1
    - Dst: jsonp_malloc
      Src: /src/jansson/src/load.c:358,1
    - Dst: strbuffer_value
      Src: /src/jansson/src/load.c:366,1
    - Dst: decode_unicode_escape
      Src: /src/jansson/src/load.c:375,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:377,1
    - Dst: decode_unicode_escape
      Src: /src/jansson/src/load.c:386,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:388,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:400,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:406,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:411,1
    - Dst: utf8_encode
      Src: /src/jansson/src/load.c:416,1
    - Dst: assert
      Src: /src/jansson/src/load.c:417,1
    - Dst: assert
      Src: /src/jansson/src/load.c:442,1
    - Dst: lex_free_string
      Src: /src/jansson/src/load.c:456,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 128
    argCount: 2
    argNames:
    - lex
    - error
    argTypes:
    - lex_t*
    - json_error_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/jansson/src/load.c
    - condition: (0)
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/jansson/src/load.c
    constantsTouched: []
    func_position:
      end: 457
      start: 296
    functionDepth: 5
    functionLinenumber: 296
    functionLinenumberEnd: 457
    functionName: lex_scan_string
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - l_isxdigit
    - lex_get_save
    - error_set
    - utf8_encode
    - lex_free_string
    - strbuffer_value
    - jsonp_malloc
    - lex_unget_unsave
    - assert
    - decode_unicode_escape
    linkageType: ''
    returnType: void
    signature: void lex_scan_string(lex_t *lex, json_error_t *error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:479,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:482,1
    - Dst: l_isdigit
      Src: /src/jansson/src/load.c:483,1
    - Dst: lex_unget_unsave
      Src: /src/jansson/src/load.c:484,1
    - Dst: l_isdigit
      Src: /src/jansson/src/load.c:487,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:489,1
    - Dst: l_isdigit
      Src: /src/jansson/src/load.c:490,1
    - Dst: lex_unget_unsave
      Src: /src/jansson/src/load.c:492,1
    - Dst: lex_unget_unsave
      Src: /src/jansson/src/load.c:499,1
    - Dst: strbuffer_value
      Src: /src/jansson/src/load.c:501,1
    - Dst: json_strtoint
      Src: /src/jansson/src/load.c:504,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:507,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:510,1
    - Dst: assert
      Src: /src/jansson/src/load.c:514,1
    - Dst: lex_get
      Src: /src/jansson/src/load.c:522,1
    - Dst: l_isdigit
      Src: /src/jansson/src/load.c:523,1
    - Dst: lex_unget
      Src: /src/jansson/src/load.c:524,1
    - Dst: lex_save
      Src: /src/jansson/src/load.c:527,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:530,1
    - Dst: l_isdigit
      Src: /src/jansson/src/load.c:531,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:535,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:537,1
    - Dst: l_isdigit
      Src: /src/jansson/src/load.c:539,1
    - Dst: lex_unget_unsave
      Src: /src/jansson/src/load.c:540,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:545,1
    - Dst: l_isdigit
      Src: /src/jansson/src/load.c:546,1
    - Dst: lex_unget_unsave
      Src: /src/jansson/src/load.c:549,1
    - Dst: jsonp_strtod
      Src: /src/jansson/src/load.c:551,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:552,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 3
    argNames:
    - lex
    - c
    - error
    argTypes:
    - lex_t*
    - int
    - json_error_t*
    assertStmts:
    - condition: (end == saved_text + lex->saved_text.length)
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/jansson/src/load.c
    constantsTouched: []
    func_position:
      end: 562
      start: 471
    functionDepth: 5
    functionLinenumber: 471
    functionLinenumberEnd: 562
    functionName: lex_scan_number
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - lex_save
    - lex_get
    - lex_get_save
    - error_set
    - lex_unget
    - strbuffer_value
    - jsonp_strtod
    - json_strtoint
    - lex_unget_unsave
    - l_isdigit
    - assert
    linkageType: ''
    returnType: int
    signature: int lex_scan_number(lex_t *lex, int c, json_error_t *error)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strbuffer_clear
      Src: /src/jansson/src/load.c:567,1
    - Dst: lex_free_string
      Src: /src/jansson/src/load.c:570,1
    - Dst: lex_get
      Src: /src/jansson/src/load.c:573,1
    - Dst: lex_save
      Src: /src/jansson/src/load.c:586,1
    - Dst: lex_scan_string
      Src: /src/jansson/src/load.c:592,1
    - Dst: l_isdigit
      Src: /src/jansson/src/load.c:594,1
    - Dst: lex_scan_number
      Src: /src/jansson/src/load.c:595,1
    - Dst: l_isalpha
      Src: /src/jansson/src/load.c:599,1
    - Dst: lex_get_save
      Src: /src/jansson/src/load.c:604,1
    - Dst: l_isalpha
      Src: /src/jansson/src/load.c:605,1
    - Dst: lex_unget_unsave
      Src: /src/jansson/src/load.c:606,1
    - Dst: strbuffer_value
      Src: /src/jansson/src/load.c:608,1
    - Dst: strcmp
      Src: /src/jansson/src/load.c:610,1
    - Dst: strcmp
      Src: /src/jansson/src/load.c:612,1
    - Dst: strcmp
      Src: /src/jansson/src/load.c:614,1
    - Dst: lex_save_cached
      Src: /src/jansson/src/load.c:623,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 45
    argCount: 2
    argNames:
    - lex
    - error
    argTypes:
    - lex_t*
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 564
    functionDepth: 6
    functionLinenumber: 564
    functionLinenumberEnd: 629
    functionName: lex_scan
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - lex_scan_number
    - lex_save_cached
    - lex_scan_string
    - lex_save
    - l_isalpha
    - lex_get
    - strbuffer_clear
    - lex_get_save
    - strcmp
    - lex_free_string
    - strbuffer_value
    - l_isdigit
    - lex_unget_unsave
    linkageType: ''
    returnType: int
    signature: int lex_scan(lex_t *lex, json_error_t *error)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - lex
    - out_len
    argTypes:
    - lex_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 640
    functionName: lex_steal_string
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lex_steal_string(lex_t *lex, size_t *out_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stream_init
      Src: /src/jansson/src/load.c:643,1
    - Dst: strbuffer_init
      Src: /src/jansson/src/load.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - lex
    - get
    - flags
    - data
    argTypes:
    - lex_t*
    - get_func
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 650
    functionName: lex_init
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - stream_init
    - strbuffer_init
    linkageType: ''
    returnType: int
    signature: int lex_init(lex_t *lex, get_func get, size_t flags, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lex_free_string
      Src: /src/jansson/src/load.c:654,1
    - Dst: strbuffer_close
      Src: /src/jansson/src/load.c:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lex
    argTypes:
    - lex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 656
    functionName: lex_close
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - strbuffer_close
    - lex_free_string
    linkageType: ''
    returnType: void
    signature: void lex_close(lex_t *lex)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/src/load.c:663,1
    - Dst: lex_scan
      Src: /src/jansson/src/load.c:667,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:677,1
    - Dst: lex_steal_string
      Src: /src/jansson/src/load.c:681,1
    - Dst: memchr
      Src: /src/jansson/src/load.c:684,1
    - Dst: jsonp_free
      Src: /src/jansson/src/load.c:685,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:686,1
    - Dst: json_object_getn
      Src: /src/jansson/src/load.c:692,1
    - Dst: jsonp_free
      Src: /src/jansson/src/load.c:693,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:694,1
    - Dst: lex_scan
      Src: /src/jansson/src/load.c:699,1
    - Dst: jsonp_free
      Src: /src/jansson/src/load.c:701,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:702,1
    - Dst: lex_scan
      Src: /src/jansson/src/load.c:706,1
    - Dst: parse_value
      Src: /src/jansson/src/load.c:707,1
    - Dst: jsonp_free
      Src: /src/jansson/src/load.c:709,1
    - Dst: json_object_setn_new_nocheck
      Src: /src/jansson/src/load.c:713,1
    - Dst: jsonp_free
      Src: /src/jansson/src/load.c:714,1
    - Dst: jsonp_free
      Src: /src/jansson/src/load.c:718,1
    - Dst: lex_scan
      Src: /src/jansson/src/load.c:720,1
    - Dst: lex_scan
      Src: /src/jansson/src/load.c:724,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:728,1
    - Dst: json_decref
      Src: /src/jansson/src/load.c:735,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 3
    argNames:
    - lex
    - flags
    - error
    argTypes:
    - lex_t*
    - size_t
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 662
    functionDepth: 7
    functionLinenumber: 662
    functionLinenumberEnd: 737
    functionName: parse_object
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - json_object_getn
    - jsonp_free
    - parse_value
    - json_object_setn_new_nocheck
    - memchr
    - error_set
    - lex_scan
    - lex_steal_string
    - json_decref
    - json_object
    linkageType: ''
    returnType: json_t
    signature: json_t *parse_object(lex_t *lex, size_t flags, json_error_t *error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/src/load.c:740,1
    - Dst: lex_scan
      Src: /src/jansson/src/load.c:744,1
    - Dst: parse_value
      Src: /src/jansson/src/load.c:749,1
    - Dst: json_array_append_new
      Src: /src/jansson/src/load.c:753,1
    - Dst: lex_scan
      Src: /src/jansson/src/load.c:757,1
    - Dst: lex_scan
      Src: /src/jansson/src/load.c:761,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:765,1
    - Dst: json_decref
      Src: /src/jansson/src/load.c:772,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - lex
    - flags
    - error
    argTypes:
    - lex_t*
    - size_t
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 739
    functionDepth: 7
    functionLinenumber: 739
    functionLinenumberEnd: 774
    functionName: parse_array
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - parse_value
    - error_set
    - json_array
    - lex_scan
    - json_decref
    - json_array_append_new
    linkageType: ''
    returnType: json_t
    signature: json_t *parse_array(lex_t *lex, size_t flags, json_error_t *error)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: error_set
      Src: /src/jansson/src/load.c:781,1
    - Dst: memchr
      Src: /src/jansson/src/load.c:791,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:792,1
    - Dst: jsonp_stringn_nocheck_own
      Src: /src/jansson/src/load.c:798,1
    - Dst: json_integer
      Src: /src/jansson/src/load.c:805,1
    - Dst: json_real
      Src: /src/jansson/src/load.c:810,1
    - Dst: json_true
      Src: /src/jansson/src/load.c:815,1
    - Dst: json_false
      Src: /src/jansson/src/load.c:819,1
    - Dst: json_null
      Src: /src/jansson/src/load.c:823,1
    - Dst: parse_object
      Src: /src/jansson/src/load.c:827,1
    - Dst: parse_array
      Src: /src/jansson/src/load.c:831,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:835,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:839,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 3
    argNames:
    - lex
    - flags
    - error
    argTypes:
    - lex_t*
    - size_t
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 776
    functionDepth: 8
    functionLinenumber: 776
    functionLinenumberEnd: 848
    functionName: parse_value
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 2
    functionsReached:
    - parse_array
    - memchr
    - json_true
    - error_set
    - jsonp_stringn_nocheck_own
    - json_real
    - json_false
    - json_integer
    - parse_object
    - json_null
    linkageType: ''
    returnType: json_t
    signature: json_t *parse_value(lex_t *lex, size_t flags, json_error_t *error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lex_scan
      Src: /src/jansson/src/load.c:855,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:858,1
    - Dst: parse_value
      Src: /src/jansson/src/load.c:863,1
    - Dst: lex_scan
      Src: /src/jansson/src/load.c:868,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:870,1
    - Dst: json_decref
      Src: /src/jansson/src/load.c:872,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - lex
    - flags
    - error
    argTypes:
    - lex_t*
    - size_t
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 850
    functionDepth: 9
    functionLinenumber: 850
    functionLinenumberEnd: 883
    functionName: parse_json
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 11
    functionsReached:
    - lex_scan
    - json_decref
    - parse_value
    - error_set
    linkageType: ''
    returnType: json_t
    signature: json_t *parse_json(lex_t *lex, size_t flags, json_error_t *error)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 900
    functionName: string_get
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int string_get(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_error_init
      Src: /src/jansson/src/load.c:907,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:910,1
    - Dst: lex_init
      Src: /src/jansson/src/load.c:917,1
    - Dst: parse_json
      Src: /src/jansson/src/load.c:920,1
    - Dst: lex_close
      Src: /src/jansson/src/load.c:922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - string
    - flags
    - error
    argTypes:
    - char*
    - size_t
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 902
    functionDepth: 10
    functionLinenumber: 902
    functionLinenumberEnd: 924
    functionName: json_loads
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 46
    functionsReached:
    - jsonp_error_init
    - error_set
    - parse_json
    - lex_init
    - lex_close
    linkageType: ''
    returnType: json_t
    signature: json_t *json_loads(const char *string, size_t flags, json_error_t *error)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 941
    functionName: buffer_get
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int buffer_get(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_error_init
      Src: /src/jansson/src/load.c:948,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:951,1
    - Dst: lex_init
      Src: /src/jansson/src/load.c:959,1
    - Dst: parse_json
      Src: /src/jansson/src/load.c:962,1
    - Dst: lex_close
      Src: /src/jansson/src/load.c:964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - buffer
    - buflen
    - flags
    - error
    argTypes:
    - char*
    - size_t
    - size_t
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 943
    functionDepth: 10
    functionLinenumber: 943
    functionLinenumberEnd: 966
    functionName: json_loadb
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 10
    functionsReached:
    - jsonp_error_init
    - error_set
    - parse_json
    - lex_init
    - lex_close
    linkageType: ''
    returnType: json_t
    signature: json_t *json_loadb(const char *buffer, size_t buflen, size_t flags,
      json_error_t *error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_error_init
      Src: /src/jansson/src/load.c:978,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:981,1
    - Dst: lex_init
      Src: /src/jansson/src/load.c:985,1
    - Dst: parse_json
      Src: /src/jansson/src/load.c:988,1
    - Dst: lex_close
      Src: /src/jansson/src/load.c:990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - input
    - flags
    - error
    argTypes:
    - FILE*
    - size_t
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 968
    functionDepth: 10
    functionLinenumber: 968
    functionLinenumberEnd: 992
    functionName: json_loadf
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 2
    functionsReached:
    - jsonp_error_init
    - error_set
    - parse_json
    - lex_init
    - lex_close
    linkageType: ''
    returnType: json_t
    signature: json_t *json_loadf(FILE *input, size_t flags, json_error_t *error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/jansson/src/load.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1001
    functionName: fd_get_func
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: int
    signature: int fd_get_func(int *fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_error_init
      Src: /src/jansson/src/load.c:1015,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:1018,1
    - Dst: lex_init
      Src: /src/jansson/src/load.c:1022,1
    - Dst: parse_json
      Src: /src/jansson/src/load.c:1025,1
    - Dst: lex_close
      Src: /src/jansson/src/load.c:1027,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - input
    - flags
    - error
    argTypes:
    - int
    - size_t
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1003
    functionDepth: 10
    functionLinenumber: 1003
    functionLinenumberEnd: 1029
    functionName: json_loadfd
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 2
    functionsReached:
    - jsonp_error_init
    - error_set
    - parse_json
    - lex_init
    - lex_close
    linkageType: ''
    returnType: json_t
    signature: json_t *json_loadfd(int input, size_t flags, json_error_t *error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_error_init
      Src: /src/jansson/src/load.c:1035,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:1038,1
    - Dst: fopen
      Src: /src/jansson/src/load.c:1042,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:1044,1
    - Dst: strerror
      Src: /src/jansson/src/load.c:1045,1
    - Dst: json_loadf
      Src: /src/jansson/src/load.c:1049,1
    - Dst: fclose
      Src: /src/jansson/src/load.c:1051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - path
    - flags
    - error
    argTypes:
    - char*
    - size_t
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1031
    functionDepth: 11
    functionLinenumber: 1031
    functionLinenumberEnd: 1053
    functionName: json_load_file
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 3
    functionsReached:
    - fclose
    - json_loadf
    - jsonp_error_init
    - error_set
    - strerror
    - fopen
    linkageType: ''
    returnType: json_t
    signature: json_t *json_load_file(const char *path, size_t flags, json_error_t
      *error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: callback_data_t*::callback
      Src: /src/jansson/src/load.c:1071,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1079
    functionName: callback_get
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 0
    functionsReached:
    - callback_data_t*::callback
    linkageType: ''
    returnType: int
    signature: int callback_get(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/jansson/src/load.c:1088,1
    - Dst: jsonp_error_init
      Src: /src/jansson/src/load.c:1092,1
    - Dst: error_set
      Src: /src/jansson/src/load.c:1095,1
    - Dst: lex_init
      Src: /src/jansson/src/load.c:1099,1
    - Dst: parse_json
      Src: /src/jansson/src/load.c:1102,1
    - Dst: lex_close
      Src: /src/jansson/src/load.c:1104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - callback
    - arg
    - flags
    - error
    argTypes:
    - json_load_callback_t
    - void*
    - size_t
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1081
    functionDepth: 10
    functionLinenumber: 1081
    functionLinenumberEnd: 1106
    functionName: json_load_callback
    functionSourceFile: /src/jansson/src/load.c
    functionUses: 1
    functionsReached:
    - jsonp_error_init
    - error_set
    - parse_json
    - memset
    - lex_init
    - lex_close
    linkageType: ''
    returnType: json_t
    signature: "json_t *json_load_callback(json_load_callback_t callback, void *arg,
      size_t flags,\n                           json_error_t *error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/jansson/src/strconv.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: get_decimal_point
    functionSourceFile: /src/jansson/src/strconv.c
    functionUses: 0
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: char get_decimal_point()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_decimal_point
      Src: /src/jansson/src/strconv.c:34,1
    - Dst: strchr
      Src: /src/jansson/src/strconv.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - strbuffer
    argTypes:
    - strbuffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: to_locale
    functionSourceFile: /src/jansson/src/strconv.c
    functionUses: 0
    functionsReached:
    - strchr
    - get_decimal_point
    linkageType: ''
    returnType: void
    signature: void to_locale(strbuffer_t *strbuffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_locale
      Src: /src/jansson/src/strconv.c:49,1
    - Dst: strtod
      Src: /src/jansson/src/strconv.c:52,1
    - Dst: assert
      Src: /src/jansson/src/strconv.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - strbuffer
    - out
    argTypes:
    - strbuffer_t*
    - double*
    assertStmts:
    - condition: (end == strbuffer->value + strbuffer->length)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/jansson/src/strconv.c
    constantsTouched: []
    func_position:
      end: 62
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 62
    functionName: jsonp_strtod
    functionSourceFile: /src/jansson/src/strconv.c
    functionUses: 1
    functionsReached:
    - assert
    - to_locale
    - strtod
    linkageType: ''
    returnType: int
    signature: int jsonp_strtod(strbuffer_t *strbuffer, double *out)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dtoa_r
      Src: /src/jansson/src/strconv.c:80,1
    - Dst: memset
      Src: /src/jansson/src/strconv.c:123,1
    - Dst: memset
      Src: /src/jansson/src/strconv.c:126,1
    - Dst: memset
      Src: /src/jansson/src/strconv.c:129,1
    - Dst: strncpy
      Src: /src/jansson/src/strconv.c:135,1
    - Dst: strncpy
      Src: /src/jansson/src/strconv.c:138,1
    - Dst: strncpy
      Src: /src/jansson/src/strconv.c:141,1
    - Dst: memset
      Src: /src/jansson/src/strconv.c:147,1
    - Dst: memset
      Src: /src/jansson/src/strconv.c:150,1
    - Dst: memset
      Src: /src/jansson/src/strconv.c:153,1
    - Dst: sprintf
      Src: /src/jansson/src/strconv.c:162,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 63
    argCount: 4
    argNames:
    - buffer
    - size
    - value
    - precision
    argTypes:
    - char*
    - size_t
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 168
    functionName: jsonp_dtostr
    functionSourceFile: /src/jansson/src/strconv.c
    functionUses: 0
    functionsReached:
    - memset
    - sprintf
    - dtoa_r
    - strncpy
    linkageType: ''
    returnType: int
    signature: int jsonp_dtostr(char *buffer, size_t size, double value, int precision)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_decimal_point
      Src: /src/jansson/src/strconv.c:174,1
    - Dst: strchr
      Src: /src/jansson/src/strconv.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 183
    functionName: from_locale
    functionSourceFile: /src/jansson/src/strconv.c
    functionUses: 0
    functionsReached:
    - strchr
    - get_decimal_point
    linkageType: ''
    returnType: void
    signature: void from_locale(char *buffer)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/jansson/src/strconv.c:193,1
    - Dst: from_locale
      Src: /src/jansson/src/strconv.c:201,1
    - Dst: strchr
      Src: /src/jansson/src/strconv.c:205,1
    - Dst: strchr
      Src: /src/jansson/src/strconv.c:205,1
    - Dst: strchr
      Src: /src/jansson/src/strconv.c:218,1
    - Dst: memmove
      Src: /src/jansson/src/strconv.c:230,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - buffer
    - size
    - value
    - precision
    argTypes:
    - char*
    - size_t
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 236
    functionName: jsonp_dtostr
    functionSourceFile: /src/jansson/src/strconv.c
    functionUses: 0
    functionsReached:
    - snprintf
    - from_locale
    - strchr
    - memmove
    linkageType: ''
    returnType: int
    signature: int jsonp_dtostr(char *buffer, size_t size, double value, int precision)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: hashtable_key_to_iter
    functionSourceFile: /src/jansson/src/hashtable.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashtable_key_to_iter(key_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: JANSSON_ATTRS
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JANSSON_ATTRS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: json_typeof
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_typeof(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: json_is_object
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_is_object(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: json_is_array
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_is_array(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: json_is_string
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_is_string(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: json_is_integer
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_is_integer(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: json_is_real
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_is_real(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: json_is_number
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_is_number(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: json_is_true
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_is_true(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: json_is_false
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_is_false(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: json_is_boolean
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_is_boolean(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: json_is_null
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_is_null(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: json_boolean
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_boolean(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: JSON_INTERNAL_INCREF
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_INTERNAL_INCREF(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: JSON_INTERNAL_DECREF
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_INTERNAL_DECREF(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: JSON_INTERNAL_INCREF
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_INTERNAL_INCREF(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: JSON_INTERNAL_DECREF
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_INTERNAL_DECREF(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: JSON_INTERNAL_INCREF
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_INTERNAL_INCREF(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: JSON_INTERNAL_DECREF
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_INTERNAL_DECREF(json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_INTERNAL_INCREF
      Src: /src/jansson/src/jansson.h:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: json_incref
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 12
    functionsReached:
    - JSON_INTERNAL_INCREF
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE *json_incref(json_t *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_INTERNAL_DECREF
      Src: /src/jansson/src/jansson.h:132,1
    - Dst: json_delete
      Src: /src/jansson/src/jansson.h:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: json_decref
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 308
    functionsReached:
    - JSON_INTERNAL_DECREF
    - json_delete
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_decref(json_t *json)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_decref
      Src: /src/jansson/src/jansson.h:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - json
    argTypes:
    - json_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: json_decrefp
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached:
    - json_decref
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_decrefp(json_t **json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - json_error_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: json_error_code
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_error_code(const json_error_t *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: json_object_foreach
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_object_foreach(object, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - object
    - ','
    - key
    - ','
    - key_len
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 227
    functionName: json_object_keylen_foreach
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_object_keylen_foreach(object, key, key_len, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - object
    - ','
    - n
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: json_object_foreach_safe
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_object_foreach_safe(object, n, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - object
    - ','
    - n
    - ','
    - key
    - ','
    - key_len
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: json_object_keylen_foreach_safe
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_object_keylen_foreach_safe(object, n, key, key_len, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - array
    - ','
    - index
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: json_array_foreach
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_array_foreach(array, index, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set_new
      Src: /src/jansson/src/jansson.h:249,1
    - Dst: json_incref
      Src: /src/jansson/src/jansson.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - key
    - value
    argTypes:
    - json_t*
    - char*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: json_object_set
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 28
    functionsReached:
    - json_incref
    - json_object_set_new
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_object_set(json_t *object, const char *key, json_t
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_setn_new
      Src: /src/jansson/src/jansson.h:254,1
    - Dst: json_incref
      Src: /src/jansson/src/jansson.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - object
    - key
    - key_len
    - value
    argTypes:
    - json_t*
    - char*
    - size_t
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: json_object_setn
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 0
    functionsReached:
    - json_object_setn_new
    - json_incref
    linkageType: ''
    returnType: JSON_INLINE
    signature: "JSON_INLINE json_object_setn(json_t *object, const char *key, size_t
      key_len,\n                                        json_t *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_set_new_nocheck
      Src: /src/jansson/src/jansson.h:259,1
    - Dst: json_incref
      Src: /src/jansson/src/jansson.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - key
    - value
    argTypes:
    - json_t*
    - char*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: json_object_set_nocheck
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 1
    functionsReached:
    - json_object_set_new_nocheck
    - json_incref
    linkageType: ''
    returnType: JSON_INLINE
    signature: "JSON_INLINE json_object_set_nocheck(json_t *object, const char *key,\n
      \                                              json_t *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_setn_new_nocheck
      Src: /src/jansson/src/jansson.h:264,1
    - Dst: json_incref
      Src: /src/jansson/src/jansson.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - object
    - key
    - key_len
    - value
    argTypes:
    - json_t*
    - char*
    - size_t
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: json_object_setn_nocheck
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 11
    functionsReached:
    - json_object_setn_new_nocheck
    - json_incref
    linkageType: ''
    returnType: JSON_INLINE
    signature: "JSON_INLINE json_object_setn_nocheck(json_t *object, const char *key,\n
      \                                               size_t key_len, json_t *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_iter_set_new
      Src: /src/jansson/src/jansson.h:268,1
    - Dst: json_incref
      Src: /src/jansson/src/jansson.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - iter
    - value
    argTypes:
    - json_t*
    - void*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: json_object_iter_set
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 1
    functionsReached:
    - json_object_iter_set_new
    - json_incref
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_object_iter_set(json_t *object, void *iter, json_t
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_update
      Src: /src/jansson/src/jansson.h:272,1
    - Dst: json_decref
      Src: /src/jansson/src/jansson.h:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - object
    - other
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: json_object_update_new
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 1
    functionsReached:
    - json_decref
    - json_object_update
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_object_update_new(json_t *object, json_t *other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_update_existing
      Src: /src/jansson/src/jansson.h:278,1
    - Dst: json_decref
      Src: /src/jansson/src/jansson.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - object
    - other
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 4
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: json_object_update_existing_new
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 1
    functionsReached:
    - json_decref
    - json_object_update_existing
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_object_update_existing_new(json_t *object, json_t
      *other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_update_missing
      Src: /src/jansson/src/jansson.h:284,1
    - Dst: json_decref
      Src: /src/jansson/src/jansson.h:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - object
    - other
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: json_object_update_missing_new
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 1
    functionsReached:
    - json_decref
    - json_object_update_missing
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_object_update_missing_new(json_t *object, json_t *other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_array_set_new
      Src: /src/jansson/src/jansson.h:300,1
    - Dst: json_incref
      Src: /src/jansson/src/jansson.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - array
    - ind
    - value
    argTypes:
    - json_t*
    - size_t
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: json_array_set
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 2
    functionsReached:
    - json_array_set_new
    - json_incref
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_array_set(json_t *array, size_t ind, json_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_array_append_new
      Src: /src/jansson/src/jansson.h:304,1
    - Dst: json_incref
      Src: /src/jansson/src/jansson.h:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - value
    argTypes:
    - json_t*
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: json_array_append
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 10
    functionsReached:
    - json_array_append_new
    - json_incref
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_array_append(json_t *array, json_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_array_insert_new
      Src: /src/jansson/src/jansson.h:308,1
    - Dst: json_incref
      Src: /src/jansson/src/jansson.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - array
    - ind
    - value
    argTypes:
    - json_t*
    - size_t
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: json_array_insert
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 2
    functionsReached:
    - json_array_insert_new
    - json_incref
    linkageType: ''
    returnType: JSON_INLINE
    signature: JSON_INLINE json_array_insert(json_t *array, size_t ind, json_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: JSON_INDENT
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_INDENT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: JSON_REAL_PRECISION
    functionSourceFile: /src/jansson/src/jansson.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_REAL_PRECISION(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: FLAGS_TO_INDENT
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAGS_TO_INDENT(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: FLAGS_TO_PRECISION
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAGS_TO_PRECISION(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strbuffer_append_bytes
      Src: /src/jansson/src/dump.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buffer
    - size
    - data
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: dump_to_strbuffer
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 0
    functionsReached:
    - strbuffer_append_bytes
    linkageType: ''
    returnType: int
    signature: int dump_to_strbuffer(const char *buffer, size_t size, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/jansson/src/dump.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buffer
    - size
    - data
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: dump_to_buffer
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int dump_to_buffer(const char *buffer, size_t size, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/jansson/src/dump.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - size
    - data
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: dump_to_file
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: int
    signature: int dump_to_file(const char *buffer, size_t size, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/jansson/src/dump.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - size
    - data
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: dump_to_fd
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int dump_to_fd(const char *buffer, size_t size, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLAGS_TO_INDENT
      Src: /src/jansson/src/dump.c:73,1
    - Dst: FLAGS_TO_INDENT
      Src: /src/jansson/src/dump.c:74,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:76,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:83,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - flags
    - depth
    - space
    - dump
    - data
    argTypes:
    - size_t
    - int
    - int
    - json_dump_callback_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: dump_indent
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 0
    functionsReached:
    - dump
    - FLAGS_TO_INDENT
    linkageType: ''
    returnType: int
    signature: "int dump_indent(size_t flags, int depth, int space, json_dump_callback_t
      dump,\n                       void *data)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: dump
      Src: /src/jansson/src/dump.c:99,1
    - Dst: utf8_iterate
      Src: /src/jansson/src/dump.c:110,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:130,1
    - Dst: snprintf
      Src: /src/jansson/src/dump.c:167,1
    - Dst: snprintf
      Src: /src/jansson/src/dump.c:179,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:189,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:195,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 70
    argCount: 5
    argNames:
    - str
    - len
    - dump
    - data
    - flags
    argTypes:
    - char*
    - size_t
    - json_dump_callback_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 196
    functionName: dump_string
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 1
    functionsReached:
    - snprintf
    - utf8_iterate
    - dump
    linkageType: ''
    returnType: int
    signature: "int dump_string(const char *str, size_t len, json_dump_callback_t
      dump, void *data,\n                       size_t flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/jansson/src/dump.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 213
    functionName: compare_keys
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int compare_keys(const void *key1, const void *key2)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: json_typeof
      Src: /src/jansson/src/dump.c:227,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:229,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:232,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:235,1
    - Dst: snprintf
      Src: /src/jansson/src/dump.c:241,1
    - Dst: json_integer_value
      Src: /src/jansson/src/dump.c:242,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:246,1
    - Dst: json_real_value
      Src: /src/jansson/src/dump.c:252,1
    - Dst: jsonp_dtostr
      Src: /src/jansson/src/dump.c:254,1
    - Dst: FLAGS_TO_PRECISION
      Src: /src/jansson/src/dump.c:255,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:259,1
    - Dst: dump_string
      Src: /src/jansson/src/dump.c:263,1
    - Dst: json_string_value
      Src: /src/jansson/src/dump.c:263,1
    - Dst: json_string_length
      Src: /src/jansson/src/dump.c:263,1
    - Dst: jsonp_loop_check
      Src: /src/jansson/src/dump.c:275,1
    - Dst: json_array_size
      Src: /src/jansson/src/dump.c:278,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:280,1
    - Dst: hashtable_del
      Src: /src/jansson/src/dump.c:283,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:284,1
    - Dst: dump_indent
      Src: /src/jansson/src/dump.c:286,1
    - Dst: do_dump
      Src: /src/jansson/src/dump.c:290,1
    - Dst: json_array_get
      Src: /src/jansson/src/dump.c:290,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:294,1
    - Dst: dump_indent
      Src: /src/jansson/src/dump.c:294,1
    - Dst: do_dump
      Src: /src/jansson/src/dump.c:298,1
    - Dst: json_array_get
      Src: /src/jansson/src/dump.c:298,1
    - Dst: dump_indent
      Src: /src/jansson/src/dump.c:300,1
    - Dst: hashtable_del
      Src: /src/jansson/src/dump.c:303,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:304,1
    - Dst: jsonp_loop_check
      Src: /src/jansson/src/dump.c:323,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:327,1
    - Dst: json_object_iter
      Src: /src/jansson/src/dump.c:330,1
    - Dst: hashtable_del
      Src: /src/jansson/src/dump.c:332,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:333,1
    - Dst: dump_indent
      Src: /src/jansson/src/dump.c:335,1
    - Dst: json_object_size
      Src: /src/jansson/src/dump.c:342,1
    - Dst: jsonp_malloc
      Src: /src/jansson/src/dump.c:343,1
    - Dst: json_object_iter_key
      Src: /src/jansson/src/dump.c:351,1
    - Dst: json_object_iter_key_len
      Src: /src/jansson/src/dump.c:352,1
    - Dst: json_object_iter_next
      Src: /src/jansson/src/dump.c:354,1
    - Dst: assert
      Src: /src/jansson/src/dump.c:357,1
    - Dst: qsort
      Src: /src/jansson/src/dump.c:359,1
    - Dst: json_object_getn
      Src: /src/jansson/src/dump.c:366,1
    - Dst: assert
      Src: /src/jansson/src/dump.c:367,1
    - Dst: dump_string
      Src: /src/jansson/src/dump.c:369,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:370,1
    - Dst: do_dump
      Src: /src/jansson/src/dump.c:371,1
    - Dst: jsonp_free
      Src: /src/jansson/src/dump.c:372,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:377,1
    - Dst: dump_indent
      Src: /src/jansson/src/dump.c:378,1
    - Dst: jsonp_free
      Src: /src/jansson/src/dump.c:379,1
    - Dst: dump_indent
      Src: /src/jansson/src/dump.c:383,1
    - Dst: jsonp_free
      Src: /src/jansson/src/dump.c:384,1
    - Dst: jsonp_free
      Src: /src/jansson/src/dump.c:390,1
    - Dst: json_object_iter_next
      Src: /src/jansson/src/dump.c:395,1
    - Dst: json_object_iter_key
      Src: /src/jansson/src/dump.c:396,1
    - Dst: json_object_iter_key_len
      Src: /src/jansson/src/dump.c:397,1
    - Dst: dump_string
      Src: /src/jansson/src/dump.c:399,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:400,1
    - Dst: do_dump
      Src: /src/jansson/src/dump.c:401,1
    - Dst: json_object_iter_value
      Src: /src/jansson/src/dump.c:401,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:406,1
    - Dst: dump_indent
      Src: /src/jansson/src/dump.c:407,1
    - Dst: dump_indent
      Src: /src/jansson/src/dump.c:410,1
    - Dst: hashtable_del
      Src: /src/jansson/src/dump.c:418,1
    - Dst: dump
      Src: /src/jansson/src/dump.c:419,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 128
    argCount: 6
    argNames:
    - json
    - flags
    - depth
    - parents
    - dump
    - data
    argTypes:
    - json_t*
    - size_t
    - int
    - hashtable_t*
    - json_dump_callback_t
    - void*
    assertStmts:
    - condition: (i == size)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/jansson/src/dump.c
    - condition: (value)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/jansson/src/dump.c
    constantsTouched: []
    func_position:
      end: 426
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 426
    functionName: do_dump
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 1
    functionsReached:
    - json_object_getn
    - json_object_size
    - jsonp_dtostr
    - do_dump
    - FLAGS_TO_PRECISION
    - json_object_iter
    - assert
    - qsort
    - jsonp_free
    - dump
    - jsonp_loop_check
    - json_object_iter_next
    - json_string_value
    - hashtable_del
    - json_object_iter_key
    - json_array_get
    - jsonp_malloc
    - json_array_size
    - json_real_value
    - json_string_length
    - dump_indent
    - json_integer_value
    - json_object_iter_value
    - json_typeof
    - dump_string
    - snprintf
    - json_object_iter_key_len
    linkageType: ''
    returnType: int
    signature: "int do_dump(const json_t *json, size_t flags, int depth, hashtable_t
      *parents,\n                   json_dump_callback_t dump, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strbuffer_init
      Src: /src/jansson/src/dump.c:432,1
    - Dst: json_dump_callback
      Src: /src/jansson/src/dump.c:435,1
    - Dst: strbuffer_steal_value
      Src: /src/jansson/src/dump.c:439,1
    - Dst: jsonp_realloc
      Src: /src/jansson/src/dump.c:441,1
    - Dst: strbuffer_close
      Src: /src/jansson/src/dump.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - json
    - flags
    argTypes:
    - json_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 449
    functionName: json_dumps
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 22
    functionsReached:
    - strbuffer_steal_value
    - jsonp_realloc
    - strbuffer_init
    - strbuffer_close
    - json_dump_callback
    linkageType: ''
    returnType: char
    signature: char *json_dumps(const json_t *json, size_t flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_dump_callback
      Src: /src/jansson/src/dump.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - json
    - buffer
    - size
    - flags
    argTypes:
    - json_t*
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 458
    functionName: json_dumpb
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 4
    functionsReached:
    - json_dump_callback
    linkageType: ''
    returnType: size_t
    signature: size_t json_dumpb(const json_t *json, char *buffer, size_t size, size_t
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_dump_callback
      Src: /src/jansson/src/dump.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - json
    - output
    - flags
    argTypes:
    - json_t*
    - FILE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 462
    functionName: json_dumpf
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 2
    functionsReached:
    - json_dump_callback
    linkageType: ''
    returnType: int
    signature: int json_dumpf(const json_t *json, FILE *output, size_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_dump_callback
      Src: /src/jansson/src/dump.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - json
    - output
    - flags
    argTypes:
    - json_t*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 466
    functionName: json_dumpfd
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 3
    functionsReached:
    - json_dump_callback
    linkageType: ''
    returnType: int
    signature: int json_dumpfd(const json_t *json, int output, size_t flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/jansson/src/dump.c:471,1
    - Dst: json_dumpf
      Src: /src/jansson/src/dump.c:475,1
    - Dst: fclose
      Src: /src/jansson/src/dump.c:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - json
    - path
    - flags
    argTypes:
    - json_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 481
    functionName: json_dump_file
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 1
    functionsReached:
    - fclose
    - fopen
    - json_dumpf
    linkageType: ''
    returnType: int
    signature: int json_dump_file(const json_t *json, const char *path, size_t flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_is_array
      Src: /src/jansson/src/dump.c:489,1
    - Dst: json_is_object
      Src: /src/jansson/src/dump.c:489,1
    - Dst: hashtable_init
      Src: /src/jansson/src/dump.c:493,1
    - Dst: do_dump
      Src: /src/jansson/src/dump.c:495,1
    - Dst: hashtable_close
      Src: /src/jansson/src/dump.c:496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - json
    - callback
    - data
    - flags
    argTypes:
    - json_t*
    - json_dump_callback_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 483
    functionDepth: 5
    functionLinenumber: 483
    functionLinenumberEnd: 499
    functionName: json_dump_callback
    functionSourceFile: /src/jansson/src/dump.c
    functionUses: 9
    functionsReached:
    - json_is_object
    - do_dump
    - hashtable_init
    - hashtable_close
    - json_is_array
    linkageType: ''
    returnType: int
    signature: "int json_dump_callback(const json_t *json, json_dump_callback_t callback,
      void *data,\n                       size_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: Bug
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Bug(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: Debug
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Debug(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: Set_errno
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Set_errno(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1324
    functionName: word0
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1324
    functionDepth: 0
    functionLinenumber: 1324
    functionLinenumberEnd: 1325
    functionName: word1
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1327
    functionName: word0
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1328
    functionName: word1
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1330
    functionName: dval
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dval(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1331
    functionName: LLval
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LLval(x)
  - 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: 1349
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1349
    functionName: Storeinc
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Storeinc(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: 1352
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1352
    functionName: Storeinc
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Storeinc(a,b,c)
  - 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: 1487
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1487
    functionName: rounded_product
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rounded_product(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: 1488
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1488
    functionName: rounded_quotient
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rounded_quotient(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: 1491
      start: 1490
    functionDepth: 0
    functionLinenumber: 1490
    functionLinenumberEnd: 1491
    functionName: rounded_product
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rounded_product(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: 1492
      start: 1491
    functionDepth: 0
    functionLinenumber: 1491
    functionLinenumberEnd: 1492
    functionName: rounded_quotient
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rounded_quotient(a,b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: REALLOC
      Src: /src/jansson/src/dtoa.c:1554,1
    - Dst: memset
      Src: /src/jansson/src/dtoa.c:1555,1
    - Dst: MALLOC
      Src: /src/jansson/src/dtoa.c:1558,1
    - Dst: memcpy
      Src: /src/jansson/src/dtoa.c:1560,1
    - Dst: memset
      Src: /src/jansson/src/dtoa.c:1562,1
    - Dst: memset
      Src: /src/jansson/src/dtoa.c:1563,1
    - Dst: memset
      Src: /src/jansson/src/dtoa.c:1566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1570
    functionName: set_max_dtoa_threads
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - MALLOC
    - REALLOC
    linkageType: ''
    returnType: void
    signature: void set_max_dtoa_threads(unsigned int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dtoa_get_threadno
      Src: /src/jansson/src/dtoa.c:1575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1572
    functionDepth: 0
    functionLinenumber: 1572
    functionLinenumberEnd: 1581
    functionName: get_TI
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - dtoa_get_threadno
    linkageType: ''
    returnType: ThInfo
    signature: 'ThInfo *

      get_TI(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_TI
      Src: /src/jansson/src/dtoa.c:1601,1
    - Dst: ACQUIRE_DTOA_LOCK
      Src: /src/jansson/src/dtoa.c:1603,1
    - Dst: MALLOC
      Src: /src/jansson/src/dtoa.c:1612,1
    - Dst: MALLOC
      Src: /src/jansson/src/dtoa.c:1625,1
    - Dst: FREE_DTOA_LOCK
      Src: /src/jansson/src/dtoa.c:1632,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - MTd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1636
    functionName: Balloc
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - MALLOC
    - ACQUIRE_DTOA_LOCK
    - get_TI
    - FREE_DTOA_LOCK
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      Balloc(int k MTd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1664
    functionDepth: 0
    functionLinenumber: 1664
    functionLinenumberEnd: 1666
    functionName: Bcopy
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Bcopy(x,y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/jansson/src/dtoa.c:1708,1
    - Dst: Bcopy
      Src: /src/jansson/src/dtoa.c:1709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 3
    argNames:
    - b
    - m
    - MTd
    argTypes:
    - Bigint*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1667
    functionDepth: 2
    functionLinenumber: 1667
    functionLinenumberEnd: 1717
    functionName: multadd
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - Bcopy
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      multadd(Bigint *b, int m, int a MTd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/jansson/src/dtoa.c:1729,1
    - Dst: Balloc
      Src: /src/jansson/src/dtoa.c:1733,1
    - Dst: multadd
      Src: /src/jansson/src/dtoa.c:1741,1
    - Dst: multadd
      Src: /src/jansson/src/dtoa.c:1748,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - s
    - nd0
    - nd
    - y9
    - dplen
    argTypes:
    - char*
    - int
    - int
    - ULong
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1719
    functionDepth: 3
    functionLinenumber: 1719
    functionLinenumberEnd: 1750
    functionName: s2b
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - multadd
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      s2b(const char *s, int nd0, int nd, ULong y9, int dplen MTd)'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - x
    argTypes:
    - ULong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1752
    functionDepth: 0
    functionLinenumber: 1752
    functionLinenumberEnd: 1779
    functionName: hi0bits
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hi0bits(ULong x)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - y
    argTypes:
    - ULong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1781
    functionDepth: 0
    functionLinenumber: 1781
    functionLinenumberEnd: 1822
    functionName: lo0bits
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lo0bits(ULong *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/jansson/src/dtoa.c:1829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - MTd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1824
    functionDepth: 2
    functionLinenumber: 1824
    functionLinenumberEnd: 1833
    functionName: i2b
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      i2b(int i MTd)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/jansson/src/dtoa.c:1862,1
    - Dst: Storeinc
      Src: /src/jansson/src/dtoa.c:1897,1
    - Dst: Storeinc
      Src: /src/jansson/src/dtoa.c:1910,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 79
    argCount: 2
    argNames:
    - a
    - MTd
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1835
    functionDepth: 2
    functionLinenumber: 1835
    functionLinenumberEnd: 1938
    functionName: mult
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - Storeinc
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      mult(Bigint *a, Bigint *b MTd)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: multadd
      Src: /src/jansson/src/dtoa.c:1951,1
    - Dst: get_TI
      Src: /src/jansson/src/dtoa.c:1957,1
    - Dst: get_TI
      Src: /src/jansson/src/dtoa.c:1963,1
    - Dst: ACQUIRE_DTOA_LOCK
      Src: /src/jansson/src/dtoa.c:1965,1
    - Dst: i2b
      Src: /src/jansson/src/dtoa.c:1967,1
    - Dst: FREE_DTOA_LOCK
      Src: /src/jansson/src/dtoa.c:1971,1
    - Dst: i2b
      Src: /src/jansson/src/dtoa.c:1973,1
    - Dst: mult
      Src: /src/jansson/src/dtoa.c:1979,1
    - Dst: get_TI
      Src: /src/jansson/src/dtoa.c:1988,1
    - Dst: ACQUIRE_DTOA_LOCK
      Src: /src/jansson/src/dtoa.c:1990,1
    - Dst: mult
      Src: /src/jansson/src/dtoa.c:1992,1
    - Dst: FREE_DTOA_LOCK
      Src: /src/jansson/src/dtoa.c:1996,1
    - Dst: mult
      Src: /src/jansson/src/dtoa.c:1998,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 2
    argNames:
    - b
    - MTd
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1940
    functionDepth: 3
    functionLinenumber: 1940
    functionLinenumberEnd: 2005
    functionName: pow5mult
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - ACQUIRE_DTOA_LOCK
    - multadd
    - i2b
    - mult
    - get_TI
    - FREE_DTOA_LOCK
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      pow5mult(Bigint *b, int k MTd)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/jansson/src/dtoa.c:2023,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - b
    - MTd
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2007
    functionDepth: 2
    functionLinenumber: 2007
    functionLinenumberEnd: 2060
    functionName: lshift
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      lshift(Bigint *b, int k MTd)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Bug
      Src: /src/jansson/src/dtoa.c:2072,1
    - Dst: Bug
      Src: /src/jansson/src/dtoa.c:2074,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2062
    functionDepth: 1
    functionLinenumber: 2062
    functionLinenumberEnd: 2089
    functionName: cmp
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 295
    functionsReached:
    - Bug
    linkageType: ''
    returnType: int
    signature: int cmp(Bigint *a, Bigint *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/jansson/src/dtoa.c:2106,1
    - Dst: Balloc
      Src: /src/jansson/src/dtoa.c:2108,1
    - Dst: Balloc
      Src: /src/jansson/src/dtoa.c:2121,1
    - Dst: Storeinc
      Src: /src/jansson/src/dtoa.c:2150,1
    - Dst: Storeinc
      Src: /src/jansson/src/dtoa.c:2158,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 63
    argCount: 2
    argNames:
    - a
    - MTd
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2091
    functionDepth: 2
    functionLinenumber: 2091
    functionLinenumberEnd: 2178
    functionName: diff
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - Storeinc
    - Balloc
    - cmp
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      diff(Bigint *a, Bigint *b MTd)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Bug
      Src: /src/jansson/src/dtoa.c:2234,1
    - Dst: hi0bits
      Src: /src/jansson/src/dtoa.c:2236,1
    - Dst: word0
      Src: /src/jansson/src/dtoa.c:2273,1
    - Dst: word1
      Src: /src/jansson/src/dtoa.c:2274,1
    - Dst: dval
      Src: /src/jansson/src/dtoa.c:2279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 2
    argNames:
    - a
    - e
    argTypes:
    - Bigint*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2217
    functionDepth: 1
    functionLinenumber: 2217
    functionLinenumberEnd: 2280
    functionName: b2d
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - word0
    - hi0bits
    - dval
    - Bug
    - word1
    linkageType: ''
    returnType: double
    signature: double b2d(Bigint *a, int *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dval
      Src: /src/jansson/src/dtoa.c:2417,1
    - Dst: b2d
      Src: /src/jansson/src/dtoa.c:2417,1
    - Dst: dval
      Src: /src/jansson/src/dtoa.c:2418,1
    - Dst: b2d
      Src: /src/jansson/src/dtoa.c:2418,1
    - Dst: word0
      Src: /src/jansson/src/dtoa.c:2426,1
    - Dst: dval
      Src: /src/jansson/src/dtoa.c:2428,1
    - Dst: word0
      Src: /src/jansson/src/dtoa.c:2432,1
    - Dst: dval
      Src: /src/jansson/src/dtoa.c:2434,1
    - Dst: word0
      Src: /src/jansson/src/dtoa.c:2438,1
    - Dst: word0
      Src: /src/jansson/src/dtoa.c:2441,1
    - Dst: dval
      Src: /src/jansson/src/dtoa.c:2444,1
    - Dst: dval
      Src: /src/jansson/src/dtoa.c:2444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2411
    functionDepth: 2
    functionLinenumber: 2411
    functionLinenumberEnd: 2445
    functionName: ratio
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - word0
    - b2d
    - dval
    linkageType: ''
    returnType: double
    signature: double ratio(Bigint *a, Bigint *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - h
    - s
    - inc
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2501
    functionDepth: 0
    functionLinenumber: 2501
    functionLinenumberEnd: 2507
    functionName: htinit
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void htinit(unsigned char *h, unsigned char *s, int inc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htinit
      Src: /src/jansson/src/dtoa.c:2514,1
    - Dst: htinit
      Src: /src/jansson/src/dtoa.c:2515,1
    - Dst: htinit
      Src: /src/jansson/src/dtoa.c:2516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2509
    functionDepth: 1
    functionLinenumber: 2509
    functionLinenumberEnd: 2517
    functionName: hexdig_init
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - htinit
    linkageType: ''
    returnType: void
    signature: void hexdig_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - sp
    - t
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2550
    functionDepth: 0
    functionLinenumber: 2550
    functionLinenumberEnd: 2564
    functionName: match
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int match(const char **sp, const char *t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: if
      Src: /src/jansson/src/dtoa.c:2604,1
    - Dst: word0
      Src: /src/jansson/src/dtoa.c:2623,1
    - Dst: word1
      Src: /src/jansson/src/dtoa.c:2624,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 2
    argNames:
    - rvp
    - sp
    argTypes:
    - U*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2567
    functionDepth: 1
    functionLinenumber: 2567
    functionLinenumberEnd: 2626
    functionName: hexnan
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - if
    - word1
    - word0
    linkageType: ''
    returnType: void
    signature: void hexnan(U *rvp, const char **sp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/jansson/src/dtoa.c:2658,1
    - Dst: Bcopy
      Src: /src/jansson/src/dtoa.c:2659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - MTd
    argTypes:
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2641
    functionDepth: 2
    functionLinenumber: 2641
    functionLinenumberEnd: 2666
    functionName: increment
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - Bcopy
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      increment(Bigint *b MTd)'
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - b
    - k
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2672
    functionDepth: 0
    functionLinenumber: 2672
    functionLinenumberEnd: 2699
    functionName: rshift
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rshift(Bigint *b, int k)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - b
    - k
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2701
    functionDepth: 0
    functionLinenumber: 2701
    functionLinenumberEnd: 2725
    functionName: any_on
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ULong
    signature: ULong any_on(Bigint *b, int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2887
    functionDepth: 0
    functionLinenumber: 2887
    functionLinenumberEnd: 2887
    functionName: word0
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void word0(rvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2988
      start: 2988
    functionDepth: 0
    functionLinenumber: 2988
    functionLinenumberEnd: 2988
    functionName: word1
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void word1(rvp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hi0bits
      Src: /src/jansson/src/dtoa.c:3143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - p2
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3147
      start: 3140
    functionDepth: 1
    functionLinenumber: 3140
    functionLinenumberEnd: 3147
    functionName: dshift
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - hi0bits
    linkageType: ''
    returnType: int
    signature: int dshift(Bigint *b, int p2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Bug
      Src: /src/jansson/src/dtoa.c:3166,1
    - Dst: Bug
      Src: /src/jansson/src/dtoa.c:3183,1
    - Dst: Storeinc
      Src: /src/jansson/src/dtoa.c:3205,1
    - Dst: cmp
      Src: /src/jansson/src/dtoa.c:3223,1
    - Dst: Storeinc
      Src: /src/jansson/src/dtoa.c:3246,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 83
    argCount: 2
    argNames:
    - b
    - S
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3266
      start: 3149
    functionDepth: 2
    functionLinenumber: 3149
    functionLinenumberEnd: 3266
    functionName: quorem
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - Storeinc
    - Bug
    - cmp
    linkageType: ''
    returnType: int
    signature: int quorem(Bigint *b, Bigint *S)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ulp
      Src: /src/jansson/src/dtoa.c:3276,1
    - Dst: word0
      Src: /src/jansson/src/dtoa.c:3277,1
    - Dst: word0
      Src: /src/jansson/src/dtoa.c:3279,1
    - Dst: word1
      Src: /src/jansson/src/dtoa.c:3280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - x
    - bc
    argTypes:
    - U*
    - BCinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3282
      start: 3269
    functionDepth: 1
    functionLinenumber: 3269
    functionLinenumberEnd: 3282
    functionName: sulp
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - ulp
    - word0
    - word1
    linkageType: ''
    returnType: double
    signature: double sulp(U *x, BCinfo *bc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3339
      start: 3339
    functionDepth: 0
    functionLinenumber: 3339
    functionLinenumberEnd: 3339
    functionName: word1
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void word1(rv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rv_alloc
      Src: /src/jansson/src/dtoa.c:4942,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - s
    - s0
    - s0len
    - rve
    - MTd
    argTypes:
    - char*
    - char*
    - size_t
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4955
      start: 4936
    functionDepth: 0
    functionLinenumber: 4936
    functionLinenumberEnd: 4955
    functionName: nrv_alloc
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached:
    - rv_alloc
    linkageType: ''
    returnType: char
    signature: 'char *

      nrv_alloc(const char *s, char *s0, size_t s0len, char **rve, int n MTd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4976
      start: 4963
    functionDepth: 0
    functionLinenumber: 4963
    functionLinenumberEnd: 4976
    functionName: freedtoa
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void freedtoa(char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freedtoa
      Src: /src/jansson/src/dtoa.c:6258,1
    - Dst: dtoa_r
      Src: /src/jansson/src/dtoa.c:6260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - dd
    - mode
    - ndigits
    - decpt
    - sign
    - rve
    argTypes:
    - double
    - int
    - int
    - int*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6261
      start: 6249
    functionDepth: 1
    functionLinenumber: 6249
    functionLinenumberEnd: 6261
    functionName: dtoa
    functionSourceFile: /src/jansson/src/dtoa.c
    functionUses: 1
    functionsReached:
    - dtoa_r
    - freedtoa
    linkageType: ''
    returnType: char
    signature: 'char *

      dtoa(double dd, int mode, int ndigits, int *decpt, int *sign, char **rve)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - scanner
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: token
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 110
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: token(scanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: type_name
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: type_name(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/jansson/src/pack_unpack.c:49,1
    - Dst: memset
      Src: /src/jansson/src/pack_unpack.c:50,1
    - Dst: memset
      Src: /src/jansson/src/pack_unpack.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - s
    - error
    - flags
    - fmt
    argTypes:
    - scanner_t*
    - json_error_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: scanner_init
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void scanner_init(scanner_t *s, json_error_t *error, size_t flags,\n
      \                        const char *fmt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:68,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - s
    argTypes:
    - scanner_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 95
    functionName: next_token
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - token
    linkageType: ''
    returnType: void
    signature: void next_token(scanner_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - scanner_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: prev_token
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prev_token(scanner_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/jansson/src/pack_unpack.c:105,1
    - Dst: jsonp_error_vset
      Src: /src/jansson/src/pack_unpack.c:107,1
    - Dst: jsonp_error_set_source
      Src: /src/jansson/src/pack_unpack.c:110,1
    - Dst: va_end
      Src: /src/jansson/src/pack_unpack.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - s
    - source
    - code
    - fmt
    argTypes:
    - scanner_t*
    - char*
    - enum json_error_code
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: set_error
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - jsonp_error_vset
    - jsonp_error_set_source
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: "void set_error(scanner_t *s, const char *source, enum json_error_code
      code,\n                      const char *fmt, ...)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:126,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:127,1
    - Dst: prev_token
      Src: /src/jansson/src/pack_unpack.c:128,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:133,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:137,1
    - Dst: strlen
      Src: /src/jansson/src/pack_unpack.c:143,1
    - Dst: utf8_check_string
      Src: /src/jansson/src/pack_unpack.c:145,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:146,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:154,1
    - Dst: strbuffer_init
      Src: /src/jansson/src/pack_unpack.c:161,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:162,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:167,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:169,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:173,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:175,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:176,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:178,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:185,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:186,1
    - Dst: prev_token
      Src: /src/jansson/src/pack_unpack.c:188,1
    - Dst: strlen
      Src: /src/jansson/src/pack_unpack.c:189,1
    - Dst: strbuffer_append_bytes
      Src: /src/jansson/src/pack_unpack.c:192,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:193,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:197,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:198,1
    - Dst: prev_token
      Src: /src/jansson/src/pack_unpack.c:199,1
    - Dst: strbuffer_close
      Src: /src/jansson/src/pack_unpack.c:205,1
    - Dst: utf8_check_string
      Src: /src/jansson/src/pack_unpack.c:209,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:210,1
    - Dst: strbuffer_close
      Src: /src/jansson/src/pack_unpack.c:211,1
    - Dst: strbuffer_steal_value
      Src: /src/jansson/src/pack_unpack.c:218,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 6
    argNames:
    - s
    - ap
    - purpose
    - out_len
    - ours
    - optional
    argTypes:
    - scanner_t*
    - va_list*
    - char*
    - size_t*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 219
    functionName: read_string
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - strlen
    - strbuffer_steal_value
    - set_error
    - next_token
    - utf8_check_string
    - va_arg
    - token
    - strbuffer_init
    - strbuffer_close
    - prev_token
    - strbuffer_append_bytes
    linkageType: ''
    returnType: char
    signature: "char *read_string(scanner_t *s, va_list *ap, const char *purpose,
      size_t *out_len,\n                         int *ours, int optional)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: json_object
      Src: /src/jansson/src/pack_unpack.c:222,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:223,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:225,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:232,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:233,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:238,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:239,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:240,1
    - Dst: read_string
      Src: /src/jansson/src/pack_unpack.c:244,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:246,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:248,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:249,1
    - Dst: prev_token
      Src: /src/jansson/src/pack_unpack.c:250,1
    - Dst: pack
      Src: /src/jansson/src/pack_unpack.c:252,1
    - Dst: jsonp_free
      Src: /src/jansson/src/pack_unpack.c:255,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:258,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:262,1
    - Dst: json_decref
      Src: /src/jansson/src/pack_unpack.c:267,1
    - Dst: json_object_setn_new_nocheck
      Src: /src/jansson/src/pack_unpack.c:269,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:270,1
    - Dst: jsonp_free
      Src: /src/jansson/src/pack_unpack.c:276,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:278,1
    - Dst: json_decref
      Src: /src/jansson/src/pack_unpack.c:285,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - s
    - ap
    argTypes:
    - scanner_t*
    - va_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 287
    functionName: pack_object
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - jsonp_free
    - read_string
    - json_object_setn_new_nocheck
    - set_error
    - next_token
    - prev_token
    - json_decref
    - token
    - json_object
    - pack
    linkageType: ''
    returnType: json_t
    signature: json_t *pack_object(scanner_t *s, va_list *ap)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_array
      Src: /src/jansson/src/pack_unpack.c:290,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:291,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:293,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:297,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:298,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:304,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:305,1
    - Dst: prev_token
      Src: /src/jansson/src/pack_unpack.c:306,1
    - Dst: pack
      Src: /src/jansson/src/pack_unpack.c:308,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:314,1
    - Dst: json_decref
      Src: /src/jansson/src/pack_unpack.c:319,1
    - Dst: json_array_append_new
      Src: /src/jansson/src/pack_unpack.c:321,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:322,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:327,1
    - Dst: json_decref
      Src: /src/jansson/src/pack_unpack.c:334,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - s
    - ap
    argTypes:
    - scanner_t*
    - va_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 336
    functionName: pack_array
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - set_error
    - next_token
    - json_array
    - json_decref
    - token
    - json_array_append_new
    - prev_token
    - pack
    linkageType: ''
    returnType: json_t
    signature: json_t *pack_array(scanner_t *s, va_list *ap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:345,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:346,1
    - Dst: prev_token
      Src: /src/jansson/src/pack_unpack.c:349,1
    - Dst: read_string
      Src: /src/jansson/src/pack_unpack.c:351,1
    - Dst: json_null
      Src: /src/jansson/src/pack_unpack.c:354,1
    - Dst: jsonp_stringn_nocheck_own
      Src: /src/jansson/src/pack_unpack.c:362,1
    - Dst: json_stringn_nocheck
      Src: /src/jansson/src/pack_unpack.c:364,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - s
    - ap
    argTypes:
    - scanner_t*
    - va_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 365
    functionName: pack_string
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - read_string
    - next_token
    - jsonp_stringn_nocheck_own
    - token
    - json_null
    - json_stringn_nocheck
    - prev_token
    linkageType: ''
    returnType: json_t
    signature: json_t *pack_string(scanner_t *s, va_list *ap)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:371,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:372,1
    - Dst: prev_token
      Src: /src/jansson/src/pack_unpack.c:375,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:377,1
    - Dst: json_incref
      Src: /src/jansson/src/pack_unpack.c:380,1
    - Dst: json_null
      Src: /src/jansson/src/pack_unpack.c:384,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - s
    - ap
    - need_incref
    argTypes:
    - scanner_t*
    - va_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 394
    functionName: pack_object_inter
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - set_error
    - next_token
    - json_incref
    - va_arg
    - token
    - json_null
    - prev_token
    linkageType: ''
    returnType: json_t
    signature: json_t *pack_object_inter(scanner_t *s, va_list *ap, int need_incref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_integer
      Src: /src/jansson/src/pack_unpack.c:397,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - scanner_t*
    - json_int_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: pack_integer
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - set_error
    - json_integer
    linkageType: ''
    returnType: json_t
    signature: json_t *pack_integer(scanner_t *s, json_int_t value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_real
      Src: /src/jansson/src/pack_unpack.c:409,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:412,1
    - Dst: json_real_set
      Src: /src/jansson/src/pack_unpack.c:418,1
    - Dst: json_decref
      Src: /src/jansson/src/pack_unpack.c:419,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - scanner_t*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 407
    functionDepth: 4
    functionLinenumber: 407
    functionLinenumberEnd: 429
    functionName: pack_real
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - set_error
    - json_decref
    - json_real_set
    - json_real
    linkageType: ''
    returnType: json_t
    signature: json_t *pack_real(scanner_t *s, double value)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:432,1
    - Dst: pack_object
      Src: /src/jansson/src/pack_unpack.c:434,1
    - Dst: pack_array
      Src: /src/jansson/src/pack_unpack.c:437,1
    - Dst: pack_string
      Src: /src/jansson/src/pack_unpack.c:440,1
    - Dst: json_null
      Src: /src/jansson/src/pack_unpack.c:443,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:446,1
    - Dst: json_true
      Src: /src/jansson/src/pack_unpack.c:446,1
    - Dst: json_false
      Src: /src/jansson/src/pack_unpack.c:446,1
    - Dst: pack_integer
      Src: /src/jansson/src/pack_unpack.c:449,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:449,1
    - Dst: pack_integer
      Src: /src/jansson/src/pack_unpack.c:452,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:452,1
    - Dst: pack_real
      Src: /src/jansson/src/pack_unpack.c:455,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:455,1
    - Dst: pack_object_inter
      Src: /src/jansson/src/pack_unpack.c:458,1
    - Dst: pack_object_inter
      Src: /src/jansson/src/pack_unpack.c:461,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:464,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - s
    - ap
    argTypes:
    - scanner_t*
    - va_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 431
    functionDepth: 6
    functionLinenumber: 431
    functionLinenumberEnd: 469
    functionName: pack
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 70
    functionsReached:
    - pack_array
    - pack_integer
    - set_error
    - json_true
    - json_false
    - va_arg
    - token
    - pack_object_inter
    - json_null
    - pack_object
    - pack_real
    - pack_string
    linkageType: ''
    returnType: json_t
    signature: json_t *pack(scanner_t *s, va_list *ap)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_init
      Src: /src/jansson/src/pack_unpack.c:486,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:487,1
    - Dst: json_is_object
      Src: /src/jansson/src/pack_unpack.c:491,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:492,1
    - Dst: type_name
      Src: /src/jansson/src/pack_unpack.c:493,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:497,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:499,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:506,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:508,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:512,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:513,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:518,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:518,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:519,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:520,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:524,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:525,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:526,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:530,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:532,1
    - Dst: strlen
      Src: /src/jansson/src/pack_unpack.c:535,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:537,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:539,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:541,1
    - Dst: json_object_getn
      Src: /src/jansson/src/pack_unpack.c:548,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:550,1
    - Dst: unpack
      Src: /src/jansson/src/pack_unpack.c:556,1
    - Dst: hashtable_set
      Src: /src/jansson/src/pack_unpack.c:559,1
    - Dst: json_null
      Src: /src/jansson/src/pack_unpack.c:559,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:560,1
    - Dst: json_object_size
      Src: /src/jansson/src/pack_unpack.c:576,1
    - Dst: hashtable_get
      Src: /src/jansson/src/pack_unpack.c:578,1
    - Dst: strbuffer_init
      Src: /src/jansson/src/pack_unpack.c:583,1
    - Dst: strbuffer_append_bytes
      Src: /src/jansson/src/pack_unpack.c:585,1
    - Dst: strbuffer_append_bytes
      Src: /src/jansson/src/pack_unpack.c:590,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:595,1
    - Dst: strbuffer_value
      Src: /src/jansson/src/pack_unpack.c:597,1
    - Dst: strbuffer_close
      Src: /src/jansson/src/pack_unpack.c:598,1
    - Dst: hashtable_close
      Src: /src/jansson/src/pack_unpack.c:606,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 89
    argCount: 4
    argNames:
    - s
    - root
    - ap
    - parent_key
    argTypes:
    - scanner_t*
    - json_t*
    - va_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 473
    functionDepth: 4
    functionLinenumber: 473
    functionLinenumberEnd: 608
    functionName: unpack_object
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - json_object_getn
    - json_object_size
    - strbuffer_close
    - set_error
    - hashtable_get
    - hashtable_init
    - va_arg
    - token
    - strlen
    - next_token
    - json_null
    - hashtable_close
    - unpack
    - strbuffer_append_bytes
    - hashtable_set
    - json_is_object
    - type_name
    - strbuffer_value
    - strbuffer_init
    linkageType: ''
    returnType: int
    signature: "int unpack_object(scanner_t *s, json_t *root, va_list *ap,\n                         const
      char *parent_key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_get
      Src: /src/jansson/src/pack_unpack.c:578,1
    - Dst: strbuffer_init
      Src: /src/jansson/src/pack_unpack.c:583,1
    - Dst: strbuffer_append_bytes
      Src: /src/jansson/src/pack_unpack.c:585,1
    - Dst: strbuffer_append_bytes
      Src: /src/jansson/src/pack_unpack.c:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 592
    functionName: json_object_keylen_foreach
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 2
    functionsReached:
    - hashtable_get
    - strbuffer_init
    - strbuffer_append_bytes
    linkageType: ''
    returnType: void
    signature: void json_object_keylen_foreach(root, key, key_len, value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: json_is_array
      Src: /src/jansson/src/pack_unpack.c:614,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:615,1
    - Dst: type_name
      Src: /src/jansson/src/pack_unpack.c:616,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:620,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:622,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:626,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:628,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:632,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:633,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:638,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:638,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:639,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:640,1
    - Dst: strchr
      Src: /src/jansson/src/pack_unpack.c:644,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:644,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:645,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:646,1
    - Dst: json_array_get
      Src: /src/jansson/src/pack_unpack.c:654,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:656,1
    - Dst: unpack
      Src: /src/jansson/src/pack_unpack.c:662,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:665,1
    - Dst: json_array_size
      Src: /src/jansson/src/pack_unpack.c:672,1
    - Dst: json_array_size
      Src: /src/jansson/src/pack_unpack.c:673,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:674,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - s
    - root
    - ap
    - parent_key
    argTypes:
    - scanner_t*
    - json_t*
    - va_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 680
    functionName: unpack_array
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - set_error
    - type_name
    - next_token
    - json_array_get
    - token
    - json_array_size
    - strchr
    - unpack
    - json_is_array
    linkageType: ''
    returnType: int
    signature: int unpack_array(scanner_t *s, json_t *root, va_list *ap, const char
      *parent_key)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:683,1
    - Dst: unpack_object
      Src: /src/jansson/src/pack_unpack.c:685,1
    - Dst: unpack_array
      Src: /src/jansson/src/pack_unpack.c:688,1
    - Dst: json_is_string
      Src: /src/jansson/src/pack_unpack.c:691,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:692,1
    - Dst: type_name
      Src: /src/jansson/src/pack_unpack.c:693,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:702,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:704,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:708,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:710,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:711,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:713,1
    - Dst: prev_token
      Src: /src/jansson/src/pack_unpack.c:718,1
    - Dst: json_string_value
      Src: /src/jansson/src/pack_unpack.c:721,1
    - Dst: json_string_length
      Src: /src/jansson/src/pack_unpack.c:723,1
    - Dst: json_is_integer
      Src: /src/jansson/src/pack_unpack.c:729,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:730,1
    - Dst: type_name
      Src: /src/jansson/src/pack_unpack.c:731,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:737,1
    - Dst: json_integer_value
      Src: /src/jansson/src/pack_unpack.c:739,1
    - Dst: json_is_integer
      Src: /src/jansson/src/pack_unpack.c:745,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:746,1
    - Dst: type_name
      Src: /src/jansson/src/pack_unpack.c:747,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:753,1
    - Dst: json_integer_value
      Src: /src/jansson/src/pack_unpack.c:755,1
    - Dst: json_is_boolean
      Src: /src/jansson/src/pack_unpack.c:761,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:762,1
    - Dst: type_name
      Src: /src/jansson/src/pack_unpack.c:763,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:769,1
    - Dst: json_is_true
      Src: /src/jansson/src/pack_unpack.c:771,1
    - Dst: json_is_real
      Src: /src/jansson/src/pack_unpack.c:777,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:778,1
    - Dst: type_name
      Src: /src/jansson/src/pack_unpack.c:779,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:785,1
    - Dst: json_real_value
      Src: /src/jansson/src/pack_unpack.c:787,1
    - Dst: json_is_number
      Src: /src/jansson/src/pack_unpack.c:793,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:794,1
    - Dst: type_name
      Src: /src/jansson/src/pack_unpack.c:795,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:801,1
    - Dst: json_number_value
      Src: /src/jansson/src/pack_unpack.c:803,1
    - Dst: json_incref
      Src: /src/jansson/src/pack_unpack.c:810,1
    - Dst: va_arg
      Src: /src/jansson/src/pack_unpack.c:815,1
    - Dst: json_is_null
      Src: /src/jansson/src/pack_unpack.c:824,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:825,1
    - Dst: type_name
      Src: /src/jansson/src/pack_unpack.c:826,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:833,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:834,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 102
    argCount: 4
    argNames:
    - s
    - root
    - ap
    - key
    argTypes:
    - scanner_t*
    - json_t*
    - va_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 682
    functionDepth: 5
    functionLinenumber: 682
    functionLinenumberEnd: 837
    functionName: unpack
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 6
    functionsReached:
    - json_is_boolean
    - json_is_number
    - json_incref
    - json_is_true
    - json_number_value
    - set_error
    - json_string_value
    - va_arg
    - token
    - json_is_real
    - json_real_value
    - prev_token
    - unpack_array
    - json_string_length
    - next_token
    - json_integer_value
    - unpack_object
    - json_is_string
    - json_is_null
    - type_name
    - json_is_integer
    linkageType: ''
    returnType: int
    signature: int unpack(scanner_t *s, json_t *root, va_list *ap, const char *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_error_init
      Src: /src/jansson/src/pack_unpack.c:845,1
    - Dst: jsonp_error_set
      Src: /src/jansson/src/pack_unpack.c:846,1
    - Dst: jsonp_error_init
      Src: /src/jansson/src/pack_unpack.c:850,1
    - Dst: scanner_init
      Src: /src/jansson/src/pack_unpack.c:852,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:853,1
    - Dst: va_copy
      Src: /src/jansson/src/pack_unpack.c:855,1
    - Dst: pack
      Src: /src/jansson/src/pack_unpack.c:856,1
    - Dst: va_end
      Src: /src/jansson/src/pack_unpack.c:857,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:863,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:864,1
    - Dst: json_decref
      Src: /src/jansson/src/pack_unpack.c:865,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:866,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - error
    - flags
    - fmt
    - ap
    argTypes:
    - json_error_t*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 839
    functionDepth: 7
    functionLinenumber: 839
    functionLinenumberEnd: 872
    functionName: json_vpack_ex
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - va_end
    - set_error
    - jsonp_error_set
    - jsonp_error_init
    - next_token
    - scanner_init
    - va_copy
    - json_decref
    - token
    - pack
    linkageType: ''
    returnType: json_t
    signature: json_t *json_vpack_ex(json_error_t *error, size_t flags, const char
      *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/jansson/src/pack_unpack.c:878,1
    - Dst: json_vpack_ex
      Src: /src/jansson/src/pack_unpack.c:879,1
    - Dst: va_end
      Src: /src/jansson/src/pack_unpack.c:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - error
    - flags
    - fmt
    argTypes:
    - json_error_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 874
    functionDepth: 8
    functionLinenumber: 874
    functionLinenumberEnd: 883
    functionName: json_pack_ex
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 2
    functionsReached:
    - va_end
    - json_vpack_ex
    - va_start
    linkageType: ''
    returnType: json_t
    signature: json_t *json_pack_ex(json_error_t *error, size_t flags, const char
      *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/jansson/src/pack_unpack.c:889,1
    - Dst: json_vpack_ex
      Src: /src/jansson/src/pack_unpack.c:890,1
    - Dst: va_end
      Src: /src/jansson/src/pack_unpack.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 885
    functionDepth: 8
    functionLinenumber: 885
    functionLinenumberEnd: 894
    functionName: json_pack
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 67
    functionsReached:
    - va_end
    - json_vpack_ex
    - va_start
    linkageType: ''
    returnType: json_t
    signature: json_t *json_pack(const char *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_error_init
      Src: /src/jansson/src/pack_unpack.c:902,1
    - Dst: jsonp_error_set
      Src: /src/jansson/src/pack_unpack.c:903,1
    - Dst: jsonp_error_init
      Src: /src/jansson/src/pack_unpack.c:908,1
    - Dst: jsonp_error_set
      Src: /src/jansson/src/pack_unpack.c:909,1
    - Dst: jsonp_error_init
      Src: /src/jansson/src/pack_unpack.c:913,1
    - Dst: scanner_init
      Src: /src/jansson/src/pack_unpack.c:915,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:916,1
    - Dst: va_copy
      Src: /src/jansson/src/pack_unpack.c:918,1
    - Dst: unpack
      Src: /src/jansson/src/pack_unpack.c:919,1
    - Dst: va_end
      Src: /src/jansson/src/pack_unpack.c:920,1
    - Dst: va_end
      Src: /src/jansson/src/pack_unpack.c:923,1
    - Dst: next_token
      Src: /src/jansson/src/pack_unpack.c:925,1
    - Dst: token
      Src: /src/jansson/src/pack_unpack.c:926,1
    - Dst: set_error
      Src: /src/jansson/src/pack_unpack.c:927,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - root
    - error
    - flags
    - fmt
    - ap
    argTypes:
    - json_t*
    - json_error_t*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 896
    functionDepth: 6
    functionLinenumber: 896
    functionLinenumberEnd: 933
    functionName: json_vunpack_ex
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 0
    functionsReached:
    - va_end
    - set_error
    - jsonp_error_set
    - jsonp_error_init
    - next_token
    - scanner_init
    - va_copy
    - token
    - unpack
    linkageType: ''
    returnType: int
    signature: "int json_vunpack_ex(json_t *root, json_error_t *error, size_t flags,
      const char *fmt,\n                    va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/jansson/src/pack_unpack.c:940,1
    - Dst: json_vunpack_ex
      Src: /src/jansson/src/pack_unpack.c:941,1
    - Dst: va_end
      Src: /src/jansson/src/pack_unpack.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - root
    - error
    - flags
    - fmt
    argTypes:
    - json_t*
    - json_error_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 935
    functionDepth: 7
    functionLinenumber: 935
    functionLinenumberEnd: 945
    functionName: json_unpack_ex
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 3
    functionsReached:
    - va_end
    - json_vunpack_ex
    - va_start
    linkageType: ''
    returnType: int
    signature: "int json_unpack_ex(json_t *root, json_error_t *error, size_t flags,
      const char *fmt,\n                   ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/jansson/src/pack_unpack.c:951,1
    - Dst: json_vunpack_ex
      Src: /src/jansson/src/pack_unpack.c:952,1
    - Dst: va_end
      Src: /src/jansson/src/pack_unpack.c:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - root
    - fmt
    argTypes:
    - json_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 947
    functionDepth: 7
    functionLinenumber: 947
    functionLinenumberEnd: 956
    functionName: json_unpack
    functionSourceFile: /src/jansson/src/pack_unpack.c
    functionUses: 2
    functionsReached:
    - va_end
    - json_vunpack_ex
    - va_start
    linkageType: ''
    returnType: int
    signature: int json_unpack(json_t *root, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: jsonp_malloc
    functionSourceFile: /src/jansson/src/memory.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *jsonp_malloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: jsonp_free
    functionSourceFile: /src/jansson/src/memory.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void jsonp_free(void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/jansson/src/memory.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ptr
    - originalSize
    - newSize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 62
    functionName: jsonp_realloc
    functionSourceFile: /src/jansson/src/memory.c
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *jsonp_realloc(void *ptr, size_t originalSize, size_t newSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jsonp_malloc
      Src: /src/jansson/src/memory.c:67,1
    - Dst: memcpy
      Src: /src/jansson/src/memory.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: jsonp_strndup
    functionSourceFile: /src/jansson/src/memory.c
    functionUses: 2
    functionsReached:
    - memcpy
    - jsonp_malloc
    linkageType: ''
    returnType: char
    signature: char *jsonp_strndup(const char *str, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - malloc_fn
    - free_fn
    argTypes:
    - json_malloc_t
    - json_free_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: json_set_alloc_funcs
    functionSourceFile: /src/jansson/src/memory.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_set_alloc_funcs(json_malloc_t malloc_fn, json_free_t free_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - malloc_fn
    - realloc_fn
    - free_fn
    argTypes:
    - json_malloc_t
    - json_realloc_t
    - json_free_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: json_set_alloc_funcs2
    functionSourceFile: /src/jansson/src/memory.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void json_set_alloc_funcs2(json_malloc_t malloc_fn, json_realloc_t
      realloc_fn,\n                           json_free_t free_fn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - malloc_fn
    - free_fn
    argTypes:
    - json_malloc_t*
    - json_free_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: json_get_alloc_funcs
    functionSourceFile: /src/jansson/src/memory.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_get_alloc_funcs(json_malloc_t *malloc_fn, json_free_t *free_fn)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - malloc_fn
    - realloc_fn
    - free_fn
    argTypes:
    - json_malloc_t*
    - json_realloc_t*
    - json_free_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: json_get_alloc_funcs2
    functionSourceFile: /src/jansson/src/memory.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void json_get_alloc_funcs2(json_malloc_t *malloc_fn, json_realloc_t
      *realloc_fn,\n                           json_free_t *free_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: hashsize
    functionSourceFile: /src/jansson/src/lookup3.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashsize(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: hashmask
    functionSourceFile: /src/jansson/src/lookup3.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hashmask(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: rot
    functionSourceFile: /src/jansson/src/lookup3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rot(x,k)
  - 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: 133
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: mix
    functionSourceFile: /src/jansson/src/lookup3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(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: 169
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: final
    functionSourceFile: /src/jansson/src/lookup3.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: final(a,b,c)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: __has_feature
      Src: /src/jansson/src/lookup3.h:214,1
    - Dst: mix
      Src: /src/jansson/src/lookup3.h:234,1
    - Dst: mix
      Src: /src/jansson/src/lookup3.h:300,1
    - Dst: mix
      Src: /src/jansson/src/lookup3.h:355,1
    - Dst: final
      Src: /src/jansson/src/lookup3.h:380,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 202
    argCount: 3
    argNames:
    - key
    - length
    - initval
    argTypes:
    - void*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 382
    functionName: hashlittle
    functionSourceFile: /src/jansson/src/lookup3.h
    functionUses: 0
    functionsReached:
    - mix
    - final
    - __has_feature
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hashlittle(const void *key, size_t length, uint32_t initval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 14
    functionName: jansson_version_str
    functionSourceFile: /src/jansson/src/version.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *jansson_version_str(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - major
    - minor
    - micro
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 28
    functionName: jansson_version_cmp
    functionSourceFile: /src/jansson/src/version.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int jansson_version_cmp(int major, int minor, int micro)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - codepoint
    - buffer
    - size
    argTypes:
    - int32_t
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 36
    functionName: utf8_encode
    functionSourceFile: /src/jansson/src/utf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int utf8_encode(int32_t codepoint, char *buffer, size_t *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - byte
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 67
    functionName: utf8_check_first
    functionSourceFile: /src/jansson/src/utf.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t utf8_check_first(char byte)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 3
    argNames:
    - buffer
    - size
    - codepoint
    argTypes:
    - char*
    - size_t
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 114
    functionName: utf8_check_full
    functionSourceFile: /src/jansson/src/utf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t utf8_check_full(const char *buffer, size_t size, int32_t *codepoint)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: utf8_check_first
      Src: /src/jansson/src/utf.c:123,1
    - Dst: utf8_check_full
      Src: /src/jansson/src/utf.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - buffer
    - bufsize
    - codepoint
    argTypes:
    - char*
    - size_t
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 138
    functionName: utf8_iterate
    functionSourceFile: /src/jansson/src/utf.c
    functionUses: 1
    functionsReached:
    - utf8_check_first
    - utf8_check_full
    linkageType: ''
    returnType: char
    signature: char *utf8_iterate(const char *buffer, size_t bufsize, int32_t *codepoint)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: utf8_check_first
      Src: /src/jansson/src/utf.c:144,1
    - Dst: utf8_check_full
      Src: /src/jansson/src/utf.c:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - string
    - length
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 159
    functionName: utf8_check_string
    functionSourceFile: /src/jansson/src/utf.c
    functionUses: 5
    functionsReached:
    - utf8_check_first
    - utf8_check_full
    linkageType: ''
    returnType: int
    signature: int utf8_check_string(const char *string, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr_
    - ','
    - type_
    - ','
    - member_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: container_of
    functionSourceFile: /src/jansson/src/jansson_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr_, type_, member_)
  - 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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: max
    functionSourceFile: /src/jansson/src/jansson_private.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(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: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: va_copy
    functionSourceFile: /src/jansson/src/jansson_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_copy(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: json_to_object
    functionSourceFile: /src/jansson/src/jansson_private.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_to_object(json_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: json_to_array
    functionSourceFile: /src/jansson/src/jansson_private.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_to_array(json_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: json_to_string
    functionSourceFile: /src/jansson/src/jansson_private.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_to_string(json_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: json_to_real
    functionSourceFile: /src/jansson/src/jansson_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_to_real(json_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: json_to_integer
    functionSourceFile: /src/jansson/src/jansson_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: json_to_integer(json_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: vsnprintf
    functionSourceFile: /src/jansson/src/jansson_private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vsnprintf(b, c, f, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_json_aux
      Src: /src/jansson/examples/simple_parse.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - json_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: print_json
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 0
    functionsReached:
    - print_json_aux
    linkageType: ''
    returnType: void
    signature: void print_json(json_t *root)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: json_typeof
      Src: /src/jansson/examples/simple_parse.c:46,1
    - Dst: print_json_object
      Src: /src/jansson/examples/simple_parse.c:48,1
    - Dst: print_json_array
      Src: /src/jansson/examples/simple_parse.c:51,1
    - Dst: print_json_string
      Src: /src/jansson/examples/simple_parse.c:54,1
    - Dst: print_json_integer
      Src: /src/jansson/examples/simple_parse.c:57,1
    - Dst: print_json_real
      Src: /src/jansson/examples/simple_parse.c:60,1
    - Dst: print_json_true
      Src: /src/jansson/examples/simple_parse.c:63,1
    - Dst: print_json_false
      Src: /src/jansson/examples/simple_parse.c:66,1
    - Dst: print_json_null
      Src: /src/jansson/examples/simple_parse.c:69,1
    - Dst: fprintf
      Src: /src/jansson/examples/simple_parse.c:72,1
    - Dst: json_typeof
      Src: /src/jansson/examples/simple_parse.c:72,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - element
    - indent
    argTypes:
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 74
    functionName: print_json_aux
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 1
    functionsReached:
    - print_json_integer
    - print_json_string
    - print_json_true
    - print_json_real
    - print_json_object
    - print_json_false
    - fprintf
    - print_json_array
    - print_json_null
    - json_typeof
    linkageType: ''
    returnType: void
    signature: void print_json_aux(json_t *element, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/jansson/examples/simple_parse.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - indent
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: print_json_indent
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 0
    functionsReached:
    - putchar
    linkageType: ''
    returnType: void
    signature: void print_json_indent(int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: json_plural
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *json_plural(size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_json_indent
      Src: /src/jansson/examples/simple_parse.c:90,1
    - Dst: json_object_size
      Src: /src/jansson/examples/simple_parse.c:91,1
    - Dst: printf
      Src: /src/jansson/examples/simple_parse.c:93,1
    - Dst: json_plural
      Src: /src/jansson/examples/simple_parse.c:93,1
    - Dst: print_json_indent
      Src: /src/jansson/examples/simple_parse.c:95,1
    - Dst: printf
      Src: /src/jansson/examples/simple_parse.c:96,1
    - Dst: print_json_aux
      Src: /src/jansson/examples/simple_parse.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - element
    - indent
    argTypes:
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: print_json_object
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 1
    functionsReached:
    - json_object_size
    - json_plural
    - printf
    - print_json_indent
    - print_json_aux
    linkageType: ''
    returnType: void
    signature: void print_json_object(json_t *element, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_json_indent
      Src: /src/jansson/examples/simple_parse.c:95,1
    - Dst: printf
      Src: /src/jansson/examples/simple_parse.c:96,1
    - Dst: print_json_aux
      Src: /src/jansson/examples/simple_parse.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: json_object_foreach
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 1
    functionsReached:
    - printf
    - print_json_indent
    - print_json_aux
    linkageType: ''
    returnType: void
    signature: void json_object_foreach(element, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_array_size
      Src: /src/jansson/examples/simple_parse.c:103,1
    - Dst: print_json_indent
      Src: /src/jansson/examples/simple_parse.c:104,1
    - Dst: printf
      Src: /src/jansson/examples/simple_parse.c:106,1
    - Dst: json_plural
      Src: /src/jansson/examples/simple_parse.c:106,1
    - Dst: print_json_aux
      Src: /src/jansson/examples/simple_parse.c:108,1
    - Dst: json_array_get
      Src: /src/jansson/examples/simple_parse.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - element
    - indent
    argTypes:
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: print_json_array
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 1
    functionsReached:
    - json_plural
    - printf
    - json_array_get
    - json_array_size
    - print_json_indent
    - print_json_aux
    linkageType: ''
    returnType: void
    signature: void print_json_array(json_t *element, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_json_indent
      Src: /src/jansson/examples/simple_parse.c:113,1
    - Dst: printf
      Src: /src/jansson/examples/simple_parse.c:114,1
    - Dst: json_string_value
      Src: /src/jansson/examples/simple_parse.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - element
    - indent
    argTypes:
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: print_json_string
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 1
    functionsReached:
    - printf
    - json_string_value
    - print_json_indent
    linkageType: ''
    returnType: void
    signature: void print_json_string(json_t *element, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_json_indent
      Src: /src/jansson/examples/simple_parse.c:118,1
    - Dst: printf
      Src: /src/jansson/examples/simple_parse.c:119,1
    - Dst: json_integer_value
      Src: /src/jansson/examples/simple_parse.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - element
    - indent
    argTypes:
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: print_json_integer
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 1
    functionsReached:
    - json_integer_value
    - printf
    - print_json_indent
    linkageType: ''
    returnType: void
    signature: void print_json_integer(json_t *element, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_json_indent
      Src: /src/jansson/examples/simple_parse.c:123,1
    - Dst: printf
      Src: /src/jansson/examples/simple_parse.c:124,1
    - Dst: json_real_value
      Src: /src/jansson/examples/simple_parse.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - element
    - indent
    argTypes:
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: print_json_real
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 1
    functionsReached:
    - printf
    - json_real_value
    - print_json_indent
    linkageType: ''
    returnType: void
    signature: void print_json_real(json_t *element, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_json_indent
      Src: /src/jansson/examples/simple_parse.c:129,1
    - Dst: printf
      Src: /src/jansson/examples/simple_parse.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - element
    - indent
    argTypes:
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: print_json_true
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 1
    functionsReached:
    - printf
    - print_json_indent
    linkageType: ''
    returnType: void
    signature: void print_json_true(json_t *element, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_json_indent
      Src: /src/jansson/examples/simple_parse.c:135,1
    - Dst: printf
      Src: /src/jansson/examples/simple_parse.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - element
    - indent
    argTypes:
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: print_json_false
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 1
    functionsReached:
    - printf
    - print_json_indent
    linkageType: ''
    returnType: void
    signature: void print_json_false(json_t *element, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_json_indent
      Src: /src/jansson/examples/simple_parse.c:141,1
    - Dst: printf
      Src: /src/jansson/examples/simple_parse.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - element
    - indent
    argTypes:
    - json_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: print_json_null
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 1
    functionsReached:
    - printf
    - print_json_indent
    linkageType: ''
    returnType: void
    signature: void print_json_null(json_t *element, int indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_loads
      Src: /src/jansson/examples/simple_parse.c:153,1
    - Dst: fprintf
      Src: /src/jansson/examples/simple_parse.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 11
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: load_json
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 0
    functionsReached:
    - fprintf
    - json_loads
    linkageType: ''
    returnType: json_t
    signature: json_t *load_json(const char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/jansson/examples/simple_parse.c:168,1
    - Dst: fflush
      Src: /src/jansson/examples/simple_parse.c:169,1
    - Dst: fgets
      Src: /src/jansson/examples/simple_parse.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - line
    - max_chars
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: read_line
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 0
    functionsReached:
    - printf
    - fgets
    - fflush
    linkageType: ''
    returnType: char
    signature: char *read_line(char *line, int max_chars)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/jansson/examples/simple_parse.c:183,1
    - Dst: exit
      Src: /src/jansson/examples/simple_parse.c:184,1
    - Dst: read_line
      Src: /src/jansson/examples/simple_parse.c:187,1
    - Dst: load_json
      Src: /src/jansson/examples/simple_parse.c:190,1
    - Dst: print_json
      Src: /src/jansson/examples/simple_parse.c:194,1
    - Dst: json_decref
      Src: /src/jansson/examples/simple_parse.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 179
    functionDepth: 12
    functionLinenumber: 179
    functionLinenumberEnd: 200
    functionName: main
    functionSourceFile: /src/jansson/examples/simple_parse.c
    functionUses: 14
    functionsReached:
    - load_json
    - read_line
    - exit
    - print_json
    - json_decref
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
Fuzzer filename: /src/mod_auth_openidc/test/fuzz/fuzz_json.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- version.h
- base64.h
- http_int.h
- time.h
- jansson_private_config.h
- util/request_state.h
- openssl/ecdh.h
- jansson_config.h
- apr_pools.h
- jose.h
- openssl/evp.h
- jws.h
- header.h
- util/util.h
- util/util_cfg.h
- cfg/oauth.h
- brotli/encode.h
- metrics.h
- check_util.h
- metadata.h
- jansson_private.h
- apr_thread_proc.h
- cache/memcache.h
- include/jwe_int.h
- inttypes.h
- testinput.h
- include/util_int.h
- openssl/ec.h
- ctype.h
- openssl/obj_mac.h
- cache/redis.h
- openssl/crypto.h
- cfg/cfg_int.h
- cjose/jws.h
- zlib.h
- cfg/directives.h
- const.h
- stdio.h
- openssl/rand.h
- cjose/jwe.h
- openssl/err.h
- apr.h
- windows.h
- jose/internal.h
- unixd.h
- sys/param.h
- sched.h
- mod_auth.h
- curl/curl.h
- utf.h
- http.h
- sys/types.h
- cache/cache.h
- cjose/util.h
- apr_general.h
- brotli/decode.h
- openssl/ssl.h
- cjose/error.h
- apr_hash.h
- openssl/fecdh.h
- float.h
- strbuffer.h
- sys/resource.h
- json.h
- sys/wait.h
- fenv.h
- apr_global_mutex.h
- apr_tables.h
- config.h
- check_cjose.h
- http_config.h
- cjose/base64.h
- http_protocol.h
- apr_optional.h
- apr_strings.h
- errno.h
- apr_memcache.h
- openssl/fec.h
- lookup3.h
- apr_lib.h
- include/jws_int.h
- openssl/core_names.h
- handle/handle.h
- jansson.h
- hashtable.h
- locale.h
- cfg/check.h
- fuzz.h
- openssl/ecdsa.h
- apr_file_io.h
- check.h
- cfg/dir.h
- session.h
- Winsock2.h
- stddef.h
- openssl/hmac.h
- cjose/jwk.h
- jwk.h
- string.h
- endian.h
- mod_auth_openidc.h
- apr_shm.h
- cjose/version.h
- util.h
- limits.h
- openssl/bio.h
- openssl/opensslv.h
- ap_mmn.h
- http_core.h
- openssl/fecdsa.h
- cjose/cjose.h
- state.h
- openssl/opensslconf.h
- cache/shm.h
- pcre.h
- cfg/parse.h
- apr_portable.h
- signal.h
- assert.h
- openssl/rsa.h
- jwe.h
- jq.h
- stdarg.h
- apr_atomic.h
- sys/stat.h
- stdbool.h
- util/pcre_subst.h
- apr_base64.h
- unistd.h
- openssl/pem.h
- sys/time.h
- http_request.h
- openssl/aes.h
- stdint.h
- httpd.h
- hiredis/hiredis.h
- openssl/bn.h
- wincrypt.h
- ap_mpm.h
- metadata/internal.h
- cjose/header.h
- apr_want.h
- cfg/cache.h
- include/concatkdf_int.h
- io.h
- proto/proto.h
- apr_network_io.h
- error.h
- fcntl.h
- math.h
- apr_thread_mutex.h
- include/header_int.h
- http_server.h
- oauth.h
- arpa/inet.h
- stdlib.h
- apr_time.h
- http_log.h
- cfg/cfg.h
- pcre2.h
- include/jwk_int.h
- cfg/provider.h
report: name
sources:
- function_names:
  - _jose_test_jwk_parse
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - _jose_test_build_jwe
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_jose.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ap_hook_check_authn
  - oidc_test_authz_provider_get
  - ap_register_auth_provider
  - ap_unixd_set_global_mutex_perms
  - oidc_test_set_auth_type
  - ap_auth_type
  - ap_auth_name
  - ap_get_client_block
  - ap_getword
  - substring_conf
  - ap_getword_conf
  - ap_getword_nulls
  - ap_getword_white
  - ap_hook_check_user_id
  - ap_hook_auth_checker
  - ap_hook_fixups
  - ap_hook_insert_filter
  - oidc_test_hook_post_config_get
  - oidc_test_hook_child_init_get
  - ap_hook_post_config
  - ap_hook_child_init
  - ap_hook_handler
  - ap_is_initial_req
  - ap_expr_parse_cmd_mi
  - ap_expr_str_exec
  - ap_get_exec_line
  - oidc_test_exec_line_prime
  - ap_log_error_
  - ap_log_rerror_
  - ap_note_auth_failure
  - ap_pass_brigade
  - ap_requires
  - ap_run_http_scheme
  - ap_set_content_type
  - ap_set_flag_slot
  - ap_set_string_slot
  - ap_set_int_slot
  - ap_setup_client_block
  - ap_should_client_block
  - ap_unescape_url
  - unixd_set_global_mutex_perms
  - ap_get_server_name
  - ap_server_root_relative
  - ap_add_input_filter
  - oidc_test_added_input_filter_get
  - oidc_test_added_input_filter_reset
  - ap_get_brigade
  - oidc_test_brigade_prime
  - ap_register_input_filter
  - oidc_test_input_filter_get
  - oidc_test_hook_insert_filter_get
  - ap_make_dirstr_parent
  - ap_mpm_query
  - ap_timeout_parameter_parse
  - ap_expr_exec
  source_file: /src/mod_auth_openidc/test/stub.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ap_HOOK_check_user_id_t
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/mod_auth_openidc/test/stub.c
      type_or_value: void
    structs: []
    typedefs:
    - item_type: typedef
      name: (*oidc_test_hook_post_config_fn)(apr_pool_t *pool, apr_pool_t *p1, apr_pool_t
        *p2, server_rec *s)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/mod_auth_openidc/test/stub.c
      type: int
    - item_type: typedef
      name: (*oidc_test_hook_child_init_fn)(apr_pool_t *p, server_rec *s)
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/mod_auth_openidc/test/stub.c
      type: void
    - item_type: typedef
      name: (*oidc_test_hook_insert_filter_fn)(request_rec *r)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/mod_auth_openidc/test/stub.c
      type: void
    - item_type: typedef
      name: "(*oidc_test_input_filter_fn)(ap_filter_t *f, apr_bucket_brigade *b, ap_input_mode_t
        mode,\n\t\t\t\t\t\t  apr_read_type_e block, apr_off_t nbytes)"
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/mod_auth_openidc/test/stub.c
      type: apr_status_t
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - OIDC_TEST_METADATA_CERT_BOUND
  - oidc_test_metadata_cert_bound_parse
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - oidc_test_jwks_first_kid
  - START_TEST
  - START_TEST
  - e2e_jwks_cache_get
  - e2e_jwks_cache_set
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - signed_jwks_make_jwt
  - signed_jwks_make_verifier_list
  - signed_jwks_destroy_verifier_list
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_make_metadata_dir
  - e2e_write_file
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_provider_metadata_for
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_metadata.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VALID_METADATA_JSON
      pos:
        line_end: 58
        line_start: 48
        source_file: /src/mod_auth_openidc/test/test_metadata.c
      type_or_value: "\"{\"                                                                                                            \\\n\t\"\\\"issuer\\\":\\\"https://idp.example.com\\\",\"
        \                                                                     \\\n\t\"\\\"authorization_endpoint\\\":\\\"https://idp.example.com/authorize\\\",\"
        \                                           \\\n\t\"\\\"token_endpoint\\\":\\\"https://idp.example.com/token\\\",\"
        \                                                       \\\n\t\"\\\"userinfo_endpoint\\\":\\\"https://idp.example.com/userinfo\\\",\"
        \                                                 \\\n\t\"\\\"jwks_uri\\\":\\\"https://idp.example.com/jwks\\\",\"
        \                                                              \\\n\t\"\\\"response_types_supported\\\":[\\\"code\\\",\\\"id_token\\\",\\\"id_token
        token\\\"],\"                                     \\\n\t\"\\\"token_endpoint_auth_methods_supported\\\":[\\\"client_secret_basic\\\",\\\"client_secret_post\\\"]\"
        \                  \\\n\t\"}\""
    - item_type: preproc_def
      name: OIDC_TEST_METADATA_PKEY_MTLS
      pos:
        line_end: 443
        line_start: 419
        source_file: /src/mod_auth_openidc/test/test_metadata.c
      type_or_value: "\"{\"                                                                                                            \\\n\t\"\\\"issuer\\\":\\\"https://idp.example.com\\\",\"
        \                                                                     \\\n\t\"\\\"authorization_endpoint\\\":\\\"https://idp.example.com/authorize\\\",\"
        \                                           \\\n\t\"\\\"token_endpoint\\\":\\\"https://idp.example.com/token\\\",\"
        \                                                       \\\n\t\"\\\"registration_endpoint\\\":\\\"https://idp.example.com/register\\\",\"
        \                                             \\\n\t\"\\\"userinfo_endpoint\\\":\\\"https://idp.example.com/userinfo\\\",\"
        \                                                 \\\n\t\"\\\"mtls_endpoint_aliases\\\":{\"
        \                                                                                 \\\n\t\"\\\"token_endpoint\\\":\\\"https://mtls.idp.example.com/token\\\",\"
        \                                                  \\\n\t\"\\\"registration_endpoint\\\":\\\"https://mtls.idp.example.com/register\\\",\"
        \                                        \\\n\t\"\\\"userinfo_endpoint\\\":\\\"https://mtls.idp.example.com/userinfo\\\",\"
        \                                            \\\n\t\"\\\"pushed_authorization_request_endpoint\\\":\\\"https://mtls.idp.example.com/par\\\"\"
        \                              \\\n\t\"},\"                                                                                                           \\\n\t\"\\\"jwks_uri\\\":\\\"https://idp.example.com/jwks\\\",\"
        \                                                              \\\n\t\"\\\"response_types_supported\\\":[\\\"code\\\"],\"
        \                                                                    \\\n\t\"\\\"authorization_response_iss_parameter_supported\\\":true,\"
        \                                                    \\\n\t\"\\\"code_challenge_methods_supported\\\":[\\\"S256\\\"],\"
        \                                                            \\\n\t\"\\\"id_token_signing_alg_values_supported\\\":[\\\"PS256\\\"],\"
        \                                                      \\\n\t\"\\\"tls_client_certificate_bound_access_tokens\\\":true,\"
        \                                                        \\\n\t\"\\\"token_endpoint_auth_methods_supported\\\":[\\\"private_key_jwt\\\"],\"
        \                                            \\\n\t\"\\\"pushed_authorization_request_endpoint\\\":\\\"https://idp.example.com/par\\\",\"
        \                                  \\\n\t\"\\\"require_pushed_authorization_requests\\\":true,\"
        \                                                             \\\n\t\"\\\"token_endpoint_auth_signing_alg_values_supported\\\":[\\\"PS256\\\",\\\"ES256\\\"]\"
        \                                  \\\n\t\"}\""
    structs:
    - fields:
      - name: '*key'
        type: char
      - name: '*unsupported'
        type: char
      item_type: struct
      name: "cases[] = {\n\t    {\"response_types_supported\", \"unsupported_flow\"},\n\t
        \   {\"response_modes_supported\", \"carrier_pigeon\"},\n\t    {\"token_endpoint_auth_methods_supported\",
        \"secret_handshake\"},\n\t}"
      pos:
        line_end: 115
        line_start: 112
        source_file: /src/mod_auth_openidc/test/test_metadata.c
    typedefs: []
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_cfg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _ck_assert_ptr_null
  - ck_assert_ptr_null
  - ck_assert_ptr_nonnull
  - _ck_assert_ptr
  - ck_assert_ptr_eq
  - ck_assert_ptr_ne
  - _ck_assert_int_cmp
  - ck_assert_int_lt
  - ck_assert_int_le
  - ck_assert_int_gt
  - ck_assert_int_ge
  - _ck_assert_uint_cmp
  - ck_assert_uint_eq
  - ck_assert_uint_ne
  - ck_assert_uint_lt
  - ck_assert_uint_le
  - ck_assert_uint_gt
  - ck_assert_uint_ge
  - ck_assert_mem_eq
  - ck_assert_table_str
  - ck_assert_table_unset
  - ck_assert_jwt_parses
  source_file: /src/mod_auth_openidc/test/check_util.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_test_suite_run
  source_file: /src/mod_auth_openidc/test/check_util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - state_cookie_value
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_state.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/test/util.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*oidc_test_hook_post_config_fn)(apr_pool_t *pool, apr_pool_t *p1, apr_pool_t
        *p2, server_rec *s)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/mod_auth_openidc/test/util.h
      type: int
    - item_type: typedef
      name: (*oidc_test_hook_child_init_fn)(apr_pool_t *p, server_rec *s)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/mod_auth_openidc/test/util.h
      type: void
    - item_type: typedef
      name: (*oidc_test_hook_insert_filter_fn)(request_rec *r)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/mod_auth_openidc/test/util.h
      type: void
    - item_type: typedef
      name: "(*oidc_test_input_filter_fn)(ap_filter_t *f, apr_bucket_brigade *b, ap_input_mode_t
        mode,\n\t\t\t\t\t\t  apr_read_type_e block, apr_off_t nbytes)"
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/mod_auth_openidc/test/util.h
      type: apr_status_t
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_replay_cache_get
  - e2e_replay_cache_set
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_table_count
  - e2e_jwt_jti
  - START_TEST
  - START_TEST
  - proto_sign_idtoken_hs256
  - proto_unsigned_idtoken
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - oidc_jwt_payload_t::make_payload
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - set_provider_aud_values
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_form_param
  - START_TEST
  - START_TEST
  - e2e_half_hash_b64url
  - e2e_sign_hybrid_idtoken
  - e2e_make_hybrid_proto_state
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_sign_userinfo_jwt
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_make_jwt_for_kid
  - e2e_make_proto_state
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_request_object_location
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_sign_jwt_hs256_payload
  - START_TEST
  - START_TEST
  - oidc_json_t *e2e_request_object_copy_params_payload(request_rec *r)
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_proto.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - slist_count
  - slist_contains
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - oidc_http_timeout_t::e2e_timeout
  - e2e_no_proxy
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_http.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - replay_set_cookies
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_session.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_test_key_derive_cached
  - oidc_test_crypto_passphrase_derive_keys_cached
  - oidc_test_request_init
  - oidc_test_setup
  - oidc_test_teardown
  - oidc_test_pool_get
  - oidc_test_request_get
  - oidc_test_cfg_get
  - oidc_test_cmd_get
  - oidc_test_crypto_passphrase_rederive
  source_file: /src/mod_auth_openidc/test/util.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_TEST_KDF_CACHE_MAX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/test/util.c
      type_or_value: '32'
    structs:
    - fields:
      - name: secret[128]
        type: char
      - name: key[OIDC_CRYPTO_PASSPHRASE_DERIVED_KEY_LEN]
        type: unsigned char
      item_type: struct
      name: oidc_test_kdf_cache[OIDC_TEST_KDF_CACHE_MAX]
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/mod_auth_openidc/test/util.c
    typedefs: []
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_util.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/test/test_util.c
      type_or_value: '8'
    structs:
    - fields:
      - name: rc
        type: int
      - name: '*reason'
        type: char
      item_type: struct
      name: "arms[] = {\n\t    {PCRE2_ERROR_NOSUBSTRING, \"no groups of that number\"},\n\t
        \   {PCRE2_ERROR_UNAVAILABLE, \"ovector was too small\"},\n\t    {PCRE2_ERROR_UNSET,
        \"did not participate\"},\n\t    {PCRE2_ERROR_NOMEMORY, \"memory could not
        be obtained\"},\n\t    {12345, \"pcre2_substring_get_bynumber failed\"},\n\t}"
      pos:
        line_end: 1468
        line_start: 1465
        source_file: /src/mod_auth_openidc/test/test_util.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/test/http_server.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: status_code
        type: int
      - name: '*content_type'
        type: char
      - name: '*body'
        type: char
      - name: '*extra_headers'
        type: apr_table_t
      item_type: struct
      name: oidc_test_http_response_t
      pos:
        line_end: 60
        line_start: 55
        source_file: /src/mod_auth_openidc/test/http_server.h
    - fields:
      - name: '*method'
        type: char
      - name: '*path'
        type: char
      - name: '*headers'
        type: apr_table_t
      - name: '*body'
        type: char
      - name: body_len
        type: apr_size_t
      item_type: struct
      name: oidc_test_http_captured_t
      pos:
        line_end: 68
        line_start: 62
        source_file: /src/mod_auth_openidc/test/http_server.h
    typedefs:
    - item_type: typedef
      name: oidc_test_http_server_t
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/mod_auth_openidc/test/http_server.h
      type: oidc_test_http_server_t
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - oidc_cache_shm_thread_ctx_t
  - APR_THREAD_FUNC::oidc_cache_shm_thread
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_flaky_get
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - oidc_cache_t *e2e_switch_to_file_backend(request_rec *r)
  - e2e_restore_cache_backend
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_file_cache_path
  - e2e_file_write_raw
  - e2e_file_truncate
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - redis_mock_reset
  - redis_mock_make_reply
  - redis_mock_connect
  - redis_mock_command
  - redis_mock_disconnect
  - redis_mock_install
  - redis_mock_restore
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - redis_test_setup
  - memcache_mock_reset
  - memcache_mock_add_server
  - memcache_mock_getp
  - memcache_mock_set
  - memcache_mock_delete
  - memcache_mock_status
  - memcache_save
  - memcache_restore
  - memcache_mock_run
  - memcache_mock_install
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - memcache_test_setup
  - main
  source_file: /src/mod_auth_openidc/test/test_cache.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: len
        type: apr_size_t
      - name: expire
        type: apr_time_t
      item_type: struct
      name: "header = {\n\t    .len = (apr_size_t)(16 * 1024 * 1024 + 1),\n\t    .expire
        = apr_time_now() + apr_time_from_sec(60),\n\t}"
      pos:
        line_end: 1063
        line_start: 1060
        source_file: /src/mod_auth_openidc/test/test_cache.c
    - fields:
      - name: connect_calls
        type: int
      - name: command_calls
        type: int
      - name: disconnect_calls
        type: int
      - name: connect_fail_times
        type: int
      - name: error_first_n
        type: int
      - name: return_null
        type: int
      - name: reply_type
        type: int
      - name: '*reply_str'
        type: char
      - name: force_len
        type: int
      - name: '*last_format'
        type: char
      item_type: struct
      name: redis_mock_state_t
      pos:
        line_end: 1332
        line_start: 1321
        source_file: /src/mod_auth_openidc/test/test_cache.c
    - fields:
      - name: add_calls
        type: int
      - name: last_min
        type: apr_uint32_t
      - name: last_smax
        type: apr_uint32_t
      - name: last_hmax
        type: apr_uint32_t
      - name: last_ttl
        type: apr_interval_time_t
      - name: fail
        type: int
      - name: get_calls
        type: int
      - name: set_calls
        type: int
      - name: delete_calls
        type: int
      - name: status_calls
        type: int
      - name: getp_rv
        type: apr_status_t
      - name: '*getp_value'
        type: char
      - name: getp_len
        type: int
      - name: status_rv
        type: apr_byte_t
      - name: set_rv
        type: apr_status_t
      - name: delete_rv
        type: apr_status_t
      - name: '*last_key'
        type: char
      - name: '*last_value'
        type: char
      item_type: struct
      name: memcache_mock_state_t
      pos:
        line_end: 2046
        line_start: 2025
        source_file: /src/mod_auth_openidc/test/test_cache.c
    typedefs: []
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - enable_metrics_hook_data
  - metrics_subsystem_setup
  - metrics_subsystem_teardown
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_force_metrics_flush
  - e2e_metrics_setup_flushed
  - e2e_metrics_teardown_flushed
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - metrics_json_wait_for
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_metrics.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_build_state_cookie
  - START_TEST
  - e2e_sign_idtoken_hs256
  - START_TEST
  - e2e_refresh_cache_seed
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_implicit_state_cookie_mode
  - e2e_implicit_state_cookie
  - e2e_half_hash_b64url
  - e2e_sign_hybrid_idtoken_handle
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_discovery_set_empty_metadata_dir
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_write_metadata_dir
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_dpop_enable
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_dpop_proof_htm
  - e2e_dpop_response_proof
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - authz_status::_legacy_authz
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_sign_backchannel_logout_jwt_ex
  - e2e_sign_backchannel_logout_jwt
  - e2e_encrypt_symmetric
  - e2e_post_body
  - START_TEST
  - START_TEST
  - e2e_backchannel_logout_missing_claim
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - oidc_session_t *e2e_revocable_session(request_rec *r, const oidc_provider_t *provider)
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_jti_cache_get
  - e2e_jti_cache_set
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - existing_session_seed
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - oidc_test_discovery_write_metadata_dir
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_handle.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_TEST_PROVIDER_METADATA_JSON
      pos:
        line_end: 59
        line_start: 49
        source_file: /src/mod_auth_openidc/test/test_handle.c
      type_or_value: "\"{\"                                                                                                            \\\n\t\"\\\"issuer\\\":\\\"https://idp.example.com\\\",\"
        \                                                                     \\\n\t\"\\\"authorization_endpoint\\\":\\\"https://idp.example.com/authorize\\\",\"
        \                                           \\\n\t\"\\\"token_endpoint\\\":\\\"https://idp.example.com/token\\\",\"
        \                                                       \\\n\t\"\\\"userinfo_endpoint\\\":\\\"https://idp.example.com/userinfo\\\",\"
        \                                                 \\\n\t\"\\\"jwks_uri\\\":\\\"https://idp.example.com/jwks\\\",\"
        \                                                              \\\n\t\"\\\"response_types_supported\\\":[\\\"code\\\",\\\"id_token\\\",\\\"id_token
        token\\\"],\"                                     \\\n\t\"\\\"token_endpoint_auth_methods_supported\\\":[\\\"client_secret_basic\\\",\\\"client_secret_post\\\"]\"
        \                  \\\n\t\"}\""
    - item_type: preproc_def
      name: TEST_REFRESH_LOCK_VALUE
      pos:
        line_end: 1010
        line_start: 1009
        source_file: /src/mod_auth_openidc/test/test_handle.c
      type_or_value: '"needstobelargerthanafewcharacters"'
    - item_type: preproc_def
      name: TEST_REFRESH_FAILED_LOCK_VALUE
      pos:
        line_end: 1011
        line_start: 1010
        source_file: /src/mod_auth_openidc/test/test_handle.c
      type_or_value: '"alsoneedstobelargerthanafewcharactersbutdifferent"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - srv_read_headers
  - srv_parse_request
  - srv_reason
  - srv_append_hdr
  - srv_send_response
  - APR_THREAD_FUNC::srv_run
  - oidc_test_http_server_start_seq
  - oidc_test_http_server_start
  - oidc_test_http_server_port
  - oidc_test_http_server_url
  - oidc_test_http_server_wait
  - oidc_test_http_server_request_count
  - oidc_test_http_server_captured
  - oidc_test_http_server_stop
  - oidc_test_http_free_port
  source_file: /src/mod_auth_openidc/test/http_server.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_TEST_SRV_READ_BUF
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/mod_auth_openidc/test/http_server.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: OIDC_TEST_SRV_BACKLOG
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/mod_auth_openidc/test/http_server.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*pool'
        type: apr_pool_t
      - name: '*listen_sock'
        type: apr_socket_t
      - name: port
        type: apr_port_t
      - name: '*thread'
        type: apr_thread_t
      - name: '*responses'
        type: oidc_test_http_response_t
      - name: n_responses
        type: int
      - name: '*captured'
        type: oidc_test_http_captured_t
      - name: captured_count
        type: int
      - name: stopped
        type: int
      item_type: struct
      name: oidc_test_http_server_t
      pos:
        line_end: 48
        line_start: 38
        source_file: /src/mod_auth_openidc/test/http_server.c
    - fields:
      - name: '*pool'
        type: apr_pool_t
      - name: '*acc'
        type: char
      item_type: struct
      name: srv_hdr_acc_t
      pos:
        line_end: 169
        line_start: 166
        source_file: /src/mod_auth_openidc/test/http_server.c
    typedefs: []
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_set_introspection_endpoint
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_post_body
  - START_TEST
  - e2e_sign_jwt_access_token_hs256
  - e2e_setup_jwt_validation
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - e2e_sign_jwt_access_token_claims
  - e2e_sign_jwt_access_token_real_exp
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_oauth.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_TEST_OAUTH_AUD
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/mod_auth_openidc/test/test_oauth.c
      type_or_value: '"https://my-api.example.org"'
    - item_type: preproc_def
      name: OIDC_TEST_OAUTH_ISS
      pos:
        line_end: 600
        line_start: 599
        source_file: /src/mod_auth_openidc/test/test_oauth.c
      type_or_value: '"https://issuer.example.org"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - file_read
  - sign
  - verify
  - decrypt
  - key2jwk
  - enckey
  - hash_base64url
  - timestamp
  - uuid
  - main
  source_file: /src/mod_auth_openidc/test/test-cmd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_test_server_create
  - oidc_test_server_cfg
  - oidc_test_server_cmd
  - oidc_test_server_create_openidc
  - oidc_test_post_config
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - main
  source_file: /src/mod_auth_openidc/test/test_config.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_TEST_PASSPHRASE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/test/test_config.c
      type_or_value: '"12345678901234567890123456789012"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_url.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_json.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_discovery_response.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - fuzz_param_get
  - fuzz_freshen
  - fuzz_hash_claim
  - fuzz_sign
  - fuzz_id_token_substitute
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUZZ_CLIENT_SECRET
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/mod_auth_openidc/test/fuzz/fuzz_authz_response.c
      type_or_value: '"fuzz-authz-response-shared-secret"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_redirect_uri.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fuzz_strndup
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fuzz_jwt_keys_destroy
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUZZ_JWT_MAX_KEYS
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c
      type_or_value: '8'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*json'
        type: char
      item_type: struct
      name: "fuzz_jwt_keys[] = {\n    {\"hs256\", \"{\\\"kty\\\":\\\"oct\\\",\\\"k\\\":\\\"AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-\"\n\t
        \     \"1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow\\\"}\"},\n    {\"f6qtj\",
        \"{\\\"kty\\\":\\\"EC\\\",\\\"kid\\\":\\\"f6qtj\\\",\\\"use\\\":\\\"sig\\\",\"\n\t
        \     \"\\\"x\\\":\\\"iARwFlN3B3xa8Zn_O-CVfqry68tXIhO9DckKo1yrNg0\\\",\"\n\t
        \     \"\\\"y\\\":\\\"583S_mPS7YVZtLCjx2O69G_JzQPnMxjieOli-9cc_6Q\\\",\\\"crv\\\":\\\"P-256\\\"}\"},\n
        \   {\"rs256\", \"{\\\"kty\\\":\\\"RSA\\\",\\\"e\\\":\\\"AQAB\\\",\"\n\t      \"\\\"n\\\":\\\"3lDyn_ZvG32Pw5kYbRuVxHsPfe9Xt8s9vOXnt8z7_T-hZZvealNhCxz9VEwTJ7TsZ9CLi5c30FjoEJYFkKdd\"\n\t
        \     \"LAdxKo0oOXWc_AWrQvPwht9a-o6dX2fL_9CmXW1hGHXMH0qiLMrFqMSzZeh-GUY6F1woE_eKsAo6LOhP8X77FlEQT2Eu\"\n\t
        \     \"71wu8KC4B3sH_9QTco50KNw14-bRY5j2V2TZelvsXJnvrN4lXtEVYWFkREKeXzMH8DhDyZzh0NcHa7dFBa7rDusyfIHj\"\n\t
        \     \"uP6uAju_Ao6hhdOGjlKePMVtfusWBAI7MWDChLTqiCTvlZnCpkpTTh5m-i7TbE1TwmdbLceq1w\\\"}\"},\n
        \   {\"rsa-oaep\",\n     \"{\\\"kty\\\":\\\"RSA\\\",\"\n     \"\\\"n\\\":\\\"oahUIoWw0K0usKNuOR6H4wkf4oBUXHTxRvgb48E-BVvxkeDNjbC4he8rUWcJoZmds2h7M70imEVhRU5djINXtqllXI4D\"\n
        \    \"FqcI1DgjT9LewND8MW2Krf3Spsk_ZkoFnilakGygTwpZ3uesH-PFABNIUYpOiN15dsQRkgr0vEhxN92i2asbOenSZeyaxziK72Uw\"\n
        \    \"xrrKoExv6kc5twXTq4h-QChLOln0_mtUZwfsRaMStPs6mS6XrgxnxbWhojf663tuEQueGC-FCMfra36C9knDFGzKsNa7LZK2djYg\"\n
        \    \"yD3JR_MB_4NUJW_TqOQtwHYbxevoJArm-L5StowjzGy-_bq6Gw\\\",\"\n     \"\\\"e\\\":\\\"AQAB\\\",\"\n
        \    \"\\\"d\\\":\\\"kLdtIj6GbDks_ApCSTYQtelcNttlKiOyPzMrXHeI-yk1F7-kpDxY4-WY5NWV5KntaEeXS1j82E375xxhWMHXyvjYecPT\"\n
        \    \"9fpwR_M9gV8n9Hrh2anTpTD93Dt62ypW3yDsJzBnTnrYu1iwWRgBKrEYY46qAZIrA2xAwnm2X7uGR1hghkqDp0Vqj3kbSCz1XyfC\"\n
        \    \"s6_LehBwtxHIyh8Ripy40p24moOAbgxVw3rxT_vlt3UVe4WO3JkJOzlpUf-KTVI2Ptgm-dARxTEtE-id-4OJr0h-K-VFs3VSndVT\"\n
        \    \"IznSxfyrj8ILL6MG_Uv8YAu7VILSB3lOW085-4qE3DzgrTjgyQ\\\",\"\n     \"\\\"p\\\":\\\"1r52Xk46c-LsfB5P442p7atdPUrxQSy4mti_tZI3Mgf2EuFVbUoDBvaRQ-SWxkbkmoEzL7JXroSBjSrK3YIQgYdMgyAEPT\"\n
        \    \"PjXv_hI2_1eTSPVZfzL0lffNn03IXqWF5MDFuoUYE0hzb2vhrlN_rKrbfDIwUbTrjjgieRbwC6Cl0\\\",\"\n
        \    \"\\\"q\\\":\\\"wLb35x7hmQWZsWJmB_vle87ihgZ19S8lBEROLIsZG4ayZVe9Hi9gDVCOBmUDdaDYVTSNx_8Fyw1YYa9XGrGnDew00J28cR\"\n
        \    \"UoeBB_jKI1oma0Orv1T9aXIWxKwd4gvxFImOWr3QRL9KEBRzk2RatUBnmDZJTIAfwTs0g68UZHvtc\\\",\"\n
        \    \"\\\"dp\\\":\\\"ZK-YwE7diUh0qR1tR7w8WHtolDx3MZ_OTowiFvgfeQ3SiresXjm9gZ5KLhMXvo-uz-KUJWDxS5pFQ_M0evdo1dKiRTjV\"\n
        \    \"w_x4NyqyXPM5nULPkcpU827rnpZzAJKpdhWAgqrXGKAECQH0Xt4taznjnd_zVpAmZZq60WPMBMfKcuE\\\",\"\n
        \    \"\\\"dq\\\":\\\"Dq0gfgJ1DdFGXiLvQEZnuKEN0UUmsJBxkjydc3j4ZYdBiMRAy86x0vHCjywcMlYYg4yoC4YZa9hNVcsjqA3FeiL19rk8\"\n
        \    \"g6Qn29Tt0cj8qqyFpz9vNDBUfCAiJVeESOjJDZPYHdHY8v1b-o-Z2X5tvLx-TCekf7oxyeKDUqKWjis\\\",\"\n
        \    \"\\\"qi\\\":\\\"VIMpMYbPf47dT1w_zDUXfPimsSegnMOA1zTaX7aGk_8urY6R8-ZW1FxU7AlWAyLWybqq6t16VFd7hQd0y6flUK4SlOyd\"\n
        \    \"B61gwanOsXGOAOv82cHq0E3eL4HrtZkUuKvnPrMnsUUFlfUdybVzxyjz9JF_XyaY14ardLSjf4L_FNY\\\"}\"},\n
        \   {\"a128kw\", \"{\\\"kty\\\":\\\"oct\\\",\\\"k\\\":\\\"GawgguFyGrWKav7AX4VKUg\\\"}\"},\n
        \   {NULL, NULL},\n}"
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/mod_auth_openidc/test/fuzz/fuzz_jwt.c
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_metadata.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_base64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_strings.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - fuzz_freshen
  - fuzz_sign
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUZZ_CLIENT_SECRET
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/mod_auth_openidc/test/fuzz/fuzz_backchannel_logout.c
      type_or_value: '"fuzz-backchannel-logout-shared-secret"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_form_params.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - fuzz_pem
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_pem_key.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_cookie.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - run_file
  - run_lines
  - main
  source_file: /src/mod_auth_openidc/test/fuzz/standalone.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fuzz_shared_keys_destroy
  - fuzz_cmd
  - LLVMFuzzerInitialize
  - fuzz_freshen
  - fuzz_maybe_sign
  - fuzz_authorization_substitute
  - fuzz_param_substitute
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUZZ_SHARED_SECRET
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
      type_or_value: '"fuzz-bearer-token-shared-secret-0123456789"'
    - item_type: preproc_def
      name: FUZZ_ISSUER
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
      type_or_value: '"https://as.example.com"'
    - item_type: preproc_def
      name: FUZZ_AUDIENCE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
      type_or_value: '"fuzz-resource"'
    - item_type: preproc_def
      name: FUZZ_MAX_SHARED_KEYS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/mod_auth_openidc/test/fuzz/fuzz_bearer_token.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_response_header.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - fuzz_jwk_use
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_jwks.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_state_cookie.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_post_preserve.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mod_auth_openidc/test/fuzz/fuzz_current_url.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/session.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_SESSION_TYPE_SERVER_CACHE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/session.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_SESSION_TYPE_CLIENT_COOKIE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/mod_auth_openidc/src/session.h
      type_or_value: '1'
    structs:
    - fields:
      - name: '*uuid'
        type: char
      - name: '*remote_user'
        type: char
      - name: '*state'
        type: oidc_json_t
      - name: expiry
        type: apr_time_t
      - name: '*sid'
        type: char
      - name: '*sub'
        type: char
      item_type: struct
      name: oidc_session_t
      pos:
        line_end: 55
        line_start: 48
        source_file: /src/mod_auth_openidc/src/session.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/http_int.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_CURL_RESPONSE_DATA_SIZE_MAX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/http_int.h
      type_or_value: (1024 * 1024 * 10)
    - item_type: preproc_def
      name: OIDC_CURLOPT_SSL_OPTIONS_ENV_VAR_NAME
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mod_auth_openidc/src/http_int.h
      type_or_value: '"CURLOPT_SSL_OPTIONS"'
    - item_type: preproc_def
      name: OIDC_USER_AGENT_ENV_VAR
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mod_auth_openidc/src/http_int.h
      type_or_value: '"OIDC_USER_AGENT"'
    - item_type: preproc_def
      name: OIDC_CURL_INTERFACE_ENV_VAR
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/mod_auth_openidc/src/http_int.h
      type_or_value: '"OIDC_CURL_INTERFACE"'
    structs:
    - fields:
      - name: '*r'
        type: request_rec
      - name: '*memory'
        type: char
      - name: size
        type: size_t
      item_type: struct
      name: oidc_curl_resp_data_ctx_t
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/mod_auth_openidc/src/http_int.h
    - fields:
      - name: '*r'
        type: request_rec
      - name: '*hdrs'
        type: apr_hash_t
      item_type: struct
      name: oidc_curl_resp_hdr_ctx_t
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/mod_auth_openidc/src/http_int.h
    typedefs: []
    union: []
- function_names:
  - oidc_http_url_encode
  - oidc_http_url_decode_hex_digit
  - oidc_http_url_decode
  - oidc_http_hdr_in_get
  - oidc_http_hdr_in_get_left_most_only
  - oidc_http_hdr_in_contains
  - oidc_http_hdr_value_sanitize
  - oidc_http_hdr_table_set
  - oidc_http_hdr_table_add
  - oidc_http_hdr_out_set
  - oidc_http_hdr_out_get
  - oidc_http_hdr_err_out_add
  - oidc_http_set_no_cache_headers
  - oidc_http_hdr_in_set
  - oidc_http_hdr_in_cookie_get
  - oidc_http_hdr_in_cookie_set
  - oidc_http_hdr_in_user_agent_get
  - oidc_http_hdr_in_x_forwarded_for_get
  - oidc_http_hdr_in_content_type_get
  - oidc_http_hdr_in_content_length_get
  - oidc_http_hdr_in_x_requested_with_get
  - oidc_http_hdr_in_sec_fetch_mode_get
  - oidc_http_hdr_in_sec_fetch_dest_get
  - oidc_http_hdr_in_accept_get
  - oidc_http_hdr_in_accept_contains
  - oidc_http_hdr_in_authorization_get
  - oidc_http_hdr_in_x_forwarded_proto_get
  - oidc_http_hdr_in_x_forwarded_port_get
  - oidc_http_hdr_in_x_forwarded_host_get
  - oidc_http_hdr_in_forwarded_get
  - oidc_http_hdr_in_host_get
  - oidc_http_hdr_in_traceparent_get
  - oidc_http_hdr_out_location_set
  - oidc_http_hdr_out_location_get
  - oidc_http_hdr_forwarded_get
  - oidc_http_hdr_normalize_name
  - oidc_http_response_data
  - oidc_http_response_header
  - oidc_http_param_is_sensitive
  - oidc_http_param_name_is_sensitive
  - oidc_http_redact_body_for_log
  - oidc_http_redact_json_member
  - oidc_http_redact_json_for_log
  - oidc_http_add_form_url_encoded_param
  - oidc_http_add_form_encoded_param_for_log
  - oidc_http_encode_params
  - oidc_http_query_encoded_url
  - oidc_http_form_encoded_data
  - OIDC_HTTP_CURL_SETOPT_PARMS
  - OIDC_HTTP_CURL_SETOPT
  - OIDC_HTTP_CURL_SETOPT_SSL
  - oidc_http_set_curl_ssl_options
  - oidc_http_user_agent
  - oidc_http_interface
  - oidc_http_request_setup_ca_bundle
  - oidc_http_request_setup_proxy
  - oidc_http_request_build_header_list
  - oidc_http_request_pass_cookies
  - oidc_http_request_perform_with_retries
  - oidc_http_request
  - oidc_http_get
  - oidc_http_post_form
  - oidc_http_post_json
  - oidc_http_get_path
  - oidc_http_get_cookie_path
  - oidc_http_set_cookie_append_value
  - oidc_http_set_cookie
  - oidc_http_get_cookie
  - oidc_http_get_chunk_count_name
  - oidc_http_get_chunked_count
  - oidc_http_get_chunk_cookie_name
  - oidc_http_get_chunked_cookie
  - oidc_http_clear_chunked_cookie
  - oidc_http_set_chunked_cookie
  - oidc_http_proxy_auth_options
  - oidc_http_proxy_s2auth
  - oidc_http_init
  - oidc_http_cleanup
  - oidc_http_curl_pool_lock
  - oidc_http_curl_pool_unlock
  - oidc_http_curl_pool_cleanup
  - oidc_http_curl_pool_init
  - oidc_http_curl_pool_child_init
  - oidc_http_curl_acquire
  - oidc_http_curl_release
  source_file: /src/mod_auth_openidc/src/http.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_HTTP_COOKIE_FLAG_DOMAIN
      pos:
        line_end: 1298
        line_start: 1297
        source_file: /src/mod_auth_openidc/src/http.c
      type_or_value: '"Domain"'
    - item_type: preproc_def
      name: OIDC_HTTP_COOKIE_FLAG_PATH
      pos:
        line_end: 1299
        line_start: 1298
        source_file: /src/mod_auth_openidc/src/http.c
      type_or_value: '"Path"'
    - item_type: preproc_def
      name: OIDC_HTTP_COOKIE_FLAG_EXPIRES
      pos:
        line_end: 1300
        line_start: 1299
        source_file: /src/mod_auth_openidc/src/http.c
      type_or_value: '"Expires"'
    - item_type: preproc_def
      name: OIDC_HTTP_COOKIE_FLAG_SECURE
      pos:
        line_end: 1301
        line_start: 1300
        source_file: /src/mod_auth_openidc/src/http.c
      type_or_value: '"Secure"'
    - item_type: preproc_def
      name: OIDC_HTTP_COOKIE_FLAG_HTTP_ONLY
      pos:
        line_end: 1302
        line_start: 1301
        source_file: /src/mod_auth_openidc/src/http.c
      type_or_value: '"HttpOnly"'
    - item_type: preproc_def
      name: OIDC_HTTP_COOKIE_MAX_SIZE
      pos:
        line_end: 1304
        line_start: 1303
        source_file: /src/mod_auth_openidc/src/http.c
      type_or_value: '4093'
    - item_type: preproc_def
      name: OIDC_SET_COOKIE_APPEND_ENV_VAR
      pos:
        line_end: 1306
        line_start: 1305
        source_file: /src/mod_auth_openidc/src/http.c
      type_or_value: '"OIDC_SET_COOKIE_APPEND"'
    - item_type: preproc_def
      name: OIDC_HTTP_COOKIE_CHUNKS_SEPARATOR
      pos:
        line_end: 1435
        line_start: 1434
        source_file: /src/mod_auth_openidc/src/http.c
      type_or_value: '"_"'
    - item_type: preproc_def
      name: OIDC_HTTP_COOKIE_CHUNKS_POSTFIX
      pos:
        line_end: 1436
        line_start: 1435
        source_file: /src/mod_auth_openidc/src/http.c
      type_or_value: '"chunks"'
    - item_type: preproc_def
      name: OIDC_HTTP_COOKIE_CHUNKS_MAX
      pos:
        line_end: 1440
        line_start: 1439
        source_file: /src/mod_auth_openidc/src/http.c
      type_or_value: '99'
    - item_type: preproc_def
      name: OIDC_HTTP_CURL_POOL_MAX
      pos:
        line_end: 1608
        line_start: 1607
        source_file: /src/mod_auth_openidc/src/http.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*r'
        type: request_rec
      - name: '*elems'
        type: apr_array_header_t
      item_type: struct
      name: oidc_http_encode_t
      pos:
        line_end: 565
        line_start: 559
        source_file: /src/mod_auth_openidc/src/http.c
    typedefs: []
    union: []
- function_names:
  - OIDC_JSON_INDENT
  source_file: /src/mod_auth_openidc/src/json.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_JSON_INT_FORMAT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mod_auth_openidc/src/json.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: OIDC_JSON_INT_MAX
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mod_auth_openidc/src/json.h
      type_or_value: LLONG_MAX
    - item_type: preproc_def
      name: OIDC_JSON_COMPACT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/mod_auth_openidc/src/json.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: OIDC_JSON_PRESERVE_ORDER
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/mod_auth_openidc/src/json.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: OIDC_JSON_ENCODE_ANY
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/mod_auth_openidc/src/json.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: OIDC_JSON_DECODE_ANY
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/mod_auth_openidc/src/json.h
      type_or_value: '0x08'
    structs: []
    typedefs:
    - item_type: typedef
      name: oidc_json_t
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/mod_auth_openidc/src/json.h
      type: json_t
    - item_type: typedef
      name: oidc_json_int_t
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/mod_auth_openidc/src/json.h
      type: long long
    union: []
- function_names:
  - _json_int2str
  - _is_overflow
  - oidc_metrics_add_classnames
  - oidc_metrics_is_valid_classname
  - _oidc_metrics_get_env_int
  - _oidc_metrics_shm_size
  - _oidc_metrics_storage_get
  - _oidc_metrics_storage_set
  - oidc_metrics_json_load
  - oidc_metrics_json_parse_s
  - oidc_metrics_reset_integer_tree
  - oidc_metrics_reset_timer
  - oidc_metrics_reset_server
  - oidc_metrics_storage_reset
  - oidc_metrics_timings_new
  - oidc_metrics_timings_update
  - _metrics_value2key
  - oidc_metrics_counter_new
  - oidc_metrics_counter_update
  - oidc_metrics_server_get
  - _oidc_metrics_type_name2key
  - _oidc_metrics_key2type
  - oidc_metrics_counter_set_or_update
  - oidc_metrics_store_counter_entry
  - oidc_metrics_store_counters
  - oidc_metrics_store_timings
  - oidc_metrics_store
  - _oidc_metrics_interval
  - APR_THREAD_FUNC::oidc_metrics_thread_run
  - oidc_metrics_post_config
  - oidc_metrics_child_init
  - oidc_metrics_cleanup
  - _oidc_metrics_server_hash
  - _oidc_metrics_timing_get
  - _oidc_metrics_counter_value_get
  - _oidc_metrics_counter_get
  - oidc_metrics_counter_inc
  - _oidc_metrics_timing_clear
  - _oidc_metrics_timing_buckets_inc
  - oidc_metrics_timing_add
  - _oidc_metrics_counter_type2s
  - _oidc_metrics_timing_type2s
  - oidc_metrics_json_parse_r
  - oidc_metrics_handle_json
  - oidc_metrics_handle_internal
  - oidc_metrics_status_find_counter
  - oidc_metrics_status_select_value
  - oidc_metrics_handle_status
  - oidc_metrics_prometheus_bucket_label
  - oidc_metric_prometheus_normalize_name
  - oidc_metrics_prometheus_counter_named
  - oidc_metrics_prometheus_counter_keyed
  - oidc_metrics_prometheus_counters
  - oidc_metrics_prometheus_timings
  - oidc_metrics_prometheus_convert
  - oidc_metrics_handle_prometheus
  - oidc_metric_reset
  - oidc_metrics_find_handler
  - oidc_metrics_handle_request
  source_file: /src/mod_auth_openidc/src/metrics.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OM_CLASS_AUTH_TYPE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"authtype"       // Request counter, overall and per AuthType:
        openid-connect, oauth20 and auth-openidc.'
    - item_type: preproc_def
      name: OM_CLASS_AUTHN
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"authn"          // Authentication request creation and response
        processing.'
    - item_type: preproc_def
      name: OM_CLASS_AUTHZ
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"authz"          // Authorization errors per OIDCUnAutzAction
        (per Require statement, not overall).'
    - item_type: preproc_def
      name: OM_CLASS_REQUIRE_CLAIM
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"require.claim"  // Match/failure count of Require claim directives
        (per Require statement, not overall).'
    - item_type: preproc_def
      name: OM_CLASS_CLAIM
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"claim"          // Claims per value'
    - item_type: preproc_def
      name: OM_CLASS_PROVIDER
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"provider"       // Requests to the provider [token, userinfo,
        metadata] endpoints.'
    - item_type: preproc_def
      name: OM_CLASS_SESSION
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"session"        // Existing session processing.'
    - item_type: preproc_def
      name: OM_CLASS_CACHE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"cache"          // Cache read/write timings and errors.'
    - item_type: preproc_def
      name: OM_CLASS_LOGOUT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"logout"         // Front- and back-channel logout processing.'
    - item_type: preproc_def
      name: OM_CLASS_REDIRECT_URI
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"redirect_uri"   // Requests to the Redirect URI, per type.'
    - item_type: preproc_def
      name: OM_CLASS_CONTENT
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"content"        // Requests to the content handler, per type
        of request: info, metrics, jwks, etc.'
    - item_type: preproc_def
      name: OIDC_METRICS_CACHE_STORAGE_INTERVAL_DEFAULT
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '5000'
    - item_type: preproc_def
      name: OIDC_METRICS_CACHE_JSON_MAX_DEFAULT
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: (1024 * 256 * 4)
    - item_type: preproc_def
      name: OIDC_METRICS_BUCKET_NUM
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: ((int)(sizeof(_oidc_metric_buckets) / sizeof(oidc_metrics_bucket_t)))
    - item_type: preproc_def
      name: OIDC_METRICS_SUM
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"sum"'
    - item_type: preproc_def
      name: OIDC_METRICS_COUNT
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"count"'
    - item_type: preproc_def
      name: OIDC_METRICS_SPECS
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"specs"'
    - item_type: preproc_def
      name: OIDC_METRICS_JSON_CLASS_NAME
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"class"'
    - item_type: preproc_def
      name: OIDC_METRICS_JSON_METRIC_NAME
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"name"'
    - item_type: preproc_def
      name: OIDC_METRICS_JSON_DESC
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"desc"'
    - item_type: preproc_def
      name: OIDC_METRICS_TIMINGS
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"timings"'
    - item_type: preproc_def
      name: OIDC_METRICS_COUNTERS
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"counters"'
    - item_type: preproc_def
      name: OIDC_METRICS_INT_MAX
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: OIDC_JSON_INT_MAX
    - item_type: preproc_def
      name: OIDC_METRICS_CACHE_JSON_MAX_ENV_VAR
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"OIDC_METRICS_CACHE_JSON_MAX"'
    - item_type: preproc_def
      name: OIDC_METRICS_VALUE_DEFAULT
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"_"'
    - item_type: preproc_def
      name: OIDC_METRICS_CACHE_STORAGE_INTERVAL_ENV_VAR
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"OIDC_METRICS_CACHE_STORAGE_INTERVAL"'
    - item_type: preproc_def
      name: OIDC_METRICS_POLL_INTERVAL
      pos:
        line_end: 694
        line_start: 693
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '250'
    - item_type: preproc_def
      name: OIDC_METRICS_SERVER_PARAM
      pos:
        line_end: 1171
        line_start: 1170
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"server_name"'
    - item_type: preproc_def
      name: OIDC_METRICS_COUNTER_PARAM
      pos:
        line_end: 1172
        line_start: 1171
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"counter"'
    - item_type: preproc_def
      name: OIDC_METRICS_NAME_PARAM
      pos:
        line_end: 1173
        line_start: 1172
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"name"'
    - item_type: preproc_def
      name: OIDC_METRICS_VALUE_PARAM
      pos:
        line_end: 1174
        line_start: 1173
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"value"'
    - item_type: preproc_def
      name: OIDC_METRICS_PROMETHEUS_PREFIX
      pos:
        line_end: 1280
        line_start: 1279
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"oidc"'
    - item_type: preproc_def
      name: OIDC_METRICS_PROMETHEUS_CONTENT_TYPE
      pos:
        line_end: 1293
        line_start: 1292
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"text/plain; version=0.0.4"'
    - item_type: preproc_def
      name: OIDC_METRICS_PROMETHEUS_SERVER
      pos:
        line_end: 1295
        line_start: 1294
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"server_name"'
    - item_type: preproc_def
      name: OIDC_METRICS_PROMETHEUS_BUCKET
      pos:
        line_end: 1296
        line_start: 1295
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"bucket"'
    - item_type: preproc_def
      name: OIDC_METRICS_PROMETHEUS_VALUE
      pos:
        line_end: 1297
        line_start: 1296
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"value"'
    - item_type: preproc_def
      name: OIDC_METRICS_PROMETHEUS_NAME
      pos:
        line_end: 1298
        line_start: 1297
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"name"'
    - item_type: preproc_def
      name: OIDC_CONTENT_HANDLER_MAX
      pos:
        line_end: 1512
        line_start: 1511
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: ((int)(sizeof(_oidc_metrics_handlers) / sizeof(oidc_metrics_content_handler_t)))
    - item_type: preproc_def
      name: OIDC_METRICS_RESET_PARAM
      pos:
        line_end: 1514
        line_start: 1513
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"reset"'
    - item_type: preproc_def
      name: OIDC_METRICS_FORMAT_PARAM
      pos:
        line_end: 1536
        line_start: 1535
        source_file: /src/mod_auth_openidc/src/metrics.c
      type_or_value: '"format"'
    structs:
    - fields:
      - name: '*counters'
        type: apr_hash_t
      - name: '*timings'
        type: apr_hash_t
      item_type: struct
      name: oidc_metrics_t
      pos:
        line_end: 119
        line_start: 116
        source_file: /src/mod_auth_openidc/src/metrics.c
    - fields:
      - name: '*name'
        type: char
      - name: '*label'
        type: char
      - name: threshold
        type: apr_time_t
      item_type: struct
      name: oidc_metrics_bucket_t
      pos:
        line_end: 151
        line_start: 147
        source_file: /src/mod_auth_openidc/src/metrics.c
    - fields:
      - name: count
        type: oidc_json_int_t
      item_type: struct
      name: oidc_metrics_counter_t
      pos:
        line_end: 215
        line_start: 213
        source_file: /src/mod_auth_openidc/src/metrics.c
    - fields:
      - name: buckets[OIDC_METRICS_BUCKET_NUM]
        type: oidc_json_int_t
      - name: sum
        type: apr_time_t
      - name: count
        type: oidc_json_int_t
      item_type: struct
      name: oidc_metrics_timing_t
      pos:
        line_end: 222
        line_start: 218
        source_file: /src/mod_auth_openidc/src/metrics.c
    - fields:
      - name: '*pool'
        type: apr_pool_t
      - name: '**valid_names'
        type: char
      item_type: struct
      name: oidc_metrics_add_classname_ctx_t
      pos:
        line_end: 228
        line_start: 225
        source_file: /src/mod_auth_openidc/src/metrics.c
    - fields:
      - name: '*s_result'
        type: char
      - name: '*pool'
        type: apr_pool_t
      item_type: struct
      name: oidc_metric_prometheus_callback_ctx_t
      pos:
        line_end: 1303
        line_start: 1300
        source_file: /src/mod_auth_openidc/src/metrics.c
    - fields:
      - name: '*format'
        type: char
      - name: callback
        type: oidc_metrics_handler_function_t
      - name: reset
        type: int
      item_type: struct
      name: oidc_metrics_handler_t
      pos:
        line_end: 1500
        line_start: 1496
        source_file: /src/mod_auth_openidc/src/metrics.c
    typedefs:
    - item_type: typedef
      name: (*oidc_metrics_handler_function_t)(request_rec *, const char *)
      pos:
        line_end: 1493
        line_start: 1493
        source_file: /src/mod_auth_openidc/src/metrics.c
      type: int
    union: []
- function_names:
  - OIDC_HTTP_COOKIE_SAMESITE_NONE
  source_file: /src/mod_auth_openidc/src/http.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_HTTP_CONTENT_TYPE_JSON
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"application/json"'
    - item_type: preproc_def
      name: OIDC_HTTP_CONTENT_TYPE_JWT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"application/jwt"'
    - item_type: preproc_def
      name: OIDC_HTTP_CONTENT_TYPE_FORM_ENCODED
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"application/x-www-form-urlencoded"'
    - item_type: preproc_def
      name: OIDC_HTTP_CONTENT_TYPE_IMAGE_PNG
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"image/png"'
    - item_type: preproc_def
      name: OIDC_HTTP_CONTENT_TYPE_TEXT_HTML
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"text/html"'
    - item_type: preproc_def
      name: OIDC_HTTP_CONTENT_TYPE_APP_XHTML_XML
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"application/xhtml+xml"'
    - item_type: preproc_def
      name: OIDC_HTTP_CONTENT_TYPE_ANY
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"*'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_COOKIE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Cookie"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_SET_COOKIE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Set-Cookie"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_USER_AGENT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"User-Agent"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_X_FORWARDED_FOR
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"X-Forwarded-For"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_CONTENT_TYPE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Content-Type"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_CONTENT_LENGTH
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Content-Length"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_X_REQUESTED_WITH
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"X-Requested-With"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_SEC_FETCH_MODE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Sec-Fetch-Mode"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_SEC_FETCH_DEST
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Sec-Fetch-Dest"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_ACCEPT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Accept"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_AUTHORIZATION
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Authorization"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_X_FORWARDED_PROTO
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"X-Forwarded-Proto"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_X_FORWARDED_PORT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"X-Forwarded-Port"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_X_FORWARDED_HOST
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"X-Forwarded-Host"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_FORWARDED
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Forwarded"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_HOST
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Host"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_LOCATION
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Location"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_CACHE_CONTROL
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Cache-Control"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_PRAGMA
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Pragma"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_P3P
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"P3P"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_EXPIRES
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"Expires"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_X_FRAME_OPTIONS
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"X-Frame-Options"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_WWW_AUTHENTICATE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"WWW-Authenticate"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_TRACE_PARENT
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"traceparent"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_DPOP
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"DPoP"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_DPOP_NONCE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"DPoP-Nonce"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_VAL_XML_HTTP_REQUEST
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"XMLHttpRequest"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_VAL_NAVIGATE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"navigate"'
    - item_type: preproc_def
      name: OIDC_HTTP_HDR_VAL_DOCUMENT
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"document"'
    - item_type: preproc_def
      name: OIDC_HTTP_COOKIE_SAMESITE_LAX
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"SameSite=Lax"'
    - item_type: preproc_def
      name: OIDC_HTTP_COOKIE_SAMESITE_STRICT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"SameSite=Strict"'
    - item_type: preproc_def
      name: OIDC_HTTP_PROXY_AUTH_BASIC
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"basic"'
    - item_type: preproc_def
      name: OIDC_HTTP_PROXY_AUTH_DIGEST
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"digest"'
    - item_type: preproc_def
      name: OIDC_HTTP_PROXY_AUTH_NTLM
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"ntlm"'
    - item_type: preproc_def
      name: OIDC_HTTP_PROXY_AUTH_ANY
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"any"'
    - item_type: preproc_def
      name: OIDC_HTTP_PROXY_AUTH_NEGOTIATE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/mod_auth_openidc/src/http.h
      type_or_value: '"negotiate"'
    structs:
    - fields:
      - name: request_timeout
        type: int
      - name: connect_timeout
        type: int
      - name: retries
        type: int
      - name: retry_interval
        type: int
      item_type: struct
      name: oidc_http_timeout_t
      pos:
        line_end: 105
        line_start: 100
        source_file: /src/mod_auth_openidc/src/http.h
    - fields:
      - name: '*host_port'
        type: char
      - name: '*username_password'
        type: char
      - name: auth_type
        type: unsigned long
      item_type: struct
      name: oidc_http_outgoing_proxy_t
      pos:
        line_end: 117
        line_start: 113
        source_file: /src/mod_auth_openidc/src/http.h
    typedefs: []
    union: []
- function_names:
  - oidc_state_cookie_name
  - oidc_state_browser_fingerprint
  - oidc_state_cookies_delete_oldest
  - oidc_state_cookies_list_append
  - oidc_state_cookies_process_one
  - oidc_state_cookies_parse_token
  - oidc_state_cookies_clean_expired
  source_file: /src/mod_auth_openidc/src/state.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: timestamp
        type: apr_time_t
      - name: '*next'
        type: struct oidc_state_cookies_t
      item_type: struct
      name: oidc_state_cookies_t
      pos:
        line_end: 111
        line_start: 107
        source_file: /src/mod_auth_openidc/src/state.c
    typedefs: []
    union: []
- function_names:
  - oidc_session_encode
  - oidc_session_version_supported
  - oidc_session_decode
  - oidc_session_id_new
  - oidc_session_clear
  - oidc_session_reset
  - oidc_session_get
  - oidc_session_json_set
  - oidc_session_json_get
  - oidc_session_set
  - oidc_session_load_cache_by_uuid
  - oidc_session_load_cache
  - oidc_session_cookie_samesite
  - oidc_session_save_cache
  - oidc_session_load_cookie
  - oidc_session_save_cookie
  - oidc_session_get_int
  - oidc_session_get_key2timestamp
  - oidc_session_extract
  - oidc_session_load
  - oidc_session_set_int
  - oidc_session_set_timestamp
  - oidc_session_save
  - oidc_session_free
  - oidc_session_kill
  - oidc_session_get_key2string
  - oidc_session_warn_claim_size_get
  - oidc_session_claim_is_allowed
  - oidc_session_filtered_claim_record
  - oidc_session_jq_filter_apply
  - oidc_session_set_filtered_claims
  - oidc_session_set_userinfo_claims
  - oidc_session_get_userinfo_claims
  - oidc_session_set_userinfo_jwt
  - oidc_session_get_userinfo_jwt
  - oidc_session_set_idtoken_claims
  - oidc_session_get_idtoken_claims
  - oidc_session_set_idtoken
  - oidc_session_get_idtoken
  - oidc_session_set_access_token
  - oidc_session_get_access_token
  - oidc_session_set_access_token_type
  - oidc_session_get_access_token_type
  - oidc_session_set_access_token_expires
  - oidc_session_get_access_token_expires
  - oidc_session_get_access_token_expires2str
  - oidc_session_set_refresh_token
  - oidc_session_get_refresh_token
  - oidc_session_set_session_expires
  - oidc_session_get_session_expires
  - oidc_session_set_cookie_domain
  - oidc_session_get_cookie_domain
  - oidc_session_set_userinfo_refresh_interval
  - oidc_session_get_userinfo_refresh_interval
  - oidc_session_reset_userinfo_last_refresh
  - oidc_session_get_userinfo_last_refresh
  - oidc_session_set_access_token_last_refresh
  - oidc_session_get_access_token_last_refresh
  - oidc_session_set_request_state
  - oidc_session_get_request_state
  - oidc_session_set_original_url
  - oidc_session_get_original_url
  - oidc_session_set_session_state
  - oidc_session_get_session_state
  - oidc_session_set_issuer
  - oidc_session_get_issuer
  - oidc_session_set_session_new
  - oidc_session_get_session_new
  - oidc_session_set_scope
  - oidc_session_get_scope
  - oidc_session_set_path_auth_request_params
  - oidc_session_get_path_auth_request_params
  - oidc_session_set_path_scope
  - oidc_session_get_path_scope
  source_file: /src/mod_auth_openidc/src/session.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_SESSION_REMOTE_USER_KEY
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"r"'
    - item_type: preproc_def
      name: OIDC_SESSION_EXPIRY_KEY
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"e"'
    - item_type: preproc_def
      name: OIDC_SESSION_SESSION_ID
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"i"'
    - item_type: preproc_def
      name: OIDC_SESSION_SUB_KEY
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"sub"'
    - item_type: preproc_def
      name: OIDC_SESSION_SID_KEY
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"sid"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_USERINFO_CLAIMS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"uic"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_IDTOKEN_CLAIMS
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"idc"'
    - item_type: preproc_def
      name: OIDC_SESSION_FORMAT_VERSION_KEY
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"v"'
    - item_type: preproc_def
      name: OIDC_SESSION_FORMAT_VERSION
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_SESSION_ID_LEN
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '20'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_USERINFO_JWT
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"uij"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_IDTOKEN
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"idt"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_ACCESSTOKEN
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"at"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_ACCESSTOKEN_TYPE
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"att"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_ACCESSTOKEN_EXPIRES
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"ate"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_REFRESH_TOKEN
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"rt"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_SESSION_EXPIRES
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"se"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_COOKIE_DOMAIN
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"cd"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_USERINFO_LAST_REFRESH
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"uilr"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_ACCESS_TOKEN_LAST_REFRESH
      pos:
        line_end: 596
        line_start: 595
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"atlr"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_REQUEST_STATE
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"rs"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_ORIGINAL_URL
      pos:
        line_end: 600
        line_start: 599
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"ou"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_SESSION_STATE
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"ss"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_ISSUER
      pos:
        line_end: 604
        line_start: 603
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"iss"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_USERINFO_REFRESH_INTERVAL
      pos:
        line_end: 606
        line_start: 605
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"uir"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_SESSION_IS_NEW
      pos:
        line_end: 608
        line_start: 607
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"sn"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_SCOPE
      pos:
        line_end: 610
        line_start: 609
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"scp"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_PATH_AUTH_REQUEST_PARAMS
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"parp"'
    - item_type: preproc_def
      name: OIDC_SESSION_KEY_PATH_SCOPE
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"psc"'
    - item_type: preproc_def
      name: OIDC_SESSION_WARN_CLAIM_SIZE
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: (1024 * 8)
    - item_type: preproc_def
      name: OIDC_SESSION_WARN_CLAIM_SIZE_VAR
      pos:
        line_end: 626
        line_start: 625
        source_file: /src/mod_auth_openidc/src/session.c
      type_or_value: '"OIDC_SESSION_WARN_CLAIM_SIZE"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_json_flags2backend
  - oidc_json_object
  - oidc_json_array
  - oidc_json_string
  - oidc_json_integer
  - oidc_json_boolean
  - oidc_json_decref
  - oidc_json_copy
  - oidc_json_deep_copy
  - oidc_json_typeof
  - oidc_json_is_object
  - oidc_json_is_array
  - oidc_json_is_string
  - oidc_json_is_integer
  - oidc_json_is_real
  - oidc_json_is_number
  - oidc_json_is_boolean
  - oidc_json_is_true
  - oidc_json_is_null
  - oidc_json_string_value
  - oidc_json_integer_value
  - oidc_json_real_value
  - oidc_json_number_value
  - oidc_json_integer_set
  - oidc_json_object_get
  - oidc_json_object_set
  - oidc_json_object_set_new
  - oidc_json_object_del
  - oidc_json_object_iter
  - oidc_json_object_iter_next
  - oidc_json_object_iter_key
  - oidc_json_object_iter_value
  - oidc_json_array_size
  - oidc_json_array_get
  - oidc_json_array_append_new
  - oidc_json_encode
  - oidc_json_parse
  - oidc_json_decode_object_err
  - oidc_json_decode_object
  - oidc_json_string_print
  - oidc_json_check_error
  - oidc_json_decode_and_check_error
  - oidc_json_array_has_value
  - oidc_json_object_get_string
  - oidc_json_string_array_append
  - oidc_json_object_get_string_array
  - oidc_json_object_get_int
  - oidc_json_object_get_int64
  - oidc_json_object_get_bool
  - oidc_json_merge
  source_file: /src/mod_auth_openidc/src/json.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_JSON_MAX_ERROR_STR
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/mod_auth_openidc/src/json.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - APR_ARRAY_IDX
  - APR_ARRAY_PUSH
  - oidc_jose_error
  - oidc_jose_error_openssl
  - oidc_jose_e2s
  source_file: /src/mod_auth_openidc/src/jose.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_JOSE_ALG_SHA1
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"sha1"'
    - item_type: preproc_def
      name: OIDC_JOSE_ALG_SHA256
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"sha256"'
    - item_type: preproc_def
      name: OIDC_JOSE_EC_SUPPORT
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: OPENSSL_VERSION_NUMBER >= 0x1000100f
    - item_type: preproc_def
      name: OIDC_JOSE_GCM_SUPPORT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: OPENSSL_VERSION_NUMBER >= 0x1000100f
    - item_type: preproc_def
      name: OIDC_JOSE_ERROR_TEXT_LENGTH
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '200'
    - item_type: preproc_def
      name: OIDC_JOSE_ERROR_SOURCE_LENGTH
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '80'
    - item_type: preproc_def
      name: OIDC_JOSE_ERROR_FUNCTION_LENGTH
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '80'
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_KID_STR
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: "\"kid\"\t    // Key ID"
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_KTY_STR
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: "\"kty\"\t    // Key type"
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_USE_STR
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: "\"use\"\t    // Key usage (enc|sig)"
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_X5C_STR
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: "\"x5c\"\t    // X509 certificate chain"
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_X5T_STR
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: "\"x5t\"\t    // X509 SHA-1 thumbprint"
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_X5T256_STR
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"x5t#S256" // X509 SHA-256 thumbprint'
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_SIG_STR
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: "\"sig\"\t    // use signature type"
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_ENC_STR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: "\"enc\"\t    // use encryption type"
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_ALG_STR
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: "\"alg\"\t    // algorithm intended for use with the key"
    - item_type: preproc_def
      name: OIDC_JOSE_JWKS_KEYS_STR
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"keys" // Array of JWKs'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ALG
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"alg"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ENC
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"enc"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_KID
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"kid"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ALG_DIR
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"dir"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ALG_RS256
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"RS256"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ALG_PS256
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"PS256"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ALG_HS256
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"HS256"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ALG_ES256
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"ES256"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ALG_ES384
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"ES384"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ALG_ES512
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"ES512"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ENC_A256GCM
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"A256GCM"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ENC_A128CBC_HS256
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '"A128CBC-HS256"'
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_KTY_RSA
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_KTY_EC
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OIDC_JOSE_JWK_KTY_OCT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '3'
    - item_type: preproc_def
      name: OIDC_JWT_CLAIM_TIME_EMPTY
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/mod_auth_openidc/src/jose.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: source[OIDC_JOSE_ERROR_SOURCE_LENGTH]
        type: char
      - name: line
        type: int
      - name: function[OIDC_JOSE_ERROR_FUNCTION_LENGTH]
        type: char
      - name: text[OIDC_JOSE_ERROR_TEXT_LENGTH]
        type: char
      item_type: struct
      name: oidc_jose_error_t
      pos:
        line_end: 118
        line_start: 113
        source_file: /src/mod_auth_openidc/src/jose.h
    - fields:
      - name: '*json'
        type: oidc_json_t
      - name: '*str'
        type: char
      item_type: struct
      name: oidc_jose_json_t
      pos:
        line_end: 171
        line_start: 166
        source_file: /src/mod_auth_openidc/src/jose.h
    - fields:
      - name: '*use'
        type: char
      - name: '*alg'
        type: char
      - name: kty
        type: int
      - name: '*kid'
        type: char
      - name: '*x5c'
        type: apr_array_header_t
      - name: '*x5t'
        type: char
      - name: '*x5t_S256'
        type: char
      - name: '*cjose_jwk'
        type: void
      item_type: struct
      name: oidc_jwk_t
      pos:
        line_end: 198
        line_start: 178
        source_file: /src/mod_auth_openidc/src/jose.h
    - fields:
      - name: value
        type: oidc_jose_json_t
      - name: '*alg'
        type: char
      - name: '*kid'
        type: char
      - name: '*enc'
        type: char
      - name: '*cty'
        type: char
      - name: '*x5t'
        type: char
      item_type: struct
      name: oidc_jwt_hdr_t
      pos:
        line_end: 260
        line_start: 247
        source_file: /src/mod_auth_openidc/src/jose.h
    - fields:
      - name: value
        type: oidc_jose_json_t
      - name: '*iss'
        type: char
      - name: '*sub'
        type: char
      - name: exp
        type: double
      - name: iat
        type: double
      item_type: struct
      name: oidc_jwt_payload_t
      pos:
        line_end: 274
        line_start: 263
        source_file: /src/mod_auth_openidc/src/jose.h
    - fields:
      - name: header
        type: oidc_jwt_hdr_t
      - name: payload
        type: oidc_jwt_payload_t
      - name: '*cjose_jws'
        type: void
      item_type: struct
      name: oidc_jwt_t
      pos:
        line_end: 286
        line_start: 277
        source_file: /src/mod_auth_openidc/src/jose.h
    typedefs:
    - item_type: typedef
      name: BIO
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/mod_auth_openidc/src/jose.h
      type: bio_st
    union: []
- function_names:
  - oidc_scrub_request_headers
  - oidc_scrub_headers
  - oidc_strip_cookies_match
  - oidc_strip_cookies
  - oidc_provider_validate_metadata_str
  - oidc_provider_static_config
  - oidc_get_provider_for_issuer
  - oidc_original_request_method
  - oidc_set_app_claims
  - oidc_log_session_expires
  - oidc_is_auth_capable_request
  - oidc_handle_unauthenticated_user
  - oidc_check_max_session_duration
  - oidc_check_cookie_domain
  - oidc_get_provider_from_session
  - oidc_copy_tokens_to_request_state
  - oidc_session_pass_tokens
  - oidc_idtoken_pass_as
  - oidc_handle_session_refresh_error
  - oidc_handle_existing_session
  - oidc_get_remote_user
  - oidc_validate_redirect_url_fail
  - oidc_validate_redirect_url_allowed
  - oidc_validate_redirect_url_host
  - oidc_validate_redirect_url_relative
  - oidc_validate_redirect_url_chars
  - oidc_validate_redirect_url
  - oidc_javascript_implicit
  - oidc_redirect_uri_handle_response_redirect
  - oidc_redirect_uri_match_response_post
  - oidc_redirect_uri_handle_discovery_response
  - oidc_redirect_uri_handle_in_content_handler
  - oidc_redirect_uri_handle_request_uri
  - oidc_redirect_uri_handle_remove_at_cache
  - oidc_redirect_uri_handle_revoke_session
  - oidc_redirect_uri_handle_info
  - oidc_redirect_uri_match_bare
  - oidc_redirect_uri_handle_implicit
  - oidc_handle_redirect_uri_request
  - oidc_subrequest_recycle_user
  - oidc_copy_tokens_from_prev_request_state
  - oidc_check_userid_openidc_subreq
  - oidc_check_userid_openidc_redirect_uri
  - oidc_check_userid_openidc_existing_session
  - oidc_check_userid_openidc
  - oidc_check_mixed_userid_oauth
  - oidc_fixups
  - oidc_check_user_id
  - oidc_enabled
  - oidc_ssl_locking_callback
  - oidc_ssl_id_callback
  - oidc_ssl_id_callback
  - oidc_process_cleanup
  - oidc_post_config
  - oidc_parse_config
  - oidc_child_init
  - oidc_filter_in_insert_filter
  - oidc_filter_in_filter_append_post_params
  - oidc_filter_in_filter
  - oidc_register_hooks
  source_file: /src/mod_auth_openidc/src/mod_auth_openidc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_MAX_URL_LENGTH
      pos:
        line_end: 769
        line_start: 768
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.c
      type_or_value: (8192 * 2)
    - item_type: preproc_def
      name: _OIDC_USE_MEMCACHE
      pos:
        line_end: 1467
        line_start: 1466
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.c
      type_or_value: '"yes"'
    - item_type: preproc_def
      name: _OIDC_USE_MEMCACHE
      pos:
        line_end: 1469
        line_start: 1468
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.c
      type_or_value: '"no"'
    - item_type: preproc_def
      name: _OIDC_USE_REDIS
      pos:
        line_end: 1473
        line_start: 1472
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.c
      type_or_value: '"yes"'
    - item_type: preproc_def
      name: _OIDC_USE_REDIS
      pos:
        line_end: 1475
        line_start: 1474
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.c
      type_or_value: '"no"'
    - item_type: preproc_def
      name: _OIDC_USE_JQ
      pos:
        line_end: 1479
        line_start: 1478
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.c
      type_or_value: '"yes"'
    - item_type: preproc_def
      name: _OIDC_USE_JQ
      pos:
        line_end: 1481
        line_start: 1480
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.c
      type_or_value: '"no"'
    structs:
    - fields:
      - name: '*needle'
        type: char
      - name: case_insensitive
        type: apr_byte_t
      item_type: struct
      name: "_oidc_redirect_url_illegal_substrings[] = {\n    {\"/%09\", FALSE},  {\"/%2f\",
        TRUE},\t {\"/\\t\", FALSE},\t {\"/%68\", FALSE},\n    {\"/http:\", TRUE},
        {\"/https:\", TRUE}, {\"/javascript:\", TRUE}, {\"%01javascript:\", TRUE},\n
        \   {\"/\u3031\", FALSE},   {\"/\u3035\", FALSE},\t {\"/\u309D\", FALSE},\t
        {\"/\u30FC\", FALSE},\n    {\"/\uFF70\", FALSE},    {\"/<\", FALSE},\t {\"/%5c\",
        FALSE},\t {\"/\\\\\", FALSE},\n    {NULL, FALSE},\n}"
      pos:
        line_end: 847
        line_start: 844
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.c
    - fields:
      - name: (*match)(request_rec *r, oidc_cfg_t *c)
        type: apr_byte_t
      - name: '*parameter'
        type: char
      - name: requires_auth
        type: apr_byte_t
      - name: (*handle)(request_rec *r, oidc_cfg_t *c, oidc_session_t *session)
        type: int
      - name: metric
        type: oidc_metrics_counter_type_t
      - name: timing
        type: apr_byte_t
      item_type: struct
      name: oidc_redirect_uri_dispatch_t
      pos:
        line_end: 1058
        line_start: 1045
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.c
    - fields:
      - name: '*pbbTmp'
        type: apr_bucket_brigade
      - name: nbytes
        type: apr_size_t
      item_type: struct
      name: oidc_filter_in_context
      pos:
        line_end: 1603
        line_start: 1600
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.c
    typedefs: []
    union: []
- function_names:
  - oidc_oauth_metadata_provider_retrieve
  - oidc_oauth_provider_config
  - oidc_oauth_validate_access_token
  - oidc_oauth_token_from_basic
  - oidc_oauth_token_from_auth_header
  - oidc_oauth_token_from_post
  - oidc_oauth_token_from_query
  - oidc_oauth_token_from_cookie
  - oidc_oauth_get_bearer_token
  - oidc_oauth_parse_and_cache_token_expiry
  - oidc_oauth_cache_access_token
  - oidc_oauth_get_cached_access_token
  - oidc_oauth_introspection_active_is_valid
  - oidc_oauth_introspection_validate_and_cache
  - oidc_oauth_introspect
  - oidc_oauth_shape_introspection_token
  - oidc_oauth_resolve_access_token
  - oidc_oauth_validate_jwt_aud
  - oidc_oauth_validate_jwt_iss
  - oidc_oauth_validate_jwt_claims
  - oidc_oauth_validate_jwt_access_token
  - oidc_oauth_set_request_user
  - oidc_oauth_check_userid_subrequest
  - oidc_oauth_check_userid_redirect_uri
  - oidc_oauth_validate_token
  - oidc_oauth_pass_info_to_app
  - oidc_oauth_check_userid
  source_file: /src/mod_auth_openidc/src/oauth.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_OAUTH_CACHE_DEFAULT_EXPIRY_SECONDS
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/mod_auth_openidc/src/oauth.c
      type_or_value: '60'
    - item_type: preproc_def
      name: OIDC_OAUTH_CACHE_KEY_RESPONSE
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/mod_auth_openidc/src/oauth.c
      type_or_value: '"r"'
    - item_type: preproc_def
      name: OIDC_OAUTH_CACHE_KEY_TIMESTAMP
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/mod_auth_openidc/src/oauth.c
      type_or_value: '"t"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - OIDC_METRICS_TIMING_START
  - OIDC_METRICS_TIMING_ADD
  - OIDC_METRICS_TIMING_REQUEST_START
  - OIDC_METRICS_TIMING_REQUEST_ADD
  - OIDC_METRICS_COUNTERS_LIST
  - _oidc_metrics_type_name2s
  - OIDC_METRICS_COUNTER_INC_NAME_VALUE
  - OIDC_METRICS_COUNTER_INC_VALUE
  - OIDC_METRICS_COUNTER_INC
  source_file: /src/mod_auth_openidc/src/metrics.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_METRICS_TIMING_VAR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/mod_auth_openidc/src/metrics.h
      type_or_value: apr_time_t _oidc_metrics_tstart = 0;
    - item_type: preproc_def
      name: OIDC_METRICS_REQUEST_STATE_TIMER_KEY
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/mod_auth_openidc/src/metrics.h
      type_or_value: '"oidc-metrics-request-timer"'
    structs:
    - fields:
      - name: '*class_name'
        type: char
      - name: '*metric_name'
        type: char
      - name: '*desc'
        type: char
      item_type: struct
      name: oidc_metrics_timing_info_t
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/mod_auth_openidc/src/metrics.h
    - fields:
      - name: '*class_name'
        type: char
      - name: '*metric_name'
        type: char
      - name: '*desc'
        type: char
      item_type: struct
      name: oidc_metrics_counter_info_t
      pos:
        line_end: 205
        line_start: 201
        source_file: /src/mod_auth_openidc/src/metrics.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/metadata.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_metadata_get
  - oidc_metadata_list
  source_file: /src/mod_auth_openidc/src/metadata.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/oauth.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OIDC_STATIC_ASSERT
  - _oidc_memset
  - _oidc_memcpy
  - _oidc_strcpy
  - _oidc_strncpy
  - _oidc_memset
  - _oidc_memcpy
  - _oidc_strcpy
  - _oidc_strncpy
  - _oidc_strlen
  - _oidc_strcmp
  - _oidc_strnatcasecmp
  - _oidc_strncmp
  - _oidc_strstr
  - _oidc_str_to_time
  - _oidc_str_to_int_checked
  - _oidc_str_to_int
  - apr_time_from_msec
  - oidc_log
  - oidc_slog
  - oidc_debug
  - oidc_warn
  - oidc_info
  - oidc_error
  - oidc_sdebug
  - oidc_swarn
  - oidc_serror
  - STRINGIFY
  - TOSTRING
  source_file: /src/mod_auth_openidc/src/const.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __STDC_WANT_LIB_EXT1__
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '1'
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: _snprintf
    - item_type: preproc_def
      name: OIDC_DEBUG
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: APLOG_DEBUG
    - item_type: preproc_def
      name: APLOG_TRACE1
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: APLOG_DEBUG
    - item_type: preproc_def
      name: apr_uintptr_t
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: apr_uint64_t
    - item_type: preproc_def
      name: APR_UINT32_MAX
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: UINT32_MAX
    - item_type: preproc_def
      name: APR_INT64_MAX
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: INT64_MAX
    - item_type: preproc_def
      name: NAMEVERSION
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '"mod_auth_openidc-0.0.0"'
    - item_type: preproc_def
      name: NAMEVERSION
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: TOSTRING(NAMEVER)
    - item_type: preproc_def
      name: OIDC_CHAR_EQUAL
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '''='''
    - item_type: preproc_def
      name: OIDC_CHAR_COLON
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: ''':'''
    - item_type: preproc_def
      name: OIDC_CHAR_TILDE
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '''~'''
    - item_type: preproc_def
      name: OIDC_CHAR_SPACE
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: ''' '''
    - item_type: preproc_def
      name: OIDC_CHAR_COMMA
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: ''','''
    - item_type: preproc_def
      name: OIDC_CHAR_QUERY
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '''?'''
    - item_type: preproc_def
      name: OIDC_CHAR_DOT
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '''.'''
    - item_type: preproc_def
      name: OIDC_CHAR_AT
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '''@'''
    - item_type: preproc_def
      name: OIDC_CHAR_FORWARD_SLASH
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '''/'''
    - item_type: preproc_def
      name: OIDC_CHAR_PIPE
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '''|'''
    - item_type: preproc_def
      name: OIDC_CHAR_AMP
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '''&'''
    - item_type: preproc_def
      name: OIDC_CHAR_SEMI_COLON
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: ''';'''
    - item_type: preproc_def
      name: OIDC_CHAR_DQUOTE
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '''"'''
    - item_type: preproc_def
      name: OIDC_STR_SPACE
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '" "'
    - item_type: preproc_def
      name: OIDC_STR_EQUAL
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '"="'
    - item_type: preproc_def
      name: OIDC_STR_AMP
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '"&"'
    - item_type: preproc_def
      name: OIDC_STR_QUERY
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '"?"'
    - item_type: preproc_def
      name: OIDC_STR_COLON
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '":"'
    - item_type: preproc_def
      name: OIDC_STR_SEMI_COLON
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '";"'
    - item_type: preproc_def
      name: OIDC_STR_FORWARD_SLASH
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '"/"'
    - item_type: preproc_def
      name: OIDC_STR_AT
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '"@"'
    - item_type: preproc_def
      name: OIDC_STR_COMMA
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '","'
    - item_type: preproc_def
      name: OIDC_STR_HASH
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/mod_auth_openidc/src/const.h
      type_or_value: '"#"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _oidc_jose_error_set
  - oidc_jose_hash_and_base64url_encode
  - oidc_jose_array_has_string
  - oidc_jose_jws_supported_algorithms
  - oidc_jose_jws_algorithm_is_supported
  - oidc_jose_jwe_supported_algorithms
  - oidc_jose_jwe_algorithm_is_supported
  - oidc_jose_jwe_supported_encryptions
  - oidc_jose_jwe_encryption_is_supported
  - oidc_jose_get_string
  - oidc_jose_get_timestamp
  - oidc_jose_brotli_compress
  - oidc_jose_brotli_uncompress
  - oidc_jose_zlib_compress
  - oidc_jose_zlib_uncompress
  - oidc_jose_compress
  - oidc_jose_is_zlib
  - oidc_jose_uncompress
  - EVP_MD_CTX_new
  - EVP_MD_CTX_free
  - oidc_jose_version
  - oidc_jose_version_deprecated
  - oidc_jose_hash_bytes
  - _oidc_jose_alg_to_sha2
  - oidc_jose_alg_to_openssl_digest
  - oidc_jose_hash_string
  - oidc_jose_hash_length
  source_file: /src/mod_auth_openidc/src/jose.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_CJOSE_UNCOMPRESS_CHUNK
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/mod_auth_openidc/src/jose.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: OIDC_CJOSE_UNCOMPRESS_MAX
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/mod_auth_openidc/src/jose.c
      type_or_value: (10 * 1024 * 1024)
    - item_type: preproc_def
      name: OIDC_JOSE_CJOSE_VERSION_DEPRECATED
      pos:
        line_end: 512
        line_start: 511
        source_file: /src/mod_auth_openidc/src/jose.c
      type_or_value: '"0.4."'
    structs:
    - fields:
      - name: '*algs[4]'
        type: char
      - name: '*openssl_digest'
        type: char
      - name: hash_len
        type: int
      item_type: struct
      name: "families[] = {\n\t    {{CJOSE_HDR_ALG_RS256, CJOSE_HDR_ALG_PS256, CJOSE_HDR_ALG_HS256,
        CJOSE_HDR_ALG_ES256}, LN_sha256, 32},\n\t    {{CJOSE_HDR_ALG_RS384, CJOSE_HDR_ALG_PS384,
        CJOSE_HDR_ALG_HS384, CJOSE_HDR_ALG_ES384}, LN_sha384, 48},\n\t    {{CJOSE_HDR_ALG_RS512,
        CJOSE_HDR_ALG_PS512, CJOSE_HDR_ALG_HS512, CJOSE_HDR_ALG_ES512}, LN_sha512,
        64},\n\t}"
      pos:
        line_end: 579
        line_start: 575
        source_file: /src/mod_auth_openidc/src/jose.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_AUTH_TYPE_OPENID_CONNECT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"openid-connect"'
    - item_type: preproc_def
      name: OIDC_AUTH_TYPE_OPENID_OAUTH20
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"oauth20"'
    - item_type: preproc_def
      name: OIDC_AUTH_TYPE_OPENID_BOTH
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"auth-openidc"'
    - item_type: preproc_def
      name: OIDC_DISC_RM_PARAM
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"method"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_HEADER_PREFIX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"OIDC_"'
    - item_type: preproc_def
      name: OIDC_USERDATA_SESSION
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"mod_auth_openidc_session"'
    - item_type: preproc_def
      name: OIDC_CACHE_PROVIDER_METADATA_EXPIRY_DEFAULT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '86400'
    - item_type: preproc_def
      name: OIDC_GET_STYLE_LOGOUT_PARAM_VALUE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"get"'
    - item_type: preproc_def
      name: OIDC_IMG_STYLE_LOGOUT_PARAM_VALUE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"img"'
    - item_type: preproc_def
      name: OIDC_BACKCHANNEL_STYLE_LOGOUT_PARAM_VALUE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"backchannel"'
    - item_type: preproc_def
      name: OIDC_METHOD_GET
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"get"'
    - item_type: preproc_def
      name: OIDC_METHOD_FORM_POST
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"form_post"'
    - item_type: preproc_def
      name: OIDC_REDIRECT_URI_REQUEST_INFO
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"info"'
    - item_type: preproc_def
      name: OIDC_REDIRECT_URI_REQUEST_DPOP
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"dpop"'
    - item_type: preproc_def
      name: OIDC_REDIRECT_URI_REQUEST_LOGOUT
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"logout"'
    - item_type: preproc_def
      name: OIDC_REDIRECT_URI_REQUEST_JWKS
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"jwks"'
    - item_type: preproc_def
      name: OIDC_REDIRECT_URI_REQUEST_SESSION
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"session"'
    - item_type: preproc_def
      name: OIDC_REDIRECT_URI_REQUEST_REFRESH
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"refresh"'
    - item_type: preproc_def
      name: OIDC_REDIRECT_URI_REQUEST_REMOVE_AT_CACHE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"remove_at_cache"'
    - item_type: preproc_def
      name: OIDC_REDIRECT_URI_REQUEST_REVOKE_SESSION
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"revoke_session"'
    - item_type: preproc_def
      name: OIDC_REDIRECT_URI_REQUEST_REQUEST_URI
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"request_uri"'
    - item_type: preproc_def
      name: OIDC_REDIRECT_URI_REQUEST_SID
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"sid"'
    - item_type: preproc_def
      name: OIDC_REDIRECT_URI_REQUEST_ISS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"iss"'
    - item_type: preproc_def
      name: OIDC_INFO_PARAM_EXTEND_SESSION
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"extend_session"'
    - item_type: preproc_def
      name: OIDC_CLAIM_ISS
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"iss"'
    - item_type: preproc_def
      name: OIDC_CLAIM_AUD
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"aud"'
    - item_type: preproc_def
      name: OIDC_CLAIM_AZP
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"azp"'
    - item_type: preproc_def
      name: OIDC_CLAIM_SUB
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"sub"'
    - item_type: preproc_def
      name: OIDC_CLAIM_JTI
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"jti"'
    - item_type: preproc_def
      name: OIDC_CLAIM_EXP
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"exp"'
    - item_type: preproc_def
      name: OIDC_CLAIM_IAT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"iat"'
    - item_type: preproc_def
      name: OIDC_CLAIM_NBF
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"nbf"'
    - item_type: preproc_def
      name: OIDC_CLAIM_NONCE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"nonce"'
    - item_type: preproc_def
      name: OIDC_CLAIM_AT_HASH
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"at_hash"'
    - item_type: preproc_def
      name: OIDC_CLAIM_C_HASH
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"c_hash"'
    - item_type: preproc_def
      name: OIDC_CLAIM_RFP
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"rfp"'
    - item_type: preproc_def
      name: OIDC_CLAIM_TARGET_LINK_URI
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"target_link_uri"'
    - item_type: preproc_def
      name: OIDC_CLAIM_SID
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"sid"'
    - item_type: preproc_def
      name: OIDC_CLAIM_EVENTS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"events"'
    - item_type: preproc_def
      name: OIDC_CLAIM_TYP
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"typ"'
    - item_type: preproc_def
      name: OIDC_CLAIM_JWK
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"jwk"'
    - item_type: preproc_def
      name: OIDC_CLAIM_HTM
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"htm"'
    - item_type: preproc_def
      name: OIDC_CLAIM_HTU
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"htu"'
    - item_type: preproc_def
      name: OIDC_CLAIM_ATH
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"ath"'
    - item_type: preproc_def
      name: OIDC_CLAIM_SCOPE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"scope"'
    - item_type: preproc_def
      name: OIDC_APP_INFO_REFRESH_TOKEN
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"refresh_token"'
    - item_type: preproc_def
      name: OIDC_APP_INFO_SCOPE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"scope"'
    - item_type: preproc_def
      name: OIDC_APP_INFO_ACCESS_TOKEN
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"access_token"'
    - item_type: preproc_def
      name: OIDC_APP_INFO_ACCESS_TOKEN_TYPE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"access_token_type"'
    - item_type: preproc_def
      name: OIDC_APP_INFO_ACCESS_TOKEN_EXP
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"access_token_expires"'
    - item_type: preproc_def
      name: OIDC_APP_INFO_ID_TOKEN
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"id_token"'
    - item_type: preproc_def
      name: OIDC_APP_INFO_ID_TOKEN_PAYLOAD
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"id_token_payload"'
    - item_type: preproc_def
      name: OIDC_APP_INFO_USERINFO_JSON
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"userinfo_json"'
    - item_type: preproc_def
      name: OIDC_APP_INFO_USERINFO_JWT
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"userinfo_jwt"'
    - item_type: preproc_def
      name: OIDC_APP_INFO_SIGNED_JWT
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/mod_auth_openidc/src/mod_auth_openidc.h
      type_or_value: '"signed_jwt"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/state.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_metadata_provider_is_valid
  - oidc_metadata_provider_retrieve
  - oidc_metadata_provider_get
  - oidc_metadata_provider_parse_url_mtls
  - OIDC_METADATA_PROVIDER_PARSE_URL_MTLS
  - OIDC_METADATA_PROVIDER_PARSE_URL
  - oidc_metadata_provider_cert_bound_tokens_enabled
  - oidc_metadata_provider_dpop_supported
  - oidc_metadata_provider_parse
  source_file: /src/mod_auth_openidc/src/metadata/provider.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OIDC_METADATA_PROVIDER_SET
  - OIDC_METADATA_PROVIDER_SET_INT
  - OIDC_METADATA_CONF_STR
  - OIDC_METADATA_CONF_INT
  - OIDC_METADATA_CONF_BOOL
  source_file: /src/mod_auth_openidc/src/metadata/internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_METADATA_SUFFIX_PROVIDER
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"provider"'
    - item_type: preproc_def
      name: OIDC_METADATA_SUFFIX_CLIENT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"client"'
    - item_type: preproc_def
      name: OIDC_METADATA_SUFFIX_CONF
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"conf"'
    - item_type: preproc_def
      name: OIDC_METADATA_ISSUER
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"issuer"'
    - item_type: preproc_def
      name: OIDC_METADATA_RESPONSE_TYPES_SUPPORTED
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"response_types_supported"'
    - item_type: preproc_def
      name: OIDC_METADATA_RESPONSE_MODES_SUPPORTED
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"response_modes_supported"'
    - item_type: preproc_def
      name: OIDC_METADATA_AUTHORIZATION_ENDPOINT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"authorization_endpoint"'
    - item_type: preproc_def
      name: OIDC_METADATA_TOKEN_ENDPOINT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"token_endpoint"'
    - item_type: preproc_def
      name: OIDC_METADATA_INTROSPECTION_ENDPOINT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"introspection_endpoint"'
    - item_type: preproc_def
      name: OIDC_METADATA_USERINFO_ENDPOINT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"userinfo_endpoint"'
    - item_type: preproc_def
      name: OIDC_METADATA_REVOCATION_ENDPOINT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"revocation_endpoint"'
    - item_type: preproc_def
      name: OIDC_METADATA_PAR_ENDPOINT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"pushed_authorization_request_endpoint"'
    - item_type: preproc_def
      name: OIDC_METADATA_JWKS_URI
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"jwks_uri"'
    - item_type: preproc_def
      name: OIDC_METADATA_SIGNED_JWKS_URI
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"signed_jwks_uri"'
    - item_type: preproc_def
      name: OIDC_METADATA_TOKEN_ENDPOINT_AUTH_METHODS_SUPPORTED
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"token_endpoint_auth_methods_supported"'
    - item_type: preproc_def
      name: OIDC_METADATA_INTROSPECTON_ENDPOINT_AUTH_METHODS_SUPPORTED
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"introspection_endpoint_auth_methods_supported"'
    - item_type: preproc_def
      name: OIDC_METADATA_REGISTRATION_ENDPOINT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"registration_endpoint"'
    - item_type: preproc_def
      name: OIDC_METADATA_CHECK_SESSION_IFRAME
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"check_session_iframe"'
    - item_type: preproc_def
      name: OIDC_METADATA_BACKCHANNEL_LOGOUT_SUPPORTED
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"backchannel_logout_supported"'
    - item_type: preproc_def
      name: OIDC_METADATA_END_SESSION_ENDPOINT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"end_session_endpoint"'
    - item_type: preproc_def
      name: OIDC_METADATA_MTLS_ENDPOINT_ALIASES
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"mtls_endpoint_aliases"'
    - item_type: preproc_def
      name: OIDC_METADATA_CLIENT_ID
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"client_id"'
    - item_type: preproc_def
      name: OIDC_METADATA_CLIENT_SECRET
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"client_secret"'
    - item_type: preproc_def
      name: OIDC_METADATA_CLIENT_SECRET_EXPIRES_AT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"client_secret_expires_at"'
    - item_type: preproc_def
      name: OIDC_METADATA_CLIENT_NAME
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"client_name"'
    - item_type: preproc_def
      name: OIDC_METADATA_REDIRECT_URIS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"redirect_uris"'
    - item_type: preproc_def
      name: OIDC_METADATA_RESPONSE_TYPES
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"response_types"'
    - item_type: preproc_def
      name: OIDC_METADATA_GRANT_TYPES
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"grant_types"'
    - item_type: preproc_def
      name: OIDC_METADATA_TOKEN_ENDPOINT_AUTH_METHOD
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"token_endpoint_auth_method"'
    - item_type: preproc_def
      name: OIDC_METADATA_TLS_CLIENT_CERTIFICATE_BOUND_ACCESS_TOKENS
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"tls_client_certificate_bound_access_tokens"'
    - item_type: preproc_def
      name: OIDC_METADATA_DPOP_SIGNING_ALG_VALUES_SUPPORTED
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"dpop_signing_alg_values_supported"'
    - item_type: preproc_def
      name: OIDC_METADATA_CONTACTS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"contacts"'
    - item_type: preproc_def
      name: OIDC_METADATA_INITIATE_LOGIN_URI
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"initiate_login_uri"'
    - item_type: preproc_def
      name: OIDC_METADATA_FRONTCHANNEL_LOGOUT_URI
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"frontchannel_logout_uri"'
    - item_type: preproc_def
      name: OIDC_METADATA_BACKCHANNEL_LOGOUT_URI
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"backchannel_logout_uri"'
    - item_type: preproc_def
      name: OIDC_METADATA_POST_LOGOUT_REDIRECT_URIS
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"post_logout_redirect_uris"'
    - item_type: preproc_def
      name: OIDC_METADATA_KEYS
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: OIDC_JOSE_JWKS_KEYS_STR
    - item_type: preproc_def
      name: OIDC_METADATA_CLIENT_JWKS_URI
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"client_jwks_uri"'
    - item_type: preproc_def
      name: OIDC_METADATA_ID_TOKEN_SIGNED_RESPONSE_ALG
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"id_token_signed_response_alg"'
    - item_type: preproc_def
      name: OIDC_METADATA_ID_TOKEN_ENCRYPTED_RESPONSE_ALG
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"id_token_encrypted_response_alg"'
    - item_type: preproc_def
      name: OIDC_METADATA_ID_TOKEN_ENCRYPTED_RESPONSE_ENC
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"id_token_encrypted_response_enc"'
    - item_type: preproc_def
      name: OIDC_METADATA_ID_TOKEN_AUD_VALUES
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"id_token_aud_values"'
    - item_type: preproc_def
      name: OIDC_METADATA_PROFILE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"profile"'
    - item_type: preproc_def
      name: OIDC_METADATA_USERINFO_SIGNED_RESPONSE_ALG
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"userinfo_signed_response_alg"'
    - item_type: preproc_def
      name: OIDC_METADATA_USERINFO_ENCRYPTED_RESPONSE_ALG
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"userinfo_encrypted_response_alg"'
    - item_type: preproc_def
      name: OIDC_METADATA_USERINFO_ENCRYPTED_RESPONSE_ENC
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"userinfo_encrypted_response_enc"'
    - item_type: preproc_def
      name: OIDC_METADATA_REQUEST_OBJECT_SIGNING_ALG
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"request_object_signing_alg"'
    - item_type: preproc_def
      name: OIDC_METADATA_SSL_VALIDATE_SERVER
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"ssl_validate_server"'
    - item_type: preproc_def
      name: OIDC_METADATA_VALIDATE_ISSUER
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"validate_issuer"'
    - item_type: preproc_def
      name: OIDC_METADATA_SCOPE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"scope"'
    - item_type: preproc_def
      name: OIDC_METADATA_JWKS_REFRESH_INTERVAL
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"jwks_refresh_interval"'
    - item_type: preproc_def
      name: OIDC_METADATA_IDTOKEN_IAT_SLACK
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"idtoken_iat_slack"'
    - item_type: preproc_def
      name: OIDC_METADATA_SESSION_MAX_DURATION
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"session_max_duration"'
    - item_type: preproc_def
      name: OIDC_METADATA_AUTH_REQUEST_PARAMS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"auth_request_params"'
    - item_type: preproc_def
      name: OIDC_METADATA_LOGOUT_REQUEST_PARAMS
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"logout_request_params"'
    - item_type: preproc_def
      name: OIDC_METADATA_TOKEN_ENDPOINT_PARAMS
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"token_endpoint_params"'
    - item_type: preproc_def
      name: OIDC_METADATA_RESPONSE_MODE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"response_mode"'
    - item_type: preproc_def
      name: OIDC_METADATA_PKCE_METHOD
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"pkce_method"'
    - item_type: preproc_def
      name: OIDC_METADATA_DPOP_MODE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"dpop_mode"'
    - item_type: preproc_def
      name: OIDC_METADATA_CERT_BOUND_TOKENS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"cert_bound_tokens"'
    - item_type: preproc_def
      name: OIDC_METADATA_CLIENT_CONTACT
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"client_contact"'
    - item_type: preproc_def
      name: OIDC_METADATA_TOKEN_ENDPOINT_AUTH
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"token_endpoint_auth"'
    - item_type: preproc_def
      name: OIDC_METADATA_REGISTRATION_TOKEN
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"registration_token"'
    - item_type: preproc_def
      name: OIDC_METADATA_REGISTRATION_ENDPOINT_JSON
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"registration_endpoint_json"'
    - item_type: preproc_def
      name: OIDC_METADATA_RESPONSE_TYPE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"response_type"'
    - item_type: preproc_def
      name: OIDC_METADATA_USERINFO_REFRESH_INTERVAL
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"userinfo_refresh_interval"'
    - item_type: preproc_def
      name: OIDC_METADATA_TOKEN_ENDPOINT_TLS_CLIENT_CERT
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"token_endpoint_tls_client_cert"'
    - item_type: preproc_def
      name: OIDC_METADATA_TOKEN_ENDPOINT_TLS_CLIENT_KEY
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"token_endpoint_tls_client_key"'
    - item_type: preproc_def
      name: OIDC_METADATA_TOKEN_ENDPOINT_TLS_CLIENT_KEY_PWD
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"token_endpoint_tls_client_key_pwd"'
    - item_type: preproc_def
      name: OIDC_METADATA_REQUEST_OBJECT
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"request_object"'
    - item_type: preproc_def
      name: OIDC_METADATA_USERINFO_TOKEN_METHOD
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"userinfo_token_method"'
    - item_type: preproc_def
      name: OIDC_METADATA_AUTH_REQUEST_METHOD
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"auth_request_method"'
    - item_type: preproc_def
      name: OIDC_METADATA_RESPONSE_REQUIRE_ISS
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/mod_auth_openidc/src/metadata/internal.h
      type_or_value: '"response_require_iss"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_oauth_metadata_provider_parse
  source_file: /src/mod_auth_openidc/src/metadata/oauth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_metadata_issuer_to_filename
  - oidc_metadata_filename_to_issuer
  - oidc_metadata_file_path
  - oidc_metadata_provider_file_path
  - oidc_metadata_client_file_path
  - oidc_metadata_conf_path
  - oidc_metadata_file_read_json
  - oidc_metadata_is_valid_uri
  - oidc_metadata_array_string_apply
  - oidc_metadata_valid_string_in_array
  - oidc_metadata_endpoint_auth_select
  - oidc_metadata_cert_bound_tokens_enabled
  - oidc_metadata_mtls_endpoint_aliases_get
  - oidc_metadata_parse_boolean
  - oidc_metadata_parse_url
  - oidc_metadata_get_jwks
  source_file: /src/mod_auth_openidc/src/metadata/util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_metadata_jwks_cache_key
  - oidc_metadata_jwks_forced_refresh_interval
  - oidc_metadata_jwks_forced_refresh_key
  - oidc_metadata_jwks_forced_refresh_throttled
  - oidc_metadata_jwks_forced_refresh_stamp
  - oidc_metadata_jwks_is_valid
  - oidc_metadata_jwks_retrieve_and_cache
  - oidc_metadata_jwks_get
  source_file: /src/mod_auth_openidc/src/metadata/jwks.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_METADATA_JWKS_FORCED_REFRESH_INTERVAL_DEFAULT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/mod_auth_openidc/src/metadata/jwks.c
      type_or_value: '60'
    - item_type: preproc_def
      name: OIDC_METADATA_JWKS_FORCED_REFRESH_INTERVAL_ENVVAR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/src/metadata/jwks.c
      type_or_value: '"OIDC_JWKS_FORCED_REFRESH_INTERVAL"'
    - item_type: preproc_def
      name: OIDC_METADATA_JWKS_FORCED_REFRESH_INTERVAL_MAX
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/mod_auth_openidc/src/metadata/jwks.c
      type_or_value: '3600'
    - item_type: preproc_def
      name: OIDC_METADATA_JWKS_FORCED_REFRESH_POSTFIX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/metadata/jwks.c
      type_or_value: '"#forced"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_metadata_client_is_valid
  - oidc_metadata_client_register
  - oidc_metadata_client_get
  - oidc_metadata_client_parse_token_endpoint_auth
  - oidc_metadata_client_parse_response_type
  - oidc_metadata_client_parse
  source_file: /src/mod_auth_openidc/src/metadata/client.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_metadata_conf_jose_is_supported
  - oidc_metadata_conf_is_valid
  - oidc_metadata_conf_get
  - oidc_metadata_conf_parse_profile
  - oidc_metadata_conf_jwk_list_cleanup
  - oidc_metadata_conf_parse_keys
  - oidc_metadata_conf_parse_id_token
  - oidc_metadata_conf_parse_userinfo
  - oidc_metadata_conf_parse_session
  - oidc_metadata_conf_parse_request_params
  - oidc_metadata_conf_parse_response
  - oidc_metadata_conf_parse_client
  - oidc_metadata_conf_parse_endpoint_auth
  - oidc_metadata_conf_parse_tls_client
  - oidc_metadata_conf_parse_dpop_mode
  - oidc_metadata_conf_parse_cert_bound_tokens
  - oidc_metadata_conf_parse_auth_request_method
  - oidc_metadata_conf_parse_pre_provider
  - oidc_metadata_conf_parse
  source_file: /src/mod_auth_openidc/src/metadata/conf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_session_management_iframe_op
  - oidc_session_management_iframe_rp
  - oidc_session_management
  source_file: /src/mod_auth_openidc/src/handle/session_management.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_is_discovery_response
  - oidc_discovery_csrf_cookie_samesite
  - oidc_discovery_request_external
  - oidc_discovery_page_providers
  - oidc_discovery_page_form
  - oidc_discovery_request
  - oidc_discovery_target_link_uri_match
  - oidc_discovery_response_csrf_check
  - oidc_discovery_response_target_link_uri_validate
  - oidc_discovery_response_static
  - oidc_discovery_issuer_allowed
  - oidc_discovery_response_resolve_issuer
  - oidc_discovery_response_authenticate
  - oidc_discovery_response_input_trim
  - oidc_discovery_response
  source_file: /src/mod_auth_openidc/src/handle/discovery.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_DISC_CB_PARAM
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/mod_auth_openidc/src/handle/discovery.c
      type_or_value: '"oidc_callback"'
    - item_type: preproc_def
      name: OIDC_DISC_OP_PARAM
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/mod_auth_openidc/src/handle/discovery.c
      type_or_value: '"iss"'
    - item_type: preproc_def
      name: OIDC_DISC_USER_PARAM
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/mod_auth_openidc/src/handle/discovery.c
      type_or_value: '"disc_user"'
    - item_type: preproc_def
      name: OIDC_DISC_RT_PARAM
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mod_auth_openidc/src/handle/discovery.c
      type_or_value: '"target_link_uri"'
    - item_type: preproc_def
      name: OIDC_DISC_LH_PARAM
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mod_auth_openidc/src/handle/discovery.c
      type_or_value: '"login_hint"'
    - item_type: preproc_def
      name: OIDC_DISC_AR_PARAM
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/mod_auth_openidc/src/handle/discovery.c
      type_or_value: '"auth_request_params"'
    - item_type: preproc_def
      name: OIDC_DISC_SC_PARAM
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/mod_auth_openidc/src/handle/discovery.c
      type_or_value: '"scopes"'
    - item_type: preproc_def
      name: OIDC_CSRF_NAME
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/mod_auth_openidc/src/handle/discovery.c
      type_or_value: '"x_csrf"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_refresh_token_cache_set
  - oidc_refresh_token_cache_parse
  - oidc_refresh_token_cache_get
  - oidc_refresh_token_grant_obtain_tokens
  - oidc_refresh_token_grant_id_token_sub_match
  - oidc_refresh_token_grant_apply_id_token
  - oidc_refresh_token_grant
  - oidc_refresh_token_request
  - oidc_refresh_access_token_before_expiry
  source_file: /src/mod_auth_openidc/src/handle/refresh.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_REFRESH_TIMESTAMP
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/mod_auth_openidc/src/handle/refresh.c
      type_or_value: '"ts"'
    - item_type: preproc_def
      name: OIDC_REFRESH_LOCK_TTL
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/mod_auth_openidc/src/handle/refresh.c
      type_or_value: '5'
    - item_type: preproc_def
      name: OIDC_REFRESH_CACHE_TTL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/mod_auth_openidc/src/handle/refresh.c
      type_or_value: '30'
    - item_type: preproc_def
      name: OIDC_REFRESH_LOCK_VALUE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/mod_auth_openidc/src/handle/refresh.c
      type_or_value: '"needstobelargerthanafewcharacters"'
    - item_type: preproc_def
      name: OIDC_REFRESH_FAILED_LOCK_VALUE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/mod_auth_openidc/src/handle/refresh.c
      type_or_value: '"alsoneedstobelargerthanafewcharactersbutdifferent"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_dpop_request
  source_file: /src/mod_auth_openidc/src/handle/dpop.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_DPOP_PARAM_URL
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/mod_auth_openidc/src/handle/dpop.c
      type_or_value: '"url"'
    - item_type: preproc_def
      name: OIDC_DPOP_PARAM_NONCE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/mod_auth_openidc/src/handle/dpop.c
      type_or_value: '"nonce"'
    - item_type: preproc_def
      name: OIDC_DPOP_PARAM_METHOD
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/mod_auth_openidc/src/handle/dpop.c
      type_or_value: '"method"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_userinfo_store_claims
  - oidc_userinfo_retrieve_claims
  - oidc_userinfo_refresh_claims
  - oidc_userinfo_signed_jwt_cache_ttl
  - oidc_userinfo_create_signed_jwt
  - oidc_userinfo_appinfo_set
  - oidc_userinfo_pass_as_jwt
  - oidc_userinfo_pass_entry
  - oidc_userinfo_resolve_claims
  - oidc_userinfo_pass_as
  source_file: /src/mod_auth_openidc/src/handle/userinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_USERINFO_SIGNED_JWT_EXP_DEFAULT
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/mod_auth_openidc/src/handle/userinfo.c
      type_or_value: '60'
    - item_type: preproc_def
      name: OIDC_USERINFO_SIGNED_JWT_CACHE_TTL_DEFAULT
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/mod_auth_openidc/src/handle/userinfo.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: OIDC_USERINFO_SIGNED_JWT_CACHE_TTL_ENVVAR
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/mod_auth_openidc/src/handle/userinfo.c
      type_or_value: '"OIDC_USERINFO_SIGNED_JWT_CACHE_TTL"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/handle/handle.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_REQUIRE_CLAIM_NAME
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/mod_auth_openidc/src/handle/handle.h
      type_or_value: '"claim"'
    - item_type: preproc_def
      name: OIDC_REQUIRE_CLAIMS_EXPR_NAME
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mod_auth_openidc/src/handle/handle.h
      type_or_value: '"claims_expr"'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*oidc_authz_match_claim_fn_type)(request_rec *, const char *const, oidc_json_t
        *)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/mod_auth_openidc/src/handle/handle.h
      type: apr_byte_t
    union: []
- function_names:
  - oidc_revoke_session
  - oidc_revoke_at_cache_remove
  source_file: /src/mod_auth_openidc/src/handle/revoke.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_jwks_request
  source_file: /src/mod_auth_openidc/src/handle/jwks.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_info_refresh_access_token
  - oidc_info_add_access_token
  - oidc_info_add_session
  - oidc_info_build_json
  - oidc_info_send_response
  - oidc_info_request
  source_file: /src/mod_auth_openidc/src/handle/info.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_INFO_PARAM_ACCESS_TOKEN_REFRESH_INTERVAL
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/mod_auth_openidc/src/handle/info.c
      type_or_value: '"access_token_refresh_interval"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_FORMAT_JSON
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/mod_auth_openidc/src/handle/info.c
      type_or_value: '"json"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_FORMAT_HTML
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/mod_auth_openidc/src/handle/info.c
      type_or_value: '"html"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_logout_revoke_one_token
  - oidc_logout_revoke_tokens
  - oidc_logout_cleanup_by_sid
  - oidc_logout_is_front_channel
  - oidc_logout_is_back_channel
  - oidc_logout_request_front_channel_provider
  - oidc_logout_request_front_channel
  - oidc_logout_request
  - oidc_logout_backchannel_read_token
  - oidc_logout_backchannel_parse_jwt
  - oidc_logout_backchannel_get_provider
  - oidc_logout_backchannel_verify_jwt
  - oidc_logout_backchannel_check_jti_replay
  - oidc_logout_backchannel_validate_claims
  - oidc_logout_backchannel
  - oidc_logout_url_append
  - oidc_logout_validate_url
  - oidc_logout_build_op_request
  - oidc_logout
  source_file: /src/mod_auth_openidc/src/handle/logout.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_DONT_REVOKE_TOKENS_BEFORE_LOGOUT_ENVVAR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/mod_auth_openidc/src/handle/logout.c
      type_or_value: '"OIDC_DONT_REVOKE_TOKENS_BEFORE_LOGOUT"'
    - item_type: preproc_def
      name: OIDC_TOKEN_REVOCATION_AUD_ENV_VAR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/src/handle/logout.c
      type_or_value: '"OIDC_TOKEN_REVOCATION_AUD"'
    - item_type: preproc_def
      name: OIDC_EVENTS_BLOGOUT_KEY
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/mod_auth_openidc/src/handle/logout.c
      type_or_value: '"http://schemas.openid.net/event/backchannel-logout"'
    - item_type: preproc_def
      name: OIDC_REFRESH_TOKENS_BEFORE_LOGOUT_ENVVAR
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/mod_auth_openidc/src/handle/logout.c
      type_or_value: '"OIDC_REFRESH_TOKENS_BEFORE_LOGOUT"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_content_handle_info_request
  - oidc_content_handle_redirect_uri_request
  - oidc_content_handler
  source_file: /src/mod_auth_openidc/src/handle/content.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_request_uri
  source_file: /src/mod_auth_openidc/src/handle/request_uri.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_authz_match_json_string
  - oidc_authz_match_json_integer
  - oidc_authz_match_json_real
  - oidc_authz_match_json_true
  - oidc_authz_match_json_false
  - oidc_authz_match_json_null
  - oidc_authz_match_json_array_elem
  - oidc_authz_match_json_array
  - oidc_authz_match_value
  - oidc_authz_match_pcre_string
  - oidc_authz_match_pcre_array
  - oidc_authz_match_pcre
  - oidc_authz_separator_dot
  - oidc_auth_handle_separator
  - oidc_authz_match_claim
  - oidc_authz_match_claims_expr
  - oidc_authz_error_add
  - oidc_authz_get_claims_idtoken_scope
  - oidc_authz_merge_claims
  - oidc_authz_skip_to_content_handler
  - oidc_authz_24_worker
  - oidc_authz_24_unauthorized_user
  - oidc_authz_24_checker
  - oidc_authz_24_checker_claim
  - oidc_authz_24_checker_claims_expr
  source_file: /src/mod_auth_openidc/src/handle/authz.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_AUTHZ_ERROR
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/mod_auth_openidc/src/handle/authz.c
      type_or_value: '"OIDC_AUTHZ_ERROR"'
    - item_type: preproc_def
      name: OIDC_OAUTH_BEARER_SCOPE_ERROR
      pos:
        line_end: 500
        line_start: 499
        source_file: /src/mod_auth_openidc/src/handle/authz.c
      type_or_value: '"OIDC_OAUTH_BEARER_SCOPE_ERROR"'
    - item_type: preproc_def
      name: OIDC_OAUTH_BEARER_SCOPE_ERROR_VALUE
      pos:
        line_end: 502
        line_start: 500
        source_file: /src/mod_auth_openidc/src/handle/authz.c
      type_or_value: '"Bearer error=\"insufficient_scope\", error_description=\"Different
        scope(s) or other claims required\""'
    structs:
    - fields:
      - name: type
        type: oidc_json_type_t
      - name: '*handler'
        type: oidc_match_json_function_t
      item_type: struct
      name: oidc_authz_json_handler_t
      pos:
        line_end: 102
        line_start: 99
        source_file: /src/mod_auth_openidc/src/handle/authz.c
    - fields:
      - name: type
        type: oidc_json_type_t
      - name: '*handler'
        type: oidc_match_pcre_function_t
      item_type: struct
      name: oidc_authz_pcre_handler_t
      pos:
        line_end: 169
        line_start: 166
        source_file: /src/mod_auth_openidc/src/handle/authz.c
    - fields:
      - name: sep
        type: char
      - name: '*handler'
        type: oidc_match_json_function_t
      item_type: struct
      name: oidc_authz_separator_handler_t
      pos:
        line_end: 282
        line_start: 279
        source_file: /src/mod_auth_openidc/src/handle/authz.c
    typedefs:
    - item_type: typedef
      name: (oidc_match_json_function_t)(request_rec *r, const char *spec, oidc_json_t
        *val, const char *key)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/mod_auth_openidc/src/handle/authz.c
      type: apr_byte_t
    - item_type: typedef
      name: "(oidc_match_pcre_function_t)(request_rec *r, const char *, const oidc_json_t
        *, const char *,\n\t\t\t\t\t       struct oidc_pcre *)"
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/mod_auth_openidc/src/handle/authz.c
      type: apr_byte_t
    union: []
- function_names:
  - oidc_response_redirect_parent_window_to_logout
  - oidc_response_authorization_error
  - oidc_response_browser_back
  - oidc_response_post_preserve_javascript
  - oidc_response_post_preserved_restore
  - oidc_response_make_sid_iss_unique
  - oidc_response_save_in_session
  - oidc_response_proto_state_restore
  - oidc_response_match_state
  - oidc_response_flows
  - oidc_response_set_request_user
  - oidc_response_handle_state_mismatch
  - oidc_response_finish_success
  - oidc_response_process
  - oidc_response_authorization_post
  - oidc_response_authorization_redirect
  source_file: /src/mod_auth_openidc/src/handle/response.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_request_check_cookie_domain
  - oidc_request_samesite_state_cookie
  - oidc_request_authorization_set_cookie
  - oidc_request_form_post_param_add
  - oidc_request_html_post
  - oidc_request_auth_send_post
  - oidc_request_auth_send_get
  - oidc_request_auth
  - oidc_request_authenticate_user
  source_file: /src/mod_auth_openidc/src/handle/request.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*r'
        type: request_rec
      - name: '*inputs'
        type: apr_array_header_t
      item_type: struct
      name: oidc_request_form_post_ctx_t
      pos:
        line_end: 158
        line_start: 152
        source_file: /src/mod_auth_openidc/src/handle/request.c
    typedefs: []
    union: []
- function_names:
  - oidc_proto_validate_token_type
  - oidc_proto_token_endpoint_call
  - oidc_proto_token_endpoint_dpop_prepare
  - oidc_proto_token_endpoint_request_auth
  - oidc_proto_token_endpoint_dpop_retry
  - oidc_proto_token_endpoint_response_parse
  - oidc_proto_token_endpoint_request
  - oidc_proto_token_refresh_request
  source_file: /src/mod_auth_openidc/src/proto/token.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_proto_webfinger_response_get_issuer
  - oidc_proto_webfinger_discovery
  - oidc_proto_discovery_account_based
  - oidc_proto_discovery_url_based
  source_file: /src/mod_auth_openidc/src/proto/discovery.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_proto_state_get_string_value
  - oidc_proto_state_set_string_value
  - oidc_proto_state_new
  - oidc_proto_state_destroy
  - oidc_proto_state_to_string
  - oidc_proto_state_get_issuer
  - oidc_proto_state_get_nonce
  - oidc_proto_state_get_timestamp
  - oidc_proto_state_get_prompt
  - oidc_proto_state_get_response_type
  - oidc_proto_state_get_response_mode
  - oidc_proto_state_get_original_url
  - oidc_proto_state_get_original_method
  - oidc_proto_state_get_state
  - oidc_proto_state_get_pkce_state
  - oidc_proto_state_get_auth_request_params
  - oidc_proto_state_get_path_scope
  - oidc_proto_state_set_state
  - oidc_proto_state_set_issuer
  - oidc_proto_state_set_original_url
  - oidc_proto_state_set_original_method
  - oidc_proto_state_set_response_mode
  - oidc_proto_state_set_response_type
  - oidc_proto_state_set_nonce
  - oidc_proto_state_set_prompt
  - oidc_proto_state_set_pkce_state
  - oidc_proto_state_set_auth_request_params
  - oidc_proto_state_set_path_scope
  - oidc_proto_state_set_timestamp_now
  - oidc_proto_state_from_cookie
  - oidc_proto_state_to_cookie
  source_file: /src/mod_auth_openidc/src/proto/state.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_ISSUER
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"i"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_ORIGINAL_URL
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"ou"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_ORIGINAL_METHOD
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"om"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_RESPONSE_MODE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"rm"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_RESPONSE_TYPE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"rt"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_NONCE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"n"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_TIMESTAMP
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"t"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_PROMPT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"pr"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_PKCE_STATE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"ps"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_STATE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"s"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_AUTH_REQUEST_PARAMS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"arp"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE_PATH_SCOPE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/mod_auth_openidc/src/proto/state.c
      type_or_value: '"psc"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_profile_oidc10_token_endpoint_auth_aud
  - oidc_profile_oidc10_revocation_endpoint_auth_aud
  - oidc_profile_oidc10_auth_request_method
  - oidc_profile_oidc10_id_token_aud_values
  - oidc_profile_oidc10_pkce
  - oidc_profile_oidc10_dpop_mode
  - oidc_profile_oidc10_cert_bound_tokens
  - oidc_profile_oidc10_response_require_iss
  - oidc_profile_oidc10_request_uri_scope
  - oidc_profile_fapi20_token_endpoint_auth_aud
  - oidc_profile_fapi20_revocation_endpoint_auth_aud
  - oidc_profile_fapi20_auth_request_method
  - oidc_profile_fapi20_id_token_aud_values
  - oidc_profile_fapi20_pkce
  - oidc_profile_fapi20_dpop_mode
  - oidc_profile_fapi20_cert_bound_tokens
  - oidc_profile_fapi20_response_require_iss
  - oidc_profile_fapi20_request_uri_scope
  - oidc_proto_profile_ops
  - oidc_proto_profile_token_endpoint_auth_aud
  - oidc_proto_profile_revocation_endpoint_auth_aud
  - oidc_proto_profile_auth_request_method_get
  - oidc_proto_profile_id_token_aud_values_get
  - oidc_proto_profile_pkce_get
  - oidc_proto_profile_dpop_mode_get
  - oidc_proto_profile_cert_bound_tokens_get
  - oidc_proto_profile_response_require_iss_get
  - oidc_proto_profile_request_uri_scope_get
  source_file: /src/mod_auth_openidc/src/proto/profile.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*(*token_endpoint_auth_aud)(const oidc_provider_t *provider)'
        type: char
      - name: '*(*revocation_endpoint_auth_aud)(const oidc_provider_t *provider, const
          char *val)'
        type: char
      - name: (*auth_request_method)(const oidc_provider_t *provider)
        type: oidc_auth_request_method_t
      - name: '*(*id_token_aud_values)(apr_pool_t *pool, const oidc_provider_t *provider)'
        type: apr_array_header_t
      - name: '*(*pkce)(const oidc_provider_t *provider)'
        type: oidc_proto_pkce_t
      - name: (*dpop_mode)(const oidc_provider_t *provider)
        type: oidc_dpop_mode_t
      - name: (*cert_bound_tokens)(const oidc_provider_t *provider)
        type: oidc_cert_bound_tokens_t
      - name: (*response_require_iss)(const oidc_provider_t *provider)
        type: int
      - name: '*(*request_uri_scope)(const oidc_provider_t *provider)'
        type: char
      item_type: struct
      name: oidc_proto_profile_ops_t
      pos:
        line_end: 60
        line_start: 50
        source_file: /src/mod_auth_openidc/src/proto/profile.c
    typedefs: []
    union: []
- function_names:
  - oidc_proto_dpop_use_nonce
  - oidc_proto_dpop_create
  source_file: /src/mod_auth_openidc/src/proto/dpop.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_PROTO_DPOP_JWT_TYP
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/mod_auth_openidc/src/proto/dpop.c
      type_or_value: '"dpop+jwt"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_proto_userinfo_response_jwt_parse
  - oidc_proto_userinfo_composite_source_payload
  - oidc_proto_userinfo_composite_decode_source
  - oidc_proto_userinfo_composite_decode_sources
  - oidc_proto_userinfo_composite_apply_names
  - oidc_proto_userinfo_request_composite_claims
  - oidc_proto_userinfo_endpoint_call
  - oidc_proto_userinfo_request_dpop_init
  - oidc_proto_userinfo_response_resolve
  - oidc_proto_userinfo_request_validate_sub
  - oidc_proto_userinfo_request
  source_file: /src/mod_auth_openidc/src/proto/userinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_COMPOSITE_CLAIM_NAMES
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/mod_auth_openidc/src/proto/userinfo.c
      type_or_value: '"_claim_names"'
    - item_type: preproc_def
      name: OIDC_COMPOSITE_CLAIM_SOURCES
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/mod_auth_openidc/src/proto/userinfo.c
      type_or_value: '"_claim_sources"'
    - item_type: preproc_def
      name: OIDC_COMPOSITE_CLAIM_JWT
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/mod_auth_openidc/src/proto/userinfo.c
      type_or_value: '"JWT"'
    - item_type: preproc_def
      name: OIDC_COMPOSITE_CLAIM_ACCESS_TOKEN
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/mod_auth_openidc/src/proto/userinfo.c
      type_or_value: OIDC_PROTO_ACCESS_TOKEN
    - item_type: preproc_def
      name: OIDC_COMPOSITE_CLAIM_ENDPOINT
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/mod_auth_openidc/src/proto/userinfo.c
      type_or_value: '"endpoint"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_proto_validate_iat
  - oidc_proto_validate_exp
  - oidc_proto_jwt_validate
  - oidc_proto_jwt_verify_keys_merge
  - oidc_proto_jwt_verify
  - oidc_proto_jwt_header_peek
  - oidc_proto_jwt_create_from_first_pkey
  - oidc_proto_jwt_sign_and_serialize
  source_file: /src/mod_auth_openidc/src/proto/jwt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_proto_jwks_key_include_any
  - oidc_proto_jwks_key_apply
  - oidc_proto_jwks_key_get
  - oidc_proto_jwks_uri_keys
  source_file: /src/mod_auth_openidc/src/proto/jwks.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_proto_request_object_param_needs_action
  - oidc_proto_request_object_param_is_spec_string
  - oidc_proto_request_object_copy_from_request
  - oidc_proto_request_object_delete_from_request
  - oidc_proto_request_object_encryption_jwk_by_type
  - oidc_proto_request_object_claims_set
  - oidc_proto_request_object_params_copy
  - oidc_proto_request_object_signing_jwk_get
  - oidc_proto_request_object_sign
  - oidc_proto_request_object_encryption_jwk_get
  - oidc_proto_request_object_encrypt
  - oidc_proto_request_object_create
  - oidc_proto_request_uri_create
  - oidc_proto_request_object_param_add
  source_file: /src/mod_auth_openidc/src/proto/request_object.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_REQUEST_OBJECT_TTL_DEFAULT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/mod_auth_openidc/src/proto/request_object.c
      type_or_value: '30'
    - item_type: preproc_def
      name: OIDC_PROTO_REQUEST_URI_REF_LEN
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/mod_auth_openidc/src/proto/request_object.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*r'
        type: request_rec
      - name: '*request_object_config'
        type: oidc_json_t
      - name: '*request_object'
        type: oidc_jwt_t
      - name: '*params2'
        type: apr_table_t
      item_type: struct
      name: oidc_proto_request_object_copy_req_ctx_t
      pos:
        line_end: 109
        line_start: 104
        source_file: /src/mod_auth_openidc/src/proto/request_object.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/proto/proto.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_PROTO_ISS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"iss"'
    - item_type: preproc_def
      name: OIDC_PROTO_CODE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"code"'
    - item_type: preproc_def
      name: OIDC_PROTO_CLIENT_ID
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"client_id"'
    - item_type: preproc_def
      name: OIDC_PROTO_CLIENT_SECRET
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"client_secret"'
    - item_type: preproc_def
      name: OIDC_PROTO_CLIENT_ASSERTION
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"client_assertion"'
    - item_type: preproc_def
      name: OIDC_PROTO_CLIENT_ASSERTION_TYPE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"client_assertion_type"'
    - item_type: preproc_def
      name: OIDC_PROTO_ACCESS_TOKEN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"access_token"'
    - item_type: preproc_def
      name: OIDC_PROTO_ID_TOKEN
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"id_token"'
    - item_type: preproc_def
      name: OIDC_PROTO_STATE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"state"'
    - item_type: preproc_def
      name: OIDC_PROTO_GRANT_TYPE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"grant_type"'
    - item_type: preproc_def
      name: OIDC_PROTO_REDIRECT_URI
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"redirect_uri"'
    - item_type: preproc_def
      name: OIDC_PROTO_CODE_VERIFIER
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"code_verifier"'
    - item_type: preproc_def
      name: OIDC_PROTO_CODE_CHALLENGE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"code_challenge"'
    - item_type: preproc_def
      name: OIDC_PROTO_CODE_CHALLENGE_METHOD
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"code_challenge_method"'
    - item_type: preproc_def
      name: OIDC_PROTO_SCOPE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"scope"'
    - item_type: preproc_def
      name: OIDC_PROTO_REFRESH_TOKEN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"refresh_token"'
    - item_type: preproc_def
      name: OIDC_PROTO_TOKEN_TYPE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"token_type"'
    - item_type: preproc_def
      name: OIDC_PROTO_TOKEN_TYPE_HINT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"token_type_hint"'
    - item_type: preproc_def
      name: OIDC_PROTO_TOKEN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"token"'
    - item_type: preproc_def
      name: OIDC_PROTO_EXPIRES_IN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"expires_in"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_TYPE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"response_type"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_MODE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"response_mode"'
    - item_type: preproc_def
      name: OIDC_PROTO_NONCE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"nonce"'
    - item_type: preproc_def
      name: OIDC_PROTO_PROMPT
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"prompt"'
    - item_type: preproc_def
      name: OIDC_PROTO_LOGIN_HINT
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"login_hint"'
    - item_type: preproc_def
      name: OIDC_PROTO_ID_TOKEN_HINT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"id_token_hint"'
    - item_type: preproc_def
      name: OIDC_PROTO_DISPLAY
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"display"'
    - item_type: preproc_def
      name: OIDC_PROTO_UI_LOCALES
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"ui_locales"'
    - item_type: preproc_def
      name: OIDC_PROTO_ACR_VALUES
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"acr_values"'
    - item_type: preproc_def
      name: OIDC_PROTO_CLAIMS_LOCALES
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"claims_locales"'
    - item_type: preproc_def
      name: OIDC_PROTO_REQUEST_URI
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"request_uri"'
    - item_type: preproc_def
      name: OIDC_PROTO_REQUEST_OBJECT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"request"'
    - item_type: preproc_def
      name: OIDC_REQUEST_OBJECT_COPY_FROM_REQUEST
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"copy_from_request"'
    - item_type: preproc_def
      name: OIDC_REQUEST_OBJECT_COPY_AND_REMOVE_FROM_REQUEST
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"copy_and_remove_from_request"'
    - item_type: preproc_def
      name: OIDC_REQUEST_OBJECT_TTL
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"ttl"'
    - item_type: preproc_def
      name: OIDC_REQUEST_OBJECT_STATIC
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"static"'
    - item_type: preproc_def
      name: OIDC_REQUEST_OBJECT_URL
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"url"'
    - item_type: preproc_def
      name: OIDC_REQUEST_OBJECT_TYPE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"request_object_type"'
    - item_type: preproc_def
      name: OIDC_REQUEST_OBJECT_CRYPTO
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"crypto"'
    - item_type: preproc_def
      name: OIDC_REQUEST_OBJECT_CRYPTO_SIGN_ALG
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"sign_alg"'
    - item_type: preproc_def
      name: OIDC_REQUEST_OBJECT_CRYPTO_CRYPT_ALG
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"crypt_alg"'
    - item_type: preproc_def
      name: OIDC_REQUEST_OBJECT_CRYPTO_CRYPT_ENC
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"crypt_enc"'
    - item_type: preproc_def
      name: OIDC_PROTO_SESSION_STATE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"session_state"'
    - item_type: preproc_def
      name: OIDC_PROTO_ACTIVE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"active"'
    - item_type: preproc_def
      name: OIDC_PROTO_LOGOUT_TOKEN
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"logout_token"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_TYPE_CODE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"code"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_TYPE_IDTOKEN
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"id_token"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_TYPE_IDTOKEN_TOKEN
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"id_token token"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_TYPE_CODE_IDTOKEN
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"code id_token"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_TYPE_CODE_TOKEN
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"code token"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_TYPE_CODE_IDTOKEN_TOKEN
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"code id_token token"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_TYPE_TOKEN
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"token"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_MODE_QUERY
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"query"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_MODE_FRAGMENT
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"fragment"'
    - item_type: preproc_def
      name: OIDC_PROTO_RESPONSE_MODE_FORM_POST
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"form_post"'
    - item_type: preproc_def
      name: OIDC_PROTO_SCOPE_OPENID
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"openid"'
    - item_type: preproc_def
      name: OIDC_PROTO_PROMPT_NONE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"none"'
    - item_type: preproc_def
      name: OIDC_PROTO_ERROR
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"error"'
    - item_type: preproc_def
      name: OIDC_PROTO_ERROR_DESCRIPTION
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"error_description"'
    - item_type: preproc_def
      name: OIDC_PROTO_REALM
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"realm"'
    - item_type: preproc_def
      name: OIDC_PROTO_ERR_INVALID_TOKEN
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"invalid_token"'
    - item_type: preproc_def
      name: OIDC_PROTO_ERR_INVALID_REQUEST
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"invalid_request"'
    - item_type: preproc_def
      name: OIDC_PROTO_GRANT_TYPE_AUTHZ_CODE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"authorization_code"'
    - item_type: preproc_def
      name: OIDC_PROTO_GRANT_TYPE_REFRESH_TOKEN
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"refresh_token"'
    - item_type: preproc_def
      name: OIDC_PROTO_CLIENT_ASSERTION_TYPE_JWT_BEARER
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"urn:ietf:params:oauth:client-assertion-type:jwt-bearer"'
    - item_type: preproc_def
      name: OIDC_PROTO_CLIENT_SECRET_BASIC
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"client_secret_basic"'
    - item_type: preproc_def
      name: OIDC_PROTO_CLIENT_SECRET_POST
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"client_secret_post"'
    - item_type: preproc_def
      name: OIDC_PROTO_CLIENT_SECRET_JWT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"client_secret_jwt"'
    - item_type: preproc_def
      name: OIDC_PROTO_PRIVATE_KEY_JWT
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"private_key_jwt"'
    - item_type: preproc_def
      name: OIDC_PROTO_BEARER_ACCESS_TOKEN
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"bearer_access_token"'
    - item_type: preproc_def
      name: OIDC_PROTO_ENDPOINT_AUTH_NONE
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"none"'
    - item_type: preproc_def
      name: OIDC_PROTO_BEARER
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"Bearer"'
    - item_type: preproc_def
      name: OIDC_PROTO_BASIC
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"Basic"'
    - item_type: preproc_def
      name: OIDC_PROTO_DPOP
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"DPoP"'
    - item_type: preproc_def
      name: OIDC_PROTO_DPOP_USE_NONCE
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"use_dpop_nonce"'
    - item_type: preproc_def
      name: OIDC_PKCE_METHOD_PLAIN
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"plain"'
    - item_type: preproc_def
      name: OIDC_PKCE_METHOD_S256
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"S256"'
    - item_type: preproc_def
      name: OIDC_PKCE_METHOD_NONE
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '"none"'
    - item_type: preproc_def
      name: OIDC_PROTO_CODE_VERIFIER_LENGTH
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type_or_value: '32'
    structs: []
    typedefs:
    - item_type: typedef
      name: oidc_proto_state_t
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/mod_auth_openidc/src/proto/proto.h
      type: oidc_json_t
    union: []
- function_names:
  - oidc_proto_response_is_post
  - oidc_proto_response_is_redirect
  - oidc_proto_validate_code_response
  - oidc_proto_validate_response_type
  - oidc_proto_validate_response_mode
  - oidc_proto_validate_issuer_client_id
  - oidc_proto_validate_response_type_mode_issuer
  - oidc_proto_parse_idtoken_and_validate_code
  - oidc_proto_resolve_code
  - oidc_proto_resolve_code_and_validate_response
  - oidc_proto_response_strip_params
  - oidc_proto_response_code_idtoken
  - oidc_proto_response_code_token
  - oidc_proto_response_code
  - oidc_proto_handle_implicit_flow
  - oidc_proto_response_code_idtoken_token
  - oidc_proto_response_idtoken_token
  - oidc_proto_response_idtoken
  source_file: /src/mod_auth_openidc/src/proto/response.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*response_type'
        type: char
      - name: '*params[6]'
        type: char
      item_type: struct
      name: "strip[] = {\n\t    {OIDC_PROTO_RESPONSE_TYPE_CODE,\n\t     {OIDC_PROTO_ACCESS_TOKEN,
        OIDC_PROTO_TOKEN_TYPE, OIDC_PROTO_EXPIRES_IN, OIDC_PROTO_ID_TOKEN,\n\t      OIDC_PROTO_REFRESH_TOKEN,
        OIDC_PROTO_SCOPE}},\n\t    {OIDC_PROTO_RESPONSE_TYPE_CODE_IDTOKEN,\n\t     {OIDC_PROTO_ACCESS_TOKEN,
        OIDC_PROTO_TOKEN_TYPE, OIDC_PROTO_EXPIRES_IN, OIDC_PROTO_REFRESH_TOKEN,\n\t
        \     OIDC_PROTO_SCOPE, NULL}},\n\t    {OIDC_PROTO_RESPONSE_TYPE_CODE_TOKEN,\n\t
        \    {OIDC_PROTO_ID_TOKEN, OIDC_PROTO_REFRESH_TOKEN, OIDC_PROTO_SCOPE, NULL}},\n\t
        \   {OIDC_PROTO_RESPONSE_TYPE_CODE_IDTOKEN_TOKEN, {OIDC_PROTO_REFRESH_TOKEN,
        OIDC_PROTO_SCOPE, NULL}},\n\t    {OIDC_PROTO_RESPONSE_TYPE_IDTOKEN_TOKEN,
        {OIDC_PROTO_REFRESH_TOKEN, NULL}},\n\t    {OIDC_PROTO_RESPONSE_TYPE_IDTOKEN,\n\t
        \    {OIDC_PROTO_TOKEN_TYPE, OIDC_PROTO_EXPIRES_IN, OIDC_PROTO_REFRESH_TOKEN,
        NULL}},\n\t}"
      pos:
        line_end: 382
        line_start: 379
        source_file: /src/mod_auth_openidc/src/proto/response.c
    typedefs: []
    union: []
- function_names:
  - oidc_proto_pkce_code_verifier_gen
  - oidc_proto_pkce_state_plain
  - oidc_proto_pkce_challenge_plain
  - oidc_proto_pkce_verifier_plain
  - oidc_proto_pkce_state_s256
  - oidc_proto_pkce_challenge_s256
  - oidc_proto_pkce_verifier_s256
  source_file: /src/mod_auth_openidc/src/proto/pkce.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_proto_idtoken_validate_nonce
  - oidc_proto_idtoken_validate_azp
  - oidc_proto_idtoken_aud_resolve
  - oidc_proto_idtoken_validate_aud_string
  - oidc_proto_idtoken_validate_aud_array
  - oidc_proto_idtoken_validate_aud_and_azp
  - oidc_proto_validate_hash
  - oidc_proto_validate_hash_value
  - oidc_proto_idtoken_validate_access_token
  - oidc_proto_idtoken_validate_code
  - oidc_proto_validate_idtoken
  - oidc_proto_idtoken_parse
  source_file: /src/mod_auth_openidc/src/proto/id_token.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_PROTO_IDTOKEN_AUD_CLIENT_ID_SPECIAL_VALUE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/mod_auth_openidc/src/proto/id_token.c
      type_or_value: '"@"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_proto_endpoint_auth_none
  - oidc_proto_endpoint_client_secret_basic
  - oidc_proto_endpoint_client_secret_post
  - oidc_proto_jwt_create
  - oidc_proto_jwt_sign_and_add
  - oidc_proto_endpoint_auth_client_secret_jwt
  - oidc_proto_endpoint_access_token_bearer
  - oidc_proto_endpoint_auth_pick_signing_key
  - oidc_proto_endpoint_auth_private_key_jwt
  - oidc_proto_token_endpoint_auth
  source_file: /src/mod_auth_openidc/src/proto/auth.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_PROTO_JWT_ASSERTION_SYMMETRIC_ALG
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/mod_auth_openidc/src/proto/auth.c
      type_or_value: OIDC_JOSE_HDR_ALG_HS256
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_proto_nonce_gen
  - oidc_proto_jti_gen
  - oidc_proto_supported_flows
  - oidc_proto_flow_is_supported
  - oidc_proto_return_www_authenticate
  source_file: /src/mod_auth_openidc/src/proto/proto.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_PROTO_NONCE_LENGTH
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/mod_auth_openidc/src/proto/proto.c
      type_or_value: '32'
    - item_type: preproc_def
      name: OIDC_PROTO_JWT_JTI_LEN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/mod_auth_openidc/src/proto/proto.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_proto_request_auth_params_add
  - oidc_proto_request_auth_push
  - oidc_proto_request_auth_scope_set
  - oidc_proto_request_auth_params_set
  source_file: /src/mod_auth_openidc/src/proto/request.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OIDC_DIR_CFG_SIMPLE_MEMBERS
  - OIDC_DIR_M_DECL_PTR
  - OIDC_DIR_M_DECL_INT
  - OIDC_DIR_M_CREATE_PTR
  - OIDC_DIR_M_CREATE_INT
  - OIDC_DIR_M_MERGE_PTR
  - OIDC_DIR_M_MERGE_INT
  - oidc_cmd_dir_pass_idtoken_as_set
  - oidc_cfg_dir_parse_pass_userinfo_as
  - oidc_cmd_dir_pass_userinfo_as_set
  - oidc_cfg_dir_accept_oauth_token_in2str
  - oidc_cmd_dir_accept_oauth_token_in_set
  - oidc_cmd_dir_strip_cookies_set
  - oidc_cmd_dir_pass_cookies_set
  - OIDC_CFG_DIR_MEMBER_FUNC_GET
  - OIDC_CFG_DIR_MEMBER_FUNC_INT_GET
  - OIDC_CFG_DIR_MEMBER_FUNCS_INT
  - oidc_cmd_dir_pass_claims_as_set
  - oidc_cfg_dir_unauth_action2str
  - oidc_cmd_dir_unauth_action_set
  - oidc_cmd_dir_unautz_action_set
  - oidc_cmd_dir_userinfo_claims_expr_set
  - oidc_cmd_dir_path_auth_request_params_set
  - oidc_cmd_dir_path_scope_set
  - oidc_cmd_dir_refresh_access_token_before_expiry_set
  - OIDC_CFG_DIR_MEMBER_FUNC_PTR
  - OIDC_CFG_DIR_MEMBER_FUNC_STR
  - oidc_cfg_dir_accept_token_in_option_get
  - oidc_cmd_dir_token_introspection_interval_set
  - oidc_cfg_dir_token_introspection_interval_get
  - oidc_cfg_dir_unauth_action_get
  - oidc_cfg_dir_unauth_expr_is_set
  - oidc_cfg_dir_unauthz_arg_get
  - oidc_cfg_dir_path_auth_request_params_get
  - oidc_cfg_dir_post_config
  - oidc_cfg_dir_pass_userinfo_as_get
  - oidc_cfg_dir_userinfo_claims_expr_get
  - oidc_cfg_dir_path_scope_get
  - oidc_cfg_dir_config_create
  - _oidc_cfg_dir_merge_hash
  - _oidc_cfg_dir_merge_introspect_interval
  - oidc_cfg_dir_config_merge
  source_file: /src/mod_auth_openidc/src/cfg/dir.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_INTROSPECT_INTERVAL_UNSET
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: OIDC_PASS_ID_TOKEN_AS_CLAIMS_STR
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"claims"'
    - item_type: preproc_def
      name: OIDC_PASS_IDTOKEN_AS_PAYLOAD_STR
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"payload"'
    - item_type: preproc_def
      name: OIDC_PASS_IDTOKEN_AS_SERIALIZED_STR
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"serialized"'
    - item_type: preproc_def
      name: OIDC_PASS_IDTOKEN_OFF_STR
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"off"'
    - item_type: preproc_def
      name: OIDC_PASS_USERINFO_AS_CLAIMS_STR
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"claims"'
    - item_type: preproc_def
      name: OIDC_PASS_USERINFO_AS_JSON_OBJECT_STR
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"json"'
    - item_type: preproc_def
      name: OIDC_PASS_USERINFO_AS_JWT_STR
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"jwt"'
    - item_type: preproc_def
      name: OIDC_PASS_USERINFO_AS_SIGNED_JWT_STR
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"signed_jwt"'
    - item_type: preproc_def
      name: OIDC_OAUTH_ACCEPT_TOKEN_IN_HEADER_STR
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"header"'
    - item_type: preproc_def
      name: OIDC_OAUTH_ACCEPT_TOKEN_IN_POST_STR
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"post"'
    - item_type: preproc_def
      name: OIDC_OAUTH_ACCEPT_TOKEN_IN_QUERY_STR
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"query"'
    - item_type: preproc_def
      name: OIDC_OAUTH_ACCEPT_TOKEN_IN_COOKIE_STR
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"cookie"'
    - item_type: preproc_def
      name: OIDC_OAUTH_ACCEPT_TOKEN_IN_BASIC_STR
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"basic"'
    - item_type: preproc_def
      name: OIDC_OAUTH_ACCEPT_TOKEN_IN_COOKIE_NAME_DEFAULT
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"PA.global"'
    - item_type: preproc_def
      name: OIDC_OAUTH_ACCEPT_TOKEN_IN_COOKIE_SEPARATOR
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '":"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_PRESERVE_POST
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_APPINFO_ENCODING_NONE_STR
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"none"'
    - item_type: preproc_def
      name: OIDC_APPINFO_ENCODING_LATIN1_STR
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"latin1"'
    - item_type: preproc_def
      name: OIDC_APPINFO_ENCODING_BASE64URL_STR
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"base64url"'
    - item_type: preproc_def
      name: OIDC_APPINFO_PASS_NONE_STR
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"none"'
    - item_type: preproc_def
      name: OIDC_APPINFO_PASS_HEADERS_STR
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"headers"'
    - item_type: preproc_def
      name: OIDC_APPINFO_PASS_ENVVARS_STR
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"environment"'
    - item_type: preproc_def
      name: OIDC_APPINFO_PASS_BOTH_STR
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"both"'
    - item_type: preproc_def
      name: OIDC_APPINFO_PASS_BOTH
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: (OIDC_APPINFO_PASS_HEADERS | OIDC_APPINFO_PASS_ENVVARS)
    - item_type: preproc_def
      name: OIDC_UNAUTH_AUTHENTICATE_STR
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"auth"'
    - item_type: preproc_def
      name: OIDC_UNAUTH_PASS_STR
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"pass"'
    - item_type: preproc_def
      name: OIDC_UNAUTH_RETURN401_STR
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"401"'
    - item_type: preproc_def
      name: OIDC_UNAUTH_RETURN410_STR
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"410"'
    - item_type: preproc_def
      name: OIDC_UNAUTH_RETURN407_STR
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"407"'
    - item_type: preproc_def
      name: OIDC_UNAUTZ_RETURN403_STR
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"403"'
    - item_type: preproc_def
      name: OIDC_UNAUTZ_RETURN401_STR
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"401"'
    - item_type: preproc_def
      name: OIDC_UNAUTZ_AUTHENTICATE_STR
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"auth"'
    - item_type: preproc_def
      name: OIDC_UNAUTZ_RETURN302_STR
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"302"'
    - item_type: preproc_def
      name: OIDC_REFRESH_ACCESS_TOKEN_BEFORE_EXPIRY_MIN
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_REFRESH_ACCESS_TOKEN_BEFORE_EXPIRY_MAX
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: (3600 * 24 * 365)
    - item_type: preproc_def
      name: OIDC_DEFAULT_REFRESH_ACCESS_TOKEN_BEFORE_EXPIRY
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: OIDC_DEFAULT_ON_ERROR_REFRESH
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: OIDC_ON_ERROR_502;
    - item_type: preproc_def
      name: OIDC_DEFAULT_STATE_COOKIE_PREFIX
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"mod_auth_openidc_state_"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_COOKIE
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"mod_auth_openidc_session"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_COOKIE_PATH
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '"/"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_AUTHN_HEADER
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: OIDC_DEFAULT_PASS_APPINFO_IN
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: OIDC_APPINFO_PASS_BOTH
    - item_type: preproc_def
      name: OIDC_DEFAULT_APPINFO_ENCODING
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: OIDC_APPINFO_ENCODING_LATIN1
    - item_type: preproc_def
      name: OIDC_DEFAULT_PASS_ACCESS_TOKEN
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_DEFAULT_PASS_REFRESH_TOKEN
      pos:
        line_end: 515
        line_start: 514
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_OAUTH_ACCEPT_TOKEN_IN_DEFAULT
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: OIDC_OAUTH_ACCEPT_TOKEN_IN_HEADER
    - item_type: preproc_def
      name: OIDC_OAUTH_ACCESS_TOKEN_INTROSPECTION_INTERVAL_MIN
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: OIDC_OAUTH_ACCESS_TOKEN_INTROSPECTION_INTERVAL_MAX
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: (3600 * 24 * 365)
    - item_type: preproc_def
      name: OIDC_DEFAULT_TOKEN_INTROSPECTION_INTERVAL
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_DEFAULT_UNAUTH_ACTION
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: OIDC_UNAUTH_AUTHENTICATE
    - item_type: preproc_def
      name: OIDC_DEFAULT_UNAUTZ_ACTION
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: OIDC_UNAUTZ_RETURN403
    - item_type: preproc_def
      name: OIDC_DEFAULT_PASS_USERINFO_AS
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: OIDC_PASS_USERINFO_AS_CLAIMS_STR
    - item_type: preproc_def
      name: OIDC_DEFAULT_PASS_IDTOKEN_AS
      pos:
        line_end: 628
        line_start: 627
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
      type_or_value: OIDC_PASS_IDTOKEN_AS_CLAIMS
    structs:
    - fields:
      - name: '*oauth_accept_token_options'
        type: apr_hash_t
      - name: oauth_token_introspect_interval
        type: int
      item_type: struct
      name: oidc_dir_cfg_t
      pos:
        line_end: 97
        line_start: 91
        source_file: /src/mod_auth_openidc/src/cfg/dir.c
    typedefs: []
    union: []
- function_names:
  - OIDC_PROVIDER_CFG_SIMPLE_MEMBERS
  - OIDC_PROVIDER_M_DECL
  - OIDC_PROVIDER_M_INIT_PTR
  - OIDC_PROVIDER_M_INIT_INT
  - OIDC_PROVIDER_M_MERGE_PTR
  - OIDC_PROVIDER_M_MERGE_INT
  - OIDC_PROVIDER_MEMBER_FUNCS_TYPE_DEF
  - OIDC_PROVIDER_MEMBER_FUNCS_STR
  - OIDC_PROVIDER_MEMBER_FUNCS_FILE
  - OIDC_PROVIDER_MEMBER_GET_INT_DEF
  - OIDC_PROVIDER_MEMBER_FUNCS_STR_INT
  - OIDC_PROVIDER_MEMBER_FUNCS_PARSE_STR
  - OIDC_PROVIDER_MEMBER_FUNCS_INT
  - OIDC_PROVIDER_MEMBER_FUNCS_URL
  - OIDC_PROVIDER_MEMBER_FUNCS_URL_EMPTY
  - OIDC_PROVIDER_MEMBER_FUNCS_FLAG
  - OIDC_PROVIDER_TYPE_MEMBER_FUNCS_PASSPHRASE
  - OIDC_PROVIDER_MEMBER_FUNCS_KEYS
  - OIDC_PROVIDER_MEMBER_FUNCS_STR_LIST
  - oidc_cfg_provider_pkce_set
  - oidc_cfg_provider_parse_dop_method
  - oidc_cfg_provider_dpop_mode_int_set
  - oidc_cfg_provider_dpop_mode_set
  - oidc_cmd_provider_dpop_mode_set
  - oidc_cfg_provider_parse_cert_bound_tokens
  - oidc_cfg_provider_dpop_supported_int_set
  - oidc_cfg_provider_response_type_is_set
  - oidc_cfg_provider_parse_auth_request_method
  - oidc_cfg_provider_parse_userinfo_token_method
  - oidc_cfg_provider_session_max_duration_set
  - oidc_cmd_provider_session_max_duration_set
  - oidc_cfg_provider_jwks_uri_refresh_interval_set
  - oidc_cmd_provider_jwks_uri_refresh_interval_set
  - oidc_cfg_jwks_uri_refresh_interval_get
  - oidc_cfg_provider_jwks_uri_refresh_interval_get
  - oidc_cfg_provider_jwks_uri_get
  - oidc_cfg_provider_jwks_uri_uri_get
  - oidc_cfg_provider_jwks_uri_set
  - oidc_cmd_provider_jwks_uri_set
  - oidc_cfg_provider_signed_jwks_uri_get
  - oidc_cfg_provider_signed_jwks_uri_keys_get
  - oidc_cfg_provider_signed_jwks_uri_keys_set
  - oidc_cfg_provider_signed_jwks_uri_set
  - oidc_cmd_provider_signed_jwks_uri_set
  - oidc_cfg_provider_token_endpoint_auth_set
  - oidc_cmd_provider_token_endpoint_auth_set
  - oidc_cfg_provider_token_endpoint_auth_get
  - oidc_cfg_provider_token_endpoint_auth_alg_get
  - oidc_cfg_provider_userinfo_refresh_interval_set
  - oidc_cmd_provider_userinfo_refresh_interval_set
  - oidc_cfg_provider_userinfo_refresh_interval_get
  - oidc_cfg_provider_parse_profile
  - oidc_cfg_provider_init
  - oidc_cfg_provider_merge
  - oidc_cfg_provider_create
  - oidc_cfg_provider_copy
  - oidc_cfg_provider_destroy
  source_file: /src/mod_auth_openidc/src/cfg/provider.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_DEFAULT_PROVIDER_PKCE
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '&oidc_pkce_s256'
    - item_type: preproc_def
      name: OIDC_DPOP_MODE_OFF_STR
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"off"'
    - item_type: preproc_def
      name: OIDC_DPOP_MODE_OPTIONAL_STR
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"optional"'
    - item_type: preproc_def
      name: OIDC_DPOP_MODE_REQUIRED_STR
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"required"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_DPOP_MODE
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: OIDC_DPOP_MODE_OFF
    - item_type: preproc_def
      name: OIDC_CERT_BOUND_TOKENS_OFF_STR
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"off"'
    - item_type: preproc_def
      name: OIDC_CERT_BOUND_TOKENS_AUTO_STR
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"auto"'
    - item_type: preproc_def
      name: OIDC_CERT_BOUND_TOKENS_ON_STR
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"on"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_CERT_BOUND_TOKENS
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: OIDC_CERT_BOUND_TOKENS_AUTO
    - item_type: preproc_def
      name: OIDC_DEFAULT_SSL_VALIDATE_SERVER
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_DEFAULT_VALIDATE_ISSUER
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_DEFAULT_PROVIDER_RESPONSE_REQUIRE_ISS
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_DEFAULT_RESPONSE_TYPE
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: OIDC_PROTO_CODE
    - item_type: preproc_def
      name: OIDC_AUTH_REQUEST_METHOD_GET_STR
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"GET"'
    - item_type: preproc_def
      name: OIDC_AUTH_REQUEST_METHOD_POST_STR
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"POST"'
    - item_type: preproc_def
      name: OIDC_AUTH_REQUEST_METHOD_PAR_STR
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"PAR"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_AUTH_REQUEST_METHOD
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: OIDC_AUTH_REQUEST_METHOD_GET
    - item_type: preproc_def
      name: OIDC_USER_INFO_TOKEN_METHOD_HEADER_STR
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"authz_header"'
    - item_type: preproc_def
      name: OIDC_USER_INFO_TOKEN_METHOD_POST_STR
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"post_param"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_USER_INFO_TOKEN_METHOD
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: OIDC_USER_INFO_TOKEN_METHOD_HEADER
    - item_type: preproc_def
      name: OIDC_IDTOKEN_IAT_SLACK_MIN
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_IDTOKEN_IAT_SLACK_MAX
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '3600'
    - item_type: preproc_def
      name: OIDC_DEFAULT_IDTOKEN_IAT_SLACK
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '600'
    - item_type: preproc_def
      name: OIDC_SESSION_MAX_DURATION_MIN
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '15'
    - item_type: preproc_def
      name: OIDC_SESSION_MAX_DURATION_MAX
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: (3600 * 24 * 365)
    - item_type: preproc_def
      name: OIDC_DEFAULT_SESSION_MAX_DURATION
      pos:
        line_end: 530
        line_start: 529
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: (3600 * 8)
    - item_type: preproc_def
      name: OIDC_JWKS_REFRESH_INTERVAL_MIN
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '300'
    - item_type: preproc_def
      name: OIDC_JWKS_REFRESH_INTERVAL_MAX
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: (3600 * 24 * 365)
    - item_type: preproc_def
      name: OIDC_DEFAULT_JWKS_REFRESH_INTERVAL
      pos:
        line_end: 557
        line_start: 556
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '3600'
    - item_type: preproc_def
      name: OIDC_USERINFO_REFRESH_INTERVAL_MIN
      pos:
        line_end: 712
        line_start: 711
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_USERINFO_REFRESH_INTERVAL_MAX
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: (3600 * 24 * 365)
    - item_type: preproc_def
      name: OIDC_DEFAULT_USERINFO_REFRESH_INTERVAL
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: OIDC_PROFILE_OIDC10_STR
      pos:
        line_end: 749
        line_start: 748
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"OIDC10"'
    - item_type: preproc_def
      name: OIDC_PROFILE_FAPI20_STR
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: '"FAPI20"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_PROFILE
      pos:
        line_end: 757
        line_start: 756
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
      type_or_value: OIDC_PROFILE_OIDC10
    structs:
    - fields:
      - name: jwks_uri
        type: oidc_jwks_uri_t
      - name: '*verify_public_keys'
        type: apr_array_header_t
      - name: '*client_keys'
        type: apr_array_header_t
      item_type: struct
      name: oidc_provider_t
      pos:
        line_end: 116
        line_start: 109
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
    - fields:
      - name: '*str'
        type: char
      - name: '*method'
        type: oidc_proto_pkce_t
      item_type: struct
      name: "options[] = {{OIDC_PKCE_METHOD_PLAIN, &oidc_pkce_plain},\n\t\t       {OIDC_PKCE_METHOD_S256,
        &oidc_pkce_s256},\n\t\t       {OIDC_PKCE_METHOD_NONE, &oidc_pkce_none},\n\t\t
        \      {NULL, NULL}}"
      pos:
        line_end: 322
        line_start: 319
        source_file: /src/mod_auth_openidc/src/cfg/provider.c
    typedefs: []
    union: []
- function_names:
  - OIDC_CFG_CMD_DEF
  - OIDC_CFG_CMD
  - OIDC_CFG_CMD_PROVIDER
  - OIDC_CFG_CMD_OAUTH
  - OIDC_CFG_CMD_DIR
  source_file: /src/mod_auth_openidc/src/cfg/cmds.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OIDC_CMD_PROVIDER_MEMBER_FUNC_DECL
  - OIDC_CFG_PROVIDER_MEMBER_FUNC_SET_DECL
  - OIDC_CFG_PROVIDER_MEMBER_FUNC_GET_DECL
  - OIDC_CFG_PROVIDER_MEMBER_FUNCS_STR_DECL
  - OIDC_CFG_PROVIDER_MEMBER_FUNCS_TYPE_DECL
  - OIDC_CFG_PROVIDER_MEMBER_FUNCS_INT_DECL
  - OIDC_CFG_PROVIDER_MEMBER_FUNCS_KEYS_DECL
  - OIDC_CFG_PROVIDER_MEMBER_FUNCS_INT_INT_DECL
  - OIDC_CFG_PROVIDER_MEMBER_FUNCS_STR_LIST_DECL
  source_file: /src/mod_auth_openidc/src/cfg/provider.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_PKCE_METHOD_PLAIN
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type_or_value: '"plain"'
    - item_type: preproc_def
      name: OIDC_PKCE_METHOD_S256
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type_or_value: '"S256"'
    - item_type: preproc_def
      name: OIDC_PKCE_METHOD_NONE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type_or_value: '"none"'
    - item_type: preproc_def
      name: OIDC_ENDPOINT_AUTH_CLIENT_SECRET_BASIC
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type_or_value: '"client_secret_basic"'
    - item_type: preproc_def
      name: OIDC_ENDPOINT_AUTH_CLIENT_SECRET_POST
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type_or_value: '"client_secret_post"'
    - item_type: preproc_def
      name: OIDC_ENDPOINT_AUTH_CLIENT_SECRET_JWT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type_or_value: '"client_secret_jwt"'
    - item_type: preproc_def
      name: OIDC_ENDPOINT_AUTH_PRIVATE_KEY_JWT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type_or_value: '"private_key_jwt"'
    - item_type: preproc_def
      name: OIDC_ENDPOINT_AUTH_BEARER_ACCESS_TOKEN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type_or_value: '"bearer_access_token"'
    - item_type: preproc_def
      name: OIDC_ENDPOINT_AUTH_NONE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type_or_value: '"none"'
    - item_type: preproc_def
      name: OIDC_ENDPOINT_AUTH_TLS_CLIENT_AUTH
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type_or_value: '"tls_client_auth"'
    - item_type: preproc_def
      name: OIDC_ENDPOINT_AUTH_SELF_SIGNED_TLS_CLIENT_AUTH
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type_or_value: '"self_signed_tls_client_auth"'
    structs:
    - fields:
      - name: '*method'
        type: char
      - name: state
        type: oidc_proto_pkce_state
      - name: verifier
        type: oidc_proto_pkce_verifier
      - name: challenge
        type: oidc_proto_pkce_challenge
      item_type: struct
      name: oidc_proto_pkce_t
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
    - fields:
      - name: '*uri'
        type: char
      - name: refresh_interval
        type: int
      - name: '*signed_uri'
        type: char
      - name: '*jwk_list'
        type: apr_array_header_t
      item_type: struct
      name: oidc_jwks_uri_t
      pos:
        line_end: 106
        line_start: 101
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
    typedefs:
    - item_type: typedef
      name: (*oidc_proto_pkce_state)(request_rec *r, char **state)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type: apr_byte_t
    - item_type: typedef
      name: (*oidc_proto_pkce_challenge)(request_rec *r, const char *state, char **code_challenge)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type: apr_byte_t
    - item_type: typedef
      name: (*oidc_proto_pkce_verifier)(request_rec *r, const char *state, char **code_verifier)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/mod_auth_openidc/src/cfg/provider.h
      type: apr_byte_t
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/cfg/check.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _oidc_cfg_merge_ptr
  - _oidc_cfg_merge_pos_int
  - _oidc_cfg_merge_timeout
  - OIDC_CACHE_CFG_MEMCACHE_MEMBERS
  - OIDC_CACHE_CFG_REDIS_MEMBERS
  - OIDC_CACHE_CFG_SIMPLE_MEMBERS
  - OIDC_CACHE_M_DECL
  - OIDC_CACHE_M_DECL_TIMEOUT
  - OIDC_SVR_CFG_SIMPLE_MEMBERS
  - OIDC_SVR_M_DECL_PTR
  - OIDC_SVR_M_DECL_INT
  - OIDC_CONFIG_DIR_RV
  - OIDC_CFG_MEMBER_FUNC_GET
  - OIDC_CFG_MEMBER_FUNC_SET
  - OIDC_CFG_MEMBER_FUNCS_TYPE
  - OIDC_CFG_MEMBER_FUNC_TYPE_GET
  - OIDC_CFG_MEMBER_FUNCS_INT_EXT
  - OIDC_CFG_MEMBER_FUNCS_INT
  - OIDC_CFG_MEMBER_FUNCS_BOOL
  - OIDC_CFG_MEMBER_FUNCS_STR_DEF
  - OIDC_CFG_MEMBER_FUNCS_URL
  source_file: /src/mod_auth_openidc/src/cfg/cfg_int.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*svr'
        type: server_rec
      - name: crypto_passphrase
        type: oidc_crypto_passphrase_t
      - name: cache
        type: struct oidc_cfg_cache_t
      - name: '*provider'
        type: oidc_provider_t
      - name: '*oauth'
        type: oidc_oauth_t
      - name: http_timeout_long
        type: oidc_http_timeout_t
      - name: http_timeout_short
        type: oidc_http_timeout_t
      - name: outgoing_proxy
        type: oidc_http_outgoing_proxy_t
      - name: remote_user_claim
        type: oidc_remote_user_claim_t
      - name: '*public_keys'
        type: apr_array_header_t
      - name: '*private_keys'
        type: apr_array_header_t
      - name: '*black_listed_claims'
        type: apr_hash_t
      - name: '*white_listed_claims'
        type: apr_hash_t
      - name: '*filter_claims_expr'
        type: oidc_apr_expr_t
      - name: '*info_hook_data'
        type: apr_hash_t
      - name: '*redirect_urls_allowed'
        type: apr_hash_t
      - name: '*discover_issuers_allowed'
        type: apr_hash_t
      - name: '*metrics_hook_data'
        type: apr_hash_t
      - name: merged
        type: unsigned int
      - name: redirect_uri_inherited
        type: unsigned int
      item_type: struct
      name: oidc_cfg_t
      pos:
        line_end: 225
        line_start: 184
        source_file: /src/mod_auth_openidc/src/cfg/cfg_int.h
    typedefs: []
    union: []
- function_names:
  - oidc_cfg_parse_options_flatten
  - oidc_cfg_parse_string_options_flatten
  - oidc_cfg_parse_is_valid_option
  - oidc_cfg_parse_option_impl
  - oidc_cfg_parse_option
  - oidc_cfg_parse_option_ignore_case
  - oidc_cfg_parse_is_valid_int
  - oidc_cfg_parse_boolean
  - oidc_cfg_parse_int
  - oidc_cfg_parse_int_min_max
  - oidc_cfg_parse_int_min_max_or_zero
  - oidc_cfg_parse_timeout_min_max
  - oidc_cfg_parse_is_valid_url_scheme
  - oidc_cfg_parse_is_valid_url
  - oidc_cfg_parse_is_valid_http_url
  - oidc_cfg_parse_io_error
  - oidc_cfg_parse_dirname
  - oidc_cfg_parse_filename
  - oidc_cfg_parse_relative_or_absolute_url
  - oidc_cfg_parse_is_valid_response_type
  - oidc_cfg_parse_is_valid_response_mode
  - oidc_cfg_parse_is_valid_signed_response_alg
  - oidc_cfg_parse_is_valid_encrypted_response_alg
  - oidc_cfg_parse_is_valid_encrypted_response_enc
  - oidc_cfg_parse_base64url
  - oidc_cfg_parse_hex
  - oidc_cfg_parse_key_value
  - oidc_cfg_parse_key_alg_is_known
  - oidc_cfg_parse_key_alg_prefix
  - oidc_cfg_parse_key_record
  - oidc_cfg_parse_action_on_error_refresh_as
  - oidc_cfg_parse_passphrase
  - oidc_cfg_parse_pem_key
  - oidc_cfg_parse_key_files
  - oidc_cfg_parse_public_key_files
  - oidc_cfg_parse_private_key_files
  - oidc_parse_remote_user_claim
  - oidc_cfg_parse_http_timeout
  source_file: /src/mod_auth_openidc/src/cfg/parse.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_LIST_OPTIONS_START
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"["'
    - item_type: preproc_def
      name: OIDC_LIST_OPTIONS_END
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"]"'
    - item_type: preproc_def
      name: OIDC_LIST_OPTIONS_SEPARATOR
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"|"'
    - item_type: preproc_def
      name: OIDC_LIST_OPTIONS_QUOTE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"''"'
    - item_type: preproc_def
      name: OIDC_CFG_PARSE_STR_ERROR_MAX
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '128'
    - item_type: preproc_def
      name: OIDC_KEY_ENCODING_BASE64
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"b64"'
    - item_type: preproc_def
      name: OIDC_KEY_ENCODING_BASE64_URL
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"b64url"'
    - item_type: preproc_def
      name: OIDC_KEY_ENCODING_HEX
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"hex"'
    - item_type: preproc_def
      name: OIDC_KEY_ENCODING_PLAIN
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"plain"'
    - item_type: preproc_def
      name: OIDC_KEY_TUPLE_SEPARATOR
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"#"'
    - item_type: preproc_def
      name: OIDC_KEY_SIG_PREFIX
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: OIDC_JOSE_JWK_SIG_STR ":"
    - item_type: preproc_def
      name: OIDC_KEY_ENC_PREFIX
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: OIDC_JOSE_JWK_ENC_STR ":"
    - item_type: preproc_def
      name: OIDC_KEY_ALG_SEPARATOR
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: OIDC_STR_AT
    - item_type: preproc_def
      name: OIDC_KEY_ALG_LIST_SEPARATOR
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"+"'
    - item_type: preproc_def
      name: OIDC_ON_ERROR_502_STR
      pos:
        line_end: 597
        line_start: 596
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"502_on_error"'
    - item_type: preproc_def
      name: OIDC_ON_ERROR_LOGOUT_STR
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"logout_on_error"'
    - item_type: preproc_def
      name: OIDC_ON_ERROR_AUTH_STR
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/mod_auth_openidc/src/cfg/parse.c
      type_or_value: '"authenticate_on_error"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - OIDC_OAUTH_CFG_SIMPLE_MEMBERS
  - OIDC_OAUTH_M_DECL_PTR
  - OIDC_OAUTH_M_DECL_INT
  - OIDC_OAUTH_M_CREATE_PTR
  - OIDC_OAUTH_M_CREATE_INT
  - OIDC_OAUTH_M_MERGE_PTR
  - OIDC_OAUTH_M_MERGE_INT
  - OIDC_OAUTH_MEMBER_FUNC_GET
  - OIDC_OAUTH_MEMBER_FUNCS_TYPE
  - OIDC_OAUTH_MEMBER_FUNCS_INT
  - OIDC_OAUTH_MEMBER_FUNCS_BOOL
  - OIDC_OAUTH_MEMBER_FUNCS_KEYS
  - OIDC_OAUTH_MEMBER_FUNCS_STR_LIST
  - OIDC_OAUTH_MEMBER_FUNCS_STR
  - OIDC_OAUTH_MEMBER_FUNCS_URL
  - OIDC_OAUTH_MEMBER_FUNC_STR_GET_DEF
  - OIDC_OAUTH_MEMBER_FUNCS_FILE
  - OIDC_OAUTH_MEMBER_FUNCS_PASSPHRASE
  - OIDC_OAUTH_MEMBER_FUNCS_STR_VALID
  - oidc_cfg_oauth_introspection_endpoint_auth_set
  - oidc_cmd_oauth_introspection_endpoint_auth_set
  - oidc_cfg_oauth_introspection_endpoint_auth_get
  - oidc_cfg_oauth_introspection_endpoint_auth_alg_get
  - oidc_cfg_oauth_remote_user_claim_get
  - oidc_cfg_oauth_remote_user_claim_name_get
  - oidc_cmd_oauth_remote_user_claim_set
  - oidc_parse_introspection_endpoint_method
  - oidc_cmd_oauth_introspection_client_auth_bearer_token_set
  - oidc_cmd_oauth_token_expiry_claim_set
  - oidc_cmd_oauth_shared_keys_add
  - oidc_cmd_oauth_verify_shared_keys_set
  - oidc_cmd_oauth_decrypt_shared_keys_set
  - oidc_cfg_oauth_create
  - oidc_cfg_oauth_shallow_copy
  - oidc_cfg_oauth_merge
  - oidc_cfg_oauth_destroy
  source_file: /src/mod_auth_openidc/src/cfg/oauth.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_DEFAULT_OAUTH_SSL_VALIDATE_SERVER
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_DEFAULT_OAUTH_EXPIRY_CLAIM_NAME
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: OIDC_PROTO_EXPIRES_IN
    - item_type: preproc_def
      name: OIDC_DEFAULT_OAUTH_TOKEN_PARAM_NAME
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: '"token"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_OAUTH_CLAIM_REMOTE_USER
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: '"sub"'
    - item_type: preproc_def
      name: OIDC_INTROSPECTION_METHOD_GET_STR
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: '"GET"'
    - item_type: preproc_def
      name: OIDC_INTROSPECTION_METHOD_POST_STR
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: '"POST"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_OAUTH_ENDPOINT_METHOD
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: OIDC_INTROSPECTION_METHOD_POST
    - item_type: preproc_def
      name: OIDC_CLAIM_FORMAT_RELATIVE_STR
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: '"relative"'
    - item_type: preproc_def
      name: OIDC_CLAIM_FORMAT_ABSOLUTE_STR
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: '"absolute"'
    - item_type: preproc_def
      name: OIDC_CLAIM_REQUIRED_MANDATORY_STR
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: '"mandatory"'
    - item_type: preproc_def
      name: OIDC_CLAIM_REQUIRED_OPTIONAL_STR
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: '"optional"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_OAUTH_EXPIRY_CLAIM_FORMAT
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: OIDC_CLAIM_FORMAT_RELATIVE_STR
    - item_type: preproc_def
      name: OIDC_DEFAULT_OAUTH_EXPIRY_CLAIM_REQUIRED
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
      type_or_value: 'TRUE'
    structs:
    - fields:
      - name: '*verify_public_keys'
        type: apr_array_header_t
      - name: '*introspection_token_expiry_claim_name'
        type: char
      - name: introspection_token_expiry_claim_format
        type: oidc_oauth_introspection_token_expiry_claim_format_t
      - name: introspection_token_expiry_claim_required
        type: oidc_oauth_introspection_token_expiry_claim_required_t
      - name: remote_user_claim
        type: oidc_remote_user_claim_t
      item_type: struct
      name: oidc_oauth_t
      pos:
        line_end: 92
        line_start: 80
        source_file: /src/mod_auth_openidc/src/cfg/oauth.c
    typedefs: []
    union: []
- function_names:
  - OIDC_CACHE_CMDS_MEMCACHE
  - OIDC_CACHE_CMDS_REDIS
  source_file: /src/mod_auth_openidc/src/cfg/cache.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/cfg/parse.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: val
        type: int
      - name: '*str'
        type: char
      item_type: struct
      name: oidc_cfg_option_t
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/mod_auth_openidc/src/cfg/parse.h
    typedefs:
    - item_type: typedef
      name: '*(*oidc_valid_function_t)(apr_pool_t *, const char *)'
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/mod_auth_openidc/src/cfg/parse.h
      type: char
    union: []
- function_names:
  - OIDC_CMD_DIR_MEMBER_FUNC_DECL
  - OIDC_CFG_DIR_MEMBER_FUNC_GET_DECL
  - OIDC_CFG_DIR_MEMBER_FUNCS
  source_file: /src/mod_auth_openidc/src/cfg/dir.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_OAUTH_ACCEPT_TOKEN_IN_OPTION_COOKIE_NAME
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/mod_auth_openidc/src/cfg/dir.h
      type_or_value: '"cookie-name"'
    structs: []
    typedefs:
    - item_type: typedef
      name: oidc_dir_cfg_t
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/mod_auth_openidc/src/cfg/dir.h
      type: oidc_dir_cfg_t
    union: []
- function_names:
  - oidc_cfg_string_list_add
  - OIDC_CFG_MEMBER_FUNCS_HTTP_TIMEOUT
  - oidc_cmd_crypto_passphrase_set
  - oidc_cfg_crypto_passphrase_get
  - oidc_cfg_crypto_passphrase_secret1_get
  - oidc_cfg_crypto_passphrase_secret1_set
  - oidc_cfg_crypto_passphrase_secret2_get
  - oidc_crypto_passphrase_derive_keys
  - oidc_cfg_crypto_passphrase_derive_keys
  - oidc_crypto_passphrase_derive_keys_cached
  - oidc_cfg_crypto_passphrase_derive_keys_cached
  - oidc_cmd_outgoing_proxy_set
  - oidc_cfg_outgoing_proxy_get
  - oidc_cfg_valid_cookie_domain
  - oidc_cmd_session_type_set
  - oidc_valid_endpoint_auth_method_impl
  - oidc_valid_private_key_jwt_alg
  - oidc_cfg_endpoint_auth_parse
  - oidc_cfg_valid_endpoint_auth_method_alg
  - oidc_cfg_valid_endpoint_auth_method_with_private_key
  - oidc_cfg_valid_endpoint_auth_method_no_private_key
  - oidc_cfg_valid_endpoint_auth_method_no_mtls_with_private_key
  - oidc_cfg_valid_endpoint_auth_method_no_mtls_no_private_key
  - oidc_cfg_endpoint_auth_set
  - oidc_cfg_endpoint_auth_is_mtls
  - oidc_cfg_get_valid_endpoint_auth_function
  - oidc_cmd_public_keys_set
  - oidc_cmd_private_keys_set
  - oidc_cmd_remote_user_claim_set
  - oidc_cfg_remote_user_claim_get
  - oidc_cfg_remote_user_claim_name_get
  - oidc_cmd_filter_claims_expr_set
  - oidc_cmd_info_hook_data_set
  - oidc_cmd_metrics_hook_data_set
  - oidc_cmd_trace_parent_set
  - oidc_cmd_claim_prefix_set
  - oidc_cfg_claim_prefix_get
  - oidc_cmd_max_number_of_state_cookies_set
  - oidc_cmd_x_forwarded_headers_set
  - oidc_check_x_forwarded_hdr
  - oidc_cfg_x_forwarded_headers_check
  - oidc_cmd_state_input_headers_set
  - oidc_cmd_post_preserve_templates_set
  - oidc_cmd_ca_bundle_path_set
  - oidc_cmd_metadata_dir_set
  - oidc_cmd_cookie_same_site_session_set
  - OIDC_CFG_MEMBER_FUNCS_HASHTABLE
  - OIDC_CFG_MEMBER_FUNCS_ABS_OR_REL_URI
  - oidc_cfg_server_destroy
  - oidc_cfg_server_cleanup
  - oidc_cfg_server_alloc
  - OIDC_SVR_M_CREATE_PTR
  - OIDC_SVR_M_CREATE_INT
  - OIDC_SVR_M_MERGE_PTR
  - OIDC_SVR_M_MERGE_INT
  - oidc_cfg_server_create
  - _oidc_cfg_merge_http_timeout
  - _oidc_cfg_merge_remote_user_claim
  - _oidc_cfg_merge_outgoing_proxy
  - _oidc_cfg_merge_crypto_passphrase
  - oidc_cfg_server_merge
  - oidc_cfg_request_view
  - oidc_pre_config_init
  - oidc_cfg_provider_get
  - oidc_cfg_merged_get
  - oidc_cfg_redirect_uri_inherited_get
  - oidc_cfg_refresh_mutex_get
  - oidc_cfg_post_config
  - oidc_cfg_child_init
  - oidc_cfg_process_cleanup
  source_file: /src/mod_auth_openidc/src/cfg/cfg.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_DEFAULT_ACTION_ON_USERINFO_ERROR
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: OIDC_ON_ERROR_502
    - item_type: preproc_def
      name: OIDC_DEFAULT_HTTP_REQUEST_TIMEOUT_LONG
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '30'
    - item_type: preproc_def
      name: OIDC_DEFAULT_HTTP_CONNECT_TIMEOUT_LONG
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '10'
    - item_type: preproc_def
      name: OIDC_DEFAULT_HTTP_RETRIES_LONG
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_DEFAULT_HTTP_RETRY_INTERVAL_LONG
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '500'
    - item_type: preproc_def
      name: OIDC_DEFAULT_HTTP_REQUEST_TIMEOUT_SHORT
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '5'
    - item_type: preproc_def
      name: OIDC_DEFAULT_HTTP_CONNECT_TIMEOUT_SHORT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '2'
    - item_type: preproc_def
      name: OIDC_DEFAULT_HTTP_RETRIES_SHORT
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_DEFAULT_HTTP_RETRY_INTERVAL_SHORT
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '300'
    - item_type: preproc_def
      name: OIDC_SESSION_TYPE_SERVER_CACHE_STR
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"server-cache"'
    - item_type: preproc_def
      name: OIDC_SESSION_TYPE_CLIENT_COOKIE_STR
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"client-cookie"'
    - item_type: preproc_def
      name: OIDC_SESSION_TYPE_PERSISTENT
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"persistent"'
    - item_type: preproc_def
      name: OIDC_SESSION_TYPE_STORE_ID_TOKEN
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"store_id_token"'
    - item_type: preproc_def
      name: OIDC_SESSION_TYPE_SEPARATOR
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '":"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_SESSION_TYPE
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: OIDC_SESSION_TYPE_SERVER_CACHE
    - item_type: preproc_def
      name: OIDC_DEFAULT_PERSISTENT_SESSION_COOKIE
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_DEFAULT_STORE_ID_TOKEN
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_ENDPOINT_AUTH_METHOD_SEPARATOR
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '":"'
    - item_type: preproc_def
      name: OIDC_SESSION_INACTIVITY_TIMEOUT_MIN
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '10'
    - item_type: preproc_def
      name: OIDC_SESSION_INACTIVITY_TIMEOUT_MAX
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: (3600 * 24 * 365)
    - item_type: preproc_def
      name: OIDC_DEFAULT_SESSION_INACTIVITY_TIMEOUT
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '300'
    - item_type: preproc_def
      name: OIDC_DEFAULT_CLAIM_REMOTE_USER
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"sub@"'
    - item_type: preproc_def
      name: OIDC_TRACE_PARENT_OFF_STR
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"off"'
    - item_type: preproc_def
      name: OIDC_TRACE_PARENT_PROPAGATE_STR
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"propagate"'
    - item_type: preproc_def
      name: OIDC_TRACE_PARENT_GENERATE_STR
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"generate"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_TRACE_PARENT
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: OIDC_TRACE_PARENT_OFF
    - item_type: preproc_def
      name: OIDC_DEFAULT_DPOP_API_ENABLED
      pos:
        line_end: 525
        line_start: 524
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_DEFAULT_CLAIM_PREFIX
      pos:
        line_end: 538
        line_start: 537
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"OIDC_CLAIM_"'
    - item_type: preproc_def
      name: OIDC_MAX_NUMBER_OF_STATE_COOKIES_MIN
      pos:
        line_end: 544
        line_start: 543
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_MAX_NUMBER_OF_STATE_COOKIES_MAX
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '255'
    - item_type: preproc_def
      name: OIDC_DEFAULT_MAX_NUMBER_OF_STATE_COOKIES
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '7'
    - item_type: preproc_def
      name: OIDC_DEFAULT_DELETE_OLDEST_STATE_COOKIES
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_DEFAULT_X_FORWARDED_HEADERS
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: OIDC_HDR_NONE
    - item_type: preproc_def
      name: OIDC_CHECK_X_FORWARDED_HDR_LOG_DISABLE
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"OIDC_CHECK_X_FORWARDED_HDR_LOG_DISABLE"'
    - item_type: preproc_def
      name: OIDC_STATE_INPUT_HEADERS_AS_NONE
      pos:
        line_end: 613
        line_start: 612
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"none"'
    - item_type: preproc_def
      name: OIDC_STATE_INPUT_HEADERS_AS_USER_AGENT
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"user-agent"'
    - item_type: preproc_def
      name: OIDC_STATE_INPUT_HEADERS_AS_X_FORWARDED_FOR
      pos:
        line_end: 615
        line_start: 614
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"x-forwarded-for"'
    - item_type: preproc_def
      name: OIDC_STATE_INPUT_HEADERS_AS_BOTH
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"both"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_STATE_INPUT_HEADERS
      pos:
        line_end: 634
        line_start: 633
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: OIDC_STATE_INPUT_HEADERS_USER_AGENT
    - item_type: preproc_def
      name: OIDC_DEFAULT_COOKIE_HTTPONLY
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_SAMESITE_COOKIE_OFF_STR
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"Off"'
    - item_type: preproc_def
      name: OIDC_SAMESITE_COOKIE_ON_STR
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"On"'
    - item_type: preproc_def
      name: OIDC_SAMESITE_COOKIE_DISABLED_STR
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"Disabled"'
    - item_type: preproc_def
      name: OIDC_SAMESITE_COOKIE_NONE_STR
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"None"'
    - item_type: preproc_def
      name: OIDC_SAMESITE_COOKIE_LAX_STR
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"Lax"'
    - item_type: preproc_def
      name: OIDC_SAMESITE_COOKIE_STRICT_STR
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"Strict"'
    - item_type: preproc_def
      name: OIDC_DEFAULT_COOKIE_SAME_SITE
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: OIDC_SAMESITE_COOKIE_LAX
    - item_type: preproc_def
      name: OIDC_DEFAULT_COOKIE_SAME_SITE_STATE
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: oidc_cfg_cookie_same_site_session_get(cfg)
    - item_type: preproc_def
      name: OIDC_DEFAULT_COOKIE_SAME_SITE_CSRF_DISCOVERY
      pos:
        line_end: 717
        line_start: 716
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: oidc_cfg_cookie_same_site_session_get(cfg)
    - item_type: preproc_def
      name: OIDC_DEFAULT_SESSION_FALLBACK_TO_COOKIE
      pos:
        line_end: 721
        line_start: 720
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_DEFAULT_DEBUG_MASK_SECRETS
      pos:
        line_end: 725
        line_start: 724
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_DEFAULT_CLAIM_DELIMITER
      pos:
        line_end: 728
        line_start: 727
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '","'
    - item_type: preproc_def
      name: OIDC_DEFAULT_LOGOUT_X_FRAME_OPTIONS
      pos:
        line_end: 733
        line_start: 732
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '"DENY"'
    - item_type: preproc_def
      name: OIDC_STATE_TIMEOUT_MIN
      pos:
        line_end: 736
        line_start: 735
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_STATE_TIMEOUT_MAX
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: (3600 * 24 * 30)
    - item_type: preproc_def
      name: OIDC_DEFAULT_STATE_TIMEOUT
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '300'
    - item_type: preproc_def
      name: OIDC_SESSION_CLIENT_COOKIE_CHUNK_SIZE_MIN
      pos:
        line_end: 742
        line_start: 741
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '256'
    - item_type: preproc_def
      name: OIDC_SESSION_CLIENT_COOKIE_CHUNK_SIZE_MAX
      pos:
        line_end: 743
        line_start: 742
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: (1024 * 64)
    - item_type: preproc_def
      name: OIDC_DEFAULT_SESSION_CLIENT_COOKIE_CHUNK_SIZE
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '4000'
    - item_type: preproc_def
      name: OIDC_PROVIDER_METADATA_REFRESH_INTERVAL_MIN
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '30'
    - item_type: preproc_def
      name: OIDC_PROVIDER_METADATA_REFRESH_INTERVAL_MAX
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: (3600 * 24 * 365)
    - item_type: preproc_def
      name: OIDC_DEFAULT_PROVIDER_METADATA_REFRESH_INTERVAL
      pos:
        line_end: 756
        line_start: 755
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*cfg'
        type: oidc_cfg_t
      - name: '*pool'
        type: apr_pool_t
      - name: '*svr'
        type: server_rec
      item_type: struct
      name: oidc_cfg_cleanup_ctx_t
      pos:
        line_end: 795
        line_start: 791
        source_file: /src/mod_auth_openidc/src/cfg/cfg.c
    typedefs: []
    union: []
- function_names:
  - OIDC_CFG_OAUTH_MEMBER_FUNC_GET_DECL
  - OIDC_CMD_OAUTH_MEMBER_FUNC_DECL
  - OIDC_CFG_OAUTH_MEMBER_FUNCS_DECL
  - OIDC_CFG_OAUTH_MEMBER_FUNC_SET_DECL
  source_file: /src/mod_auth_openidc/src/cfg/oauth.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: oidc_oauth_t
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/mod_auth_openidc/src/cfg/oauth.h
      type: oidc_oauth_t
    union: []
- function_names:
  - oidc_check_config_vhost
  - oidc_check_serror
  - oidc_check_swarn
  - oidc_check_config_error
  - oidc_check_config_openid_openidc_provider
  - oidc_check_config_openid_openidc_cookie_domain
  - oidc_check_config_openid_openidc
  - oidc_check_config_oauth
  - oidc_config_ensure_crypto_passphrase
  - oidc_config_check_vhost_config
  - oidc_config_check_merged_vhost_configs
  - oidc_config_merged_vhost_configs_exist
  - oidc_cfg_check_vhosts
  source_file: /src/mod_auth_openidc/src/cfg/check.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/cfg/directives.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDCPublicKeyFiles
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPublicKeyFiles"'
    - item_type: preproc_def
      name: OIDCDefaultLoggedOutURL
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCDefaultLoggedOutURL"'
    - item_type: preproc_def
      name: OIDCCookieHTTPOnly
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCookieHTTPOnly"'
    - item_type: preproc_def
      name: OIDCCookieSameSite
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCookieSameSite"'
    - item_type: preproc_def
      name: OIDCOutgoingProxy
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOutgoingProxy"'
    - item_type: preproc_def
      name: OIDCClaimDelimiter
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCClaimDelimiter"'
    - item_type: preproc_def
      name: OIDCHTTPTimeoutLong
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCHTTPTimeoutLong"'
    - item_type: preproc_def
      name: OIDCHTTPTimeoutShort
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCHTTPTimeoutShort"'
    - item_type: preproc_def
      name: OIDCStateTimeout
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCStateTimeout"'
    - item_type: preproc_def
      name: OIDCStateMaxNumberOfCookies
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCStateMaxNumberOfCookies"'
    - item_type: preproc_def
      name: OIDCSessionInactivityTimeout
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCSessionInactivityTimeout"'
    - item_type: preproc_def
      name: OIDCMetadataDir
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCMetadataDir"'
    - item_type: preproc_def
      name: OIDCSessionCacheFallbackToCookie
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCSessionCacheFallbackToCookie"'
    - item_type: preproc_def
      name: OIDCSessionCookieChunkSize
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCSessionCookieChunkSize"'
    - item_type: preproc_def
      name: OIDCPreservePostTemplates
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPreservePostTemplates"'
    - item_type: preproc_def
      name: OIDCProviderMetadataRefreshInterval
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderMetadataRefreshInterval"'
    - item_type: preproc_def
      name: OIDCBlackListedClaims
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCBlackListedClaims"'
    - item_type: preproc_def
      name: OIDCStateInputHeaders
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCStateInputHeaders"'
    - item_type: preproc_def
      name: OIDCRedirectURLsAllowed
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCRedirectURLsAllowed"'
    - item_type: preproc_def
      name: OIDCDiscoverIssuersAllowed
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCDiscoverIssuersAllowed"'
    - item_type: preproc_def
      name: OIDCCABundlePath
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCABundlePath"'
    - item_type: preproc_def
      name: OIDCLogoutXFrameOptions
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCLogoutXFrameOptions"'
    - item_type: preproc_def
      name: OIDCXForwardedHeaders
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCXForwardedHeaders"'
    - item_type: preproc_def
      name: OIDCFilterClaimsExpr
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCFilterClaimsExpr"'
    - item_type: preproc_def
      name: OIDCTraceParent
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCTraceParent"'
    - item_type: preproc_def
      name: OIDCDebugMaskSecrets
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCDebugMaskSecrets"'
    - item_type: preproc_def
      name: OIDCPrivateKeyFiles
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPrivateKeyFiles"'
    - item_type: preproc_def
      name: OIDCRedirectURI
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCRedirectURI"'
    - item_type: preproc_def
      name: OIDCDefaultURL
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCDefaultURL"'
    - item_type: preproc_def
      name: OIDCCookieDomain
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCookieDomain"'
    - item_type: preproc_def
      name: OIDCClaimPrefix
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCClaimPrefix"'
    - item_type: preproc_def
      name: OIDCRemoteUserClaim
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCRemoteUserClaim"'
    - item_type: preproc_def
      name: OIDCOAuthRemoteUserClaim
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthRemoteUserClaim"'
    - item_type: preproc_def
      name: OIDCSessionType
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCSessionType"'
    - item_type: preproc_def
      name: OIDCInfoHook
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCInfoHook"'
    - item_type: preproc_def
      name: OIDCMetricsData
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCMetricsData"'
    - item_type: preproc_def
      name: OIDCMetricsPublish
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCMetricsPublish"'
    - item_type: preproc_def
      name: OIDCWhiteListedClaims
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCWhiteListedClaims"'
    - item_type: preproc_def
      name: OIDCCryptoPassphrase
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCryptoPassphrase"'
    - item_type: preproc_def
      name: OIDCProviderMetadataURL
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderMetadataURL"'
    - item_type: preproc_def
      name: OIDCProviderIssuer
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderIssuer"'
    - item_type: preproc_def
      name: OIDCProviderAuthorizationEndpoint
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderAuthorizationEndpoint"'
    - item_type: preproc_def
      name: OIDCProviderTokenEndpoint
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderTokenEndpoint"'
    - item_type: preproc_def
      name: OIDCProviderTokenEndpointAuth
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderTokenEndpointAuth"'
    - item_type: preproc_def
      name: OIDCProviderTokenEndpointParams
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderTokenEndpointParams"'
    - item_type: preproc_def
      name: OIDCProviderRegistrationEndpointJson
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderRegistrationEndpointJson"'
    - item_type: preproc_def
      name: OIDCProviderUserInfoEndpoint
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderUserInfoEndpoint"'
    - item_type: preproc_def
      name: OIDCProviderRevocationEndpoint
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderRevocationEndpoint"'
    - item_type: preproc_def
      name: OIDCProviderPushedAuthorizationRequestEndpoint
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderPushedAuthorizationRequestEndpoint"'
    - item_type: preproc_def
      name: OIDCProviderCheckSessionIFrame
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderCheckSessionIFrame"'
    - item_type: preproc_def
      name: OIDCProviderEndSessionEndpoint
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderEndSessionEndpoint"'
    - item_type: preproc_def
      name: OIDCProviderBackChannelLogoutSupported
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderBackChannelLogoutSupported"'
    - item_type: preproc_def
      name: OIDCProviderJwksUri
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderJwksUri"'
    - item_type: preproc_def
      name: OIDCProviderSignedJwksUri
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderSignedJwksUri"'
    - item_type: preproc_def
      name: OIDCProviderVerifyCertFiles
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderVerifyCertFiles"'
    - item_type: preproc_def
      name: OIDCResponseType
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCResponseType"'
    - item_type: preproc_def
      name: OIDCProviderAuthRequestMethod
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProviderAuthRequestMethod"'
    - item_type: preproc_def
      name: OIDCProfile
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCProfile"'
    - item_type: preproc_def
      name: OIDCPKCEMethod
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPKCEMethod"'
    - item_type: preproc_def
      name: OIDCDPoPMode
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCDPoPMode"'
    - item_type: preproc_def
      name: OIDCCertBoundAccessTokens
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCertBoundAccessTokens"'
    - item_type: preproc_def
      name: OIDCResponseMode
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCResponseMode"'
    - item_type: preproc_def
      name: OIDCClientJwksUri
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCClientJwksUri"'
    - item_type: preproc_def
      name: OIDCIDTokenSignedResponseAlg
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCIDTokenSignedResponseAlg"'
    - item_type: preproc_def
      name: OIDCIDTokenEncryptedResponseAlg
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCIDTokenEncryptedResponseAlg"'
    - item_type: preproc_def
      name: OIDCIDTokenEncryptedResponseEnc
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCIDTokenEncryptedResponseEnc"'
    - item_type: preproc_def
      name: OIDCIDTokenAudValues
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCIDTokenAudValues"'
    - item_type: preproc_def
      name: OIDCUserInfoSignedResponseAlg
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCUserInfoSignedResponseAlg"'
    - item_type: preproc_def
      name: OIDCUserInfoEncryptedResponseAlg
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCUserInfoEncryptedResponseAlg"'
    - item_type: preproc_def
      name: OIDCUserInfoEncryptedResponseEnc
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCUserInfoEncryptedResponseEnc"'
    - item_type: preproc_def
      name: OIDCUserInfoTokenMethod
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCUserInfoTokenMethod"'
    - item_type: preproc_def
      name: OIDCSSLValidateServer
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCSSLValidateServer"'
    - item_type: preproc_def
      name: OIDCValidateIssuer
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCValidateIssuer"'
    - item_type: preproc_def
      name: OIDCClientName
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCClientName"'
    - item_type: preproc_def
      name: OIDCClientContact
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCClientContact"'
    - item_type: preproc_def
      name: OIDCScope
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCScope"'
    - item_type: preproc_def
      name: OIDCJWKSRefreshInterval
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCJWKSRefreshInterval"'
    - item_type: preproc_def
      name: OIDCIDTokenIatSlack
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCIDTokenIatSlack"'
    - item_type: preproc_def
      name: OIDCSessionMaxDuration
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCSessionMaxDuration"'
    - item_type: preproc_def
      name: OIDCAuthRequestParams
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCAuthRequestParams"'
    - item_type: preproc_def
      name: OIDCLogoutRequestParams
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCLogoutRequestParams"'
    - item_type: preproc_def
      name: OIDCClientID
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCClientID"'
    - item_type: preproc_def
      name: OIDCClientSecret
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCClientSecret"'
    - item_type: preproc_def
      name: OIDCClientTokenEndpointCert
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCClientTokenEndpointCert"'
    - item_type: preproc_def
      name: OIDCClientTokenEndpointKey
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCClientTokenEndpointKey"'
    - item_type: preproc_def
      name: OIDCClientTokenEndpointKeyPassword
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCClientTokenEndpointKeyPassword"'
    - item_type: preproc_def
      name: OIDCUserInfoRefreshInterval
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCUserInfoRefreshInterval"'
    - item_type: preproc_def
      name: OIDCRequestObject
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCRequestObject"'
    - item_type: preproc_def
      name: OIDCOAuthServerMetadataURL
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthServerMetadataURL"'
    - item_type: preproc_def
      name: OIDCOAuthClientID
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthClientID"'
    - item_type: preproc_def
      name: OIDCOAuthClientSecret
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthClientSecret"'
    - item_type: preproc_def
      name: OIDCOAuthIntrospectionClientAuthBearerToken
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthIntrospectionClientAuthBearerToken"'
    - item_type: preproc_def
      name: OIDCOAuthIntrospectionEndpoint
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthIntrospectionEndpoint"'
    - item_type: preproc_def
      name: OIDCOAuthIntrospectionEndpointMethod
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthIntrospectionEndpointMethod"'
    - item_type: preproc_def
      name: OIDCOAuthIntrospectionEndpointParams
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthIntrospectionEndpointParams"'
    - item_type: preproc_def
      name: OIDCOAuthIntrospectionEndpointAuth
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthIntrospectionEndpointAuth"'
    - item_type: preproc_def
      name: OIDCOAuthIntrospectionEndpointCert
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthIntrospectionEndpointCert"'
    - item_type: preproc_def
      name: OIDCOAuthIntrospectionEndpointKey
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthIntrospectionEndpointKey"'
    - item_type: preproc_def
      name: OIDCOAuthIntrospectionEndpointKeyPassword
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthIntrospectionEndpointKeyPassword"'
    - item_type: preproc_def
      name: OIDCOAuthIntrospectionTokenParamName
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthIntrospectionTokenParamName"'
    - item_type: preproc_def
      name: OIDCOAuthTokenExpiryClaim
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthTokenExpiryClaim"'
    - item_type: preproc_def
      name: OIDCOAuthSSLValidateServer
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthSSLValidateServer"'
    - item_type: preproc_def
      name: OIDCOAuthVerifyCertFiles
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthVerifyCertFiles"'
    - item_type: preproc_def
      name: OIDCOAuthVerifySharedKeys
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthVerifySharedKeys"'
    - item_type: preproc_def
      name: OIDCOAuthDecryptSharedKeys
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthDecryptSharedKeys"'
    - item_type: preproc_def
      name: OIDCOAuthVerifyJwksUri
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthVerifyJwksUri"'
    - item_type: preproc_def
      name: OIDCOAuthVerifyAudience
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthVerifyAudience"'
    - item_type: preproc_def
      name: OIDCOAuthVerifyIssuer
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthVerifyIssuer"'
    - item_type: preproc_def
      name: OIDCPathScope
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPathScope"'
    - item_type: preproc_def
      name: OIDCPathAuthRequestParams
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPathAuthRequestParams"'
    - item_type: preproc_def
      name: OIDCDiscoverURL
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCDiscoverURL"'
    - item_type: preproc_def
      name: OIDCPassCookies
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPassCookies"'
    - item_type: preproc_def
      name: OIDCStripCookies
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCStripCookies"'
    - item_type: preproc_def
      name: OIDCAuthNHeader
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCAuthNHeader"'
    - item_type: preproc_def
      name: OIDCCookie
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCookie"'
    - item_type: preproc_def
      name: OIDCUnAuthAction
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCUnAuthAction"'
    - item_type: preproc_def
      name: OIDCUnAutzAction
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCUnAutzAction"'
    - item_type: preproc_def
      name: OIDCPassClaimsAs
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPassClaimsAs"'
    - item_type: preproc_def
      name: OIDCOAuthAcceptTokenAs
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthAcceptTokenAs"'
    - item_type: preproc_def
      name: OIDCOAuthTokenIntrospectionInterval
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCOAuthTokenIntrospectionInterval"'
    - item_type: preproc_def
      name: OIDCPreservePost
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPreservePost"'
    - item_type: preproc_def
      name: OIDCPassAccessToken
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPassAccessToken"'
    - item_type: preproc_def
      name: OIDCPassRefreshToken
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPassRefreshToken"'
    - item_type: preproc_def
      name: OIDCRefreshAccessTokenBeforeExpiry
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCRefreshAccessTokenBeforeExpiry"'
    - item_type: preproc_def
      name: OIDCStateCookiePrefix
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCStateCookiePrefix"'
    - item_type: preproc_def
      name: OIDCPassIDTokenAs
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPassIDTokenAs"'
    - item_type: preproc_def
      name: OIDCPassUserInfoAs
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCPassUserInfoAs"'
    - item_type: preproc_def
      name: OIDCUserInfoClaimsExpr
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCUserInfoClaimsExpr"'
    - item_type: preproc_def
      name: OIDCCookiePath
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCookiePath"'
    - item_type: preproc_def
      name: OIDCCacheType
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCacheType"'
    - item_type: preproc_def
      name: OIDCCacheEncrypt
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCacheEncrypt"'
    - item_type: preproc_def
      name: OIDCCacheShmMax
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCacheShmMax"'
    - item_type: preproc_def
      name: OIDCCacheShmEntrySizeMax
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCacheShmEntrySizeMax"'
    - item_type: preproc_def
      name: OIDCCacheDir
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCacheDir"'
    - item_type: preproc_def
      name: OIDCCacheFileCleanInterval
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCCacheFileCleanInterval"'
    - item_type: preproc_def
      name: OIDCMemCacheServers
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCMemCacheServers"'
    - item_type: preproc_def
      name: OIDCMemCacheConnectionsMin
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCMemCacheConnectionsMin"'
    - item_type: preproc_def
      name: OIDCMemCacheConnectionsSMax
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCMemCacheConnectionsSMax"'
    - item_type: preproc_def
      name: OIDCMemCacheConnectionsHMax
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCMemCacheConnectionsHMax"'
    - item_type: preproc_def
      name: OIDCMemCacheConnectionsTTL
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCMemCacheConnectionsTTL"'
    - item_type: preproc_def
      name: OIDCRedisCacheServer
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCRedisCacheServer"'
    - item_type: preproc_def
      name: OIDCRedisCacheUsername
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCRedisCacheUsername"'
    - item_type: preproc_def
      name: OIDCRedisCachePassword
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCRedisCachePassword"'
    - item_type: preproc_def
      name: OIDCRedisCacheDatabase
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCRedisCacheDatabase"'
    - item_type: preproc_def
      name: OIDCRedisCacheConnectTimeout
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCRedisCacheConnectTimeout"'
    - item_type: preproc_def
      name: OIDCRedisCacheTimeout
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/mod_auth_openidc/src/cfg/directives.h
      type_or_value: '"OIDCRedisCacheTimeout"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - OIDC_CFG_OPTIONS_SIZE
  - OIDC_CMD_MEMBER_FUNC_DECL
  - OIDC_CFG_MEMBER_FUNC_GET_DECL
  - OIDC_CFG_MEMBER_FUNCS_DECL
  source_file: /src/mod_auth_openidc/src/cfg/cfg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_CONFIG_POS_INT_UNSET
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: OIDC_CONFIG_POS_TIMEOUT_UNSET
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: (apr_interval_time_t) - 2
    - item_type: preproc_def
      name: OIDC_ERROR_ENVVAR
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"OIDC_ERROR"'
    - item_type: preproc_def
      name: OIDC_ERROR_DESC_ENVVAR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"OIDC_ERROR_DESC"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_TIMESTAMP
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"iat"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_ACCES_TOKEN
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"access_token"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_ACCES_TOKEN_TYPE
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"access_token_type"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_ACCES_TOKEN_EXP
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"access_token_expires"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_ID_TOKEN_HINT
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"id_token_hint"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_ID_TOKEN
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"id_token"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_USER_INFO
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"userinfo"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_SESSION
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"session"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_SESSION_STATE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"state"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_SESSION_UUID
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"uuid"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_SESSION_EXP
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"exp"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_SESSION_TIMEOUT
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"timeout"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_SESSION_REMOTE_USER
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"remote_user"'
    - item_type: preproc_def
      name: OIDC_HOOK_INFO_REFRESH_TOKEN
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"refresh_token"'
    - item_type: preproc_def
      name: OIDC_HTML_ERROR_TEMPLATE_DEPRECATED
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '"deprecated"'
    - item_type: preproc_def
      name: OIDC_CRYPTO_PASSPHRASE_DERIVED_KEY_LEN
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type_or_value: '32'
    structs:
    - fields:
      - name: '*expr'
        type: ap_expr_info_t
      - name: '*str'
        type: char
      item_type: struct
      name: oidc_apr_expr_t
      pos:
        line_end: 110
        line_start: 107
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
    - fields:
      - name: '*secret1'
        type: char
      - name: '*secret2'
        type: char
      - name: derived_key1[OIDC_CRYPTO_PASSPHRASE_DERIVED_KEY_LEN]
        type: unsigned char
      - name: derived_key1_set
        type: apr_byte_t
      - name: derived_key2[OIDC_CRYPTO_PASSPHRASE_DERIVED_KEY_LEN]
        type: unsigned char
      - name: derived_key2_set
        type: apr_byte_t
      item_type: struct
      name: oidc_crypto_passphrase_t
      pos:
        line_end: 124
        line_start: 114
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
    - fields:
      - name: '*claim_name'
        type: char
      - name: '*reg_exp'
        type: char
      - name: '*replace'
        type: char
      item_type: struct
      name: oidc_remote_user_claim_t
      pos:
        line_end: 130
        line_start: 126
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
    - fields:
      - name: type
        type: oidc_pass_userinfo_enum_t
      - name: '*name'
        type: char
      item_type: struct
      name: oidc_pass_user_info_as_t
      pos:
        line_end: 146
        line_start: 143
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
    typedefs:
    - item_type: typedef
      name: oidc_provider_t
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type: oidc_provider_t
    - item_type: typedef
      name: oidc_cfg_t
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/mod_auth_openidc/src/cfg/cfg.h
      type: oidc_cfg_t
    union: []
- function_names:
  - oidc_cmd_cache_type_set
  - OIDC_CFG_MEMBER_FUNC_CACHE_TYPE_GET
  - OIDC_CFG_MEMBER_FUNC_CACHE_SET
  - OIDC_CFG_MEMBER_FUNCS_CACHE_PARSE
  - OIDC_CFG_MEMBER_FUNCS_CACHE_INT_EXT
  - OIDC_CFG_MEMBER_FUNCS_CACHE_INT
  - OIDC_CFG_MEMBER_FUNCS_CACHE_TIMEOUT
  - OIDC_CFG_MEMBER_FUNCS_CACHE_BOOL
  - OIDC_CFG_MEMBER_FUNCS_CACHE_STR_DEF
  - oidc_cmd_cache_shm_entry_size_max_set
  - oidc_cmd_cache_file_dir_set
  - oidc_cmd_cache_redis_connect_timeout_set
  - OIDC_CACHE_M_CREATE_PTR
  - OIDC_CACHE_M_CREATE_INT
  - OIDC_CACHE_M_CREATE_TIMEOUT
  - OIDC_CACHE_M_MERGE_PTR
  - OIDC_CACHE_M_MERGE_INT
  - OIDC_CACHE_M_MERGE_TIMEOUT
  - oidc_cfg_cache_create_server_config
  - oidc_cfg_cache_merge_server_config
  source_file: /src/mod_auth_openidc/src/cfg/cache.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_CACHE_SHM_SIZE_MIN
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '128'
    - item_type: preproc_def
      name: OIDC_CACHE_SHM_SIZE_MAX
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: (1024 * 1024 * 1024)
    - item_type: preproc_def
      name: OIDC_DEFAULT_CACHE_SHM_SIZE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: OIDC_MINIMUM_CACHE_SHM_ENTRY_SIZE_MAX
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: (8192 + 512 + 32) // 8Kb plus overhead
    - item_type: preproc_def
      name: OIDC_MAXIMUM_CACHE_SHM_ENTRY_SIZE_MAX
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: (1024 * 1024) // 1Mb incl. overhead
    - item_type: preproc_def
      name: OIDC_DEFAULT_CACHE_SHM_ENTRY_SIZE_MAX
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: (16384 + 512 + 32)
    - item_type: preproc_def
      name: OIDC_CACHE_FILE_CLEAN_INTERVAL_MIN
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_CACHE_FILE_CLEAN_INTERVAL_MAX
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: (3600 * 24 * 7)
    - item_type: preproc_def
      name: OIDC_DEFAULT_CACHE_FILE_CLEAN_INTERVAL
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '60'
    - item_type: preproc_def
      name: OIDC_CACHE_MEMCACHE_CONNECTIONS_MIN_MIN
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_CACHE_MEMCACHE_CONNECTIONS_MIN_MAX
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: OIDC_DEFAULT_CACHE_MEMCACHE_CONNECTIONS_MIN
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_CACHE_MEMCACHE_CONNECTIONS_SMAX_MIN
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_CACHE_MEMCACHE_CONNECTIONS_SMAX_MAX
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: OIDC_DEFAULT_CACHE_MEMCACHE_CONNECTIONS_SMAX
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_CACHE_MEMCACHE_CONNECTIONS_HMAX_MIN
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_CACHE_MEMCACHE_CONNECTIONS_HMAX_MAX
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: OIDC_DEFAULT_CACHE_MEMCACHE_CONNECTIONS_HMAX
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_CACHE_MEMCACHE_CONNECTIONS_TTL_MIN
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: (apr_interval_time_t)0
    - item_type: preproc_def
      name: OIDC_CACHE_MEMCACHE_CONNECTIONS_TTL_MAX
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: apr_time_from_sec(4294)
    - item_type: preproc_def
      name: OIDC_DEFAULT_CACHE_MEMCACHE_CONNECTIONS_TTL
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: apr_time_from_sec(60)
    - item_type: preproc_def
      name: OIDC_CACHE_REDIS_DATABASE_MIN
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_CACHE_REDIS_DATABASE_MAX
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: OIDC_REDIS_CONNECT_TIMEOUT_MIN
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_REDIS_CONNECT_TIMEOUT_MAX
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '3600'
    - item_type: preproc_def
      name: OIDC_REDIS_KEEPALIVE_TIMEOUT_MIN
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OIDC_REDIS_KEEPALIVE_TIMEOUT_MAX
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '3600'
    - item_type: preproc_def
      name: OIDC_REDIS_TIMEOUT_MIN
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_REDIS_TIMEOUT_MAX
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/mod_auth_openidc/src/cfg/cache.c
      type_or_value: '3600'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_util_html_escape_char
  - oidc_util_html_escape_with
  - oidc_util_html_escape
  - oidc_util_html_javascript_escape_char
  - oidc_util_html_javascript_escape
  - oidc_util_html_send
  - oidc_util_html_content_prep
  - oidc_util_html_content_send
  - oidc_util_template_escape
  - oidc_util_template_format_valid
  - oidc_util_html_send_in_template
  - oidc_util_html_send_error
  source_file: /src/mod_auth_openidc/src/util/html.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_util_file_is_regular
  - oidc_util_file_read_core
  - oidc_util_file_read
  - oidc_util_file_read_server
  - oidc_util_file_write
  source_file: /src/mod_auth_openidc/src/util/file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/util/request_state.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_REQUEST_STATE_KEY_AUTHN_POST
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mod_auth_openidc/src/util/request_state.h
      type_or_value: '"a"'
    - item_type: preproc_def
      name: OIDC_REQUEST_STATE_KEY_CLAIMS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/mod_auth_openidc/src/util/request_state.h
      type_or_value: '"c"'
    - item_type: preproc_def
      name: OIDC_REQUEST_STATE_KEY_DISCOVERY
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mod_auth_openidc/src/util/request_state.h
      type_or_value: '"d"'
    - item_type: preproc_def
      name: OIDC_REQUEST_STATE_KEY_HTTP
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mod_auth_openidc/src/util/request_state.h
      type_or_value: '"hp"'
    - item_type: preproc_def
      name: OIDC_REQUEST_STATE_KEY_HTML
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/mod_auth_openidc/src/util/request_state.h
      type_or_value: '"hl"'
    - item_type: preproc_def
      name: OIDC_REQUEST_STATE_KEY_IDTOKEN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/mod_auth_openidc/src/util/request_state.h
      type_or_value: '"i"'
    - item_type: preproc_def
      name: OIDC_REQUEST_STATE_KEY_SCOPE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/mod_auth_openidc/src/util/request_state.h
      type_or_value: '"sc"'
    - item_type: preproc_def
      name: OIDC_REQUEST_STATE_KEY_AUTHN_PRESERVE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/mod_auth_openidc/src/util/request_state.h
      type_or_value: '"p"'
    - item_type: preproc_def
      name: OIDC_REQUEST_STATE_KEY_SAVE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/mod_auth_openidc/src/util/request_state.h
      type_or_value: '"s"'
    - item_type: preproc_def
      name: OIDC_REQUEST_STATE_TRACE_ID
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/mod_auth_openidc/src/util/request_state.h
      type_or_value: '"t"'
    - item_type: preproc_def
      name: OIDC_USERDATA_POST_PARAMS_KEY
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/mod_auth_openidc/src/util/request_state.h
      type_or_value: '"oidc_userdata_post_params"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_util_regexp_substitute
  - oidc_util_regexp_first_match
  - oidc_util_apr_expr_parse
  - oidc_util_apr_expr_exec
  source_file: /src/mod_auth_openidc/src/util/expr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dumpstr
  - dumpmatch
  - findreplen
  - doreplace
  - edit
  - pcre_subst
  - oidc_pcre_subst
  - oidc_pcre_compile
  - oidc_pcre_free
  - oidc_pcre_free_match
  - oidc_pcre_get_substring
  - oidc_pcre_exec
  - main
  source_file: /src/mod_auth_openidc/src/util/pcre_subst.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/mod_auth_openidc/src/util/pcre_subst.c
      type_or_value: '8'
    structs:
    - fields: []
      item_type: struct
      name: oidc_pcre
      pos:
        line_end: 59
        line_start: 51
        source_file: /src/mod_auth_openidc/src/util/pcre_subst.c
    typedefs: []
    union: []
- function_names:
  - _oidc_util_url_cur_scheme
  - _oidc_util_url_port_from_host_hdr
  - _oidc_util_url_cur_port
  - oidc_util_url_cur_host
  - _oidc_util_url_base_cur
  - oidc_util_url_cur
  - oidc_util_url_abs
  - oidc_util_url_cur_is_secure
  - oidc_util_url_redirect_uri
  - oidc_util_url_cur_matches
  - oidc_util_url_matches_redirect_uri
  - oidc_util_url_has_parameter
  - oidc_util_url_parameter_get
  source_file: /src/mod_auth_openidc/src/util/url.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _oidc_util_rand
  - _oidc_util_rand_bytes
  - oidc_util_rand_int
  - oidc_util_rand_str
  - oidc_util_rand_hex_str
  source_file: /src/mod_auth_openidc/src/util/random.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEV_RANDOM
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/mod_auth_openidc/src/util/random.c
      type_or_value: '"/dev/urandom"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/util/util_cfg.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/util/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_UTIL_FILE_SIZE_MAX
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/mod_auth_openidc/src/util/util.h
      type_or_value: (16 * 1024 * 1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_util_env_var_override
  - oidc_util_jwt_internal_compress
  - oidc_util_jwt_key_from_derived
  - oidc_util_jwt_create
  - oidc_util_jwt_verify
  source_file: /src/mod_auth_openidc/src/util/jwt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_JWT_INTERNAL_NO_COMPRESS_ENV_VAR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/mod_auth_openidc/src/util/jwt.c
      type_or_value: '"OIDC_JWT_INTERNAL_NO_COMPRESS"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _oidc_util_appinfo_utf8_to_latin1
  - oidc_util_appinfo_render
  - oidc_util_appinfo_pair_apply
  - oidc_util_appinfo_set_impl
  - oidc_util_appinfo_set
  - oidc_util_appinfo_escape
  - oidc_util_appinfo_array_concat
  - oidc_util_appinfo_set_one
  - oidc_util_appinfo_set_all
  source_file: /src/mod_auth_openidc/src/util/appinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_JSON_MAX_INT_STR_LEN
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/mod_auth_openidc/src/util/appinfo.c
      type_or_value: '64'
    structs:
    - fields:
      - name: '*claim_prefix'
        type: char
      - name: '*claim_delimiter'
        type: char
      - name: pass_in
        type: oidc_appinfo_pass_in_t
      - name: encoding
        type: oidc_appinfo_encoding_t
      - name: '*headers'
        type: apr_table_t
      - name: '*env'
        type: apr_table_t
      item_type: struct
      name: oidc_appinfo_ctx_t
      pos:
        line_end: 121
        line_start: 114
        source_file: /src/mod_auth_openidc/src/util/appinfo.c
    typedefs: []
    union: []
- function_names:
  - oidc_util_char_to_env
  - oidc_util_strnenvcmp
  - oidc_util_strcasestr
  - oidc_util_http_send
  - oidc_util_http_content_prep
  - oidc_util_http_content_send
  - oidc_util_read
  - oidc_util_param_must_not_repeat
  - oidc_util_read_form_encoded_params_impl
  - oidc_util_read_form_encoded_params
  - oidc_util_read_form_encoded_params_reject_dup
  - oidc_util_userdata_set_post_param
  - oidc_util_read_post_params_impl
  - oidc_util_read_post_params
  - oidc_util_read_post_params_reject_dup
  - oidc_util_issuer_match
  - oidc_util_spaced_string_to_hashtable
  - oidc_util_spaced_string_equals
  - oidc_util_spaced_string_contains
  - oidc_util_table_add_query_encoded_params
  - oidc_util_hex_encode
  - oidc_util_log_mask_secrets
  - oidc_util_mask_value
  - oidc_util_strcmp_const_time
  - oidc_util_hash_string_and_base64url_encode
  - oidc_util_hostname_endswith
  - oidc_util_cookie_domain_valid
  - oidc_util_set_trace_parent
  - oidc_util_apr_hash_clear
  - oidc_util_apr_time_from_sec
  - oidc_util_apr_time_add
  - oidc_util_openssl_version
  source_file: /src/mod_auth_openidc/src/util/util.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_MAX_POST_DATA_LEN
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/mod_auth_openidc/src/util/util.c
      type_or_value: (1024 * 1024)
    - item_type: preproc_def
      name: OIDC_UTIL_MASK_VALUE_PREFIX_LEN
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/mod_auth_openidc/src/util/util.c
      type_or_value: '4'
    - item_type: preproc_def
      name: OIDC_TP_TRACE_ID_LEN
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/mod_auth_openidc/src/util/util.c
      type_or_value: '16'
    - item_type: preproc_def
      name: OIDC_TP_PARENT_ID_LEN
      pos:
        line_end: 565
        line_start: 564
        source_file: /src/mod_auth_openidc/src/util/util.c
      type_or_value: '8'
    - item_type: preproc_def
      name: OIDC_UTIL_APR_TIME_SEC_MAX
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/mod_auth_openidc/src/util/util.c
      type_or_value: (APR_INT64_MAX / APR_USEC_PER_SEC)
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_util_base64url_encode
  - oidc_util_base64_decode
  - oidc_util_base64url_decode
  source_file: /src/mod_auth_openidc/src/util/base64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_util_key_derive_passphrase_key
  - oidc_util_key_symmetric_create
  - oidc_util_key_symmetric_merge
  - oidc_util_key_sets_merge
  - oidc_util_key_sets_hash_merge
  - oidc_util_key_list_first
  source_file: /src/mod_auth_openidc/src/util/key.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_UTIL_KEY_DERIVE_ITERATIONS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/mod_auth_openidc/src/util/key.c
      type_or_value: '210000'
    - item_type: preproc_def
      name: OIDC_UTIL_KEY_DERIVE_SALT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/src/util/key.c
      type_or_value: '"mod_auth_openidc-crypto-passphrase-v1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_request_state
  - oidc_request_state_set
  - oidc_request_state_get
  - oidc_request_state_json_get
  - oidc_request_state_json_cleanup
  - oidc_request_state_json_set_new
  - oidc_request_state_json_set
  source_file: /src/mod_auth_openidc/src/util/request_state.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_USERDATA_KEY
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mod_auth_openidc/src/util/request_state.c
      type_or_value: '"mod_auth_openidc_state"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/util/pcre_subst.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_PCRE_MAXCAPTURE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/mod_auth_openidc/src/util/pcre_subst.h
      type_or_value: '255'
    - item_type: preproc_def
      name: OIDC_UTIL_REGEXP_MATCH_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/mod_auth_openidc/src/util/pcre_subst.h
      type_or_value: '30'
    - item_type: preproc_def
      name: OIDC_UTIL_REGEXP_MATCH_NR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/mod_auth_openidc/src/util/pcre_subst.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OIDC_PCRE_SUBST_INITIAL_BUF_LEN
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/mod_auth_openidc/src/util/pcre_subst.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: OIDC_PCRE_SUBST_MAX_INPUT_LEN
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/mod_auth_openidc/src/util/pcre_subst.h
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_util_jq_exec
  - oidc_jq_filter_cache_ttl
  - oidc_util_jq_filter
  source_file: /src/mod_auth_openidc/src/util/jq.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_JQ_FILTER_EXPIRE_DEFAULT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/mod_auth_openidc/src/util/jq.c
      type_or_value: '600'
    - item_type: preproc_def
      name: OIDC_JQ_FILTER_CACHE_TTL_ENVVAR
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/mod_auth_openidc/src/util/jq.c
      type_or_value: '"OIDC_JQ_FILTER_CACHE_TTL"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_cache_file_post_config
  - oidc_cache_file_name
  - oidc_cache_file_path
  - oidc_cache_file_read
  - oidc_cache_file_write
  - oidc_cache_file_get
  - oidc_cache_file_clean_due
  - oidc_cache_file_is_same
  - oidc_cache_file_clean_entry
  - oidc_cache_file_clean
  - oidc_cache_file_set
  source_file: /src/mod_auth_openidc/src/cache/file.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_CACHE_FILE_PREFIX
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mod_auth_openidc/src/cache/file.c
      type_or_value: '"mod-auth-openidc-"'
    - item_type: preproc_def
      name: OIDC_CACHE_FILE_LAST_CLEANED
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/mod_auth_openidc/src/cache/file.c
      type_or_value: '"last-cleaned"'
    structs:
    - fields:
      - name: len
        type: apr_size_t
      - name: expire
        type: apr_time_t
      item_type: struct
      name: oidc_cache_file_info_t
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/mod_auth_openidc/src/cache/file.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/cache/memcache.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cache_memcache'
        type: apr_memcache_t
      - name: min
        type: apr_uint32_t
      - name: smax
        type: apr_uint32_t
      - name: hmax
        type: apr_uint32_t
      - name: ttl
        type: apr_interval_time_t
      - name: add_server
        type: oidc_cache_memcache_add_server_function_t
      - name: getp
        type: oidc_cache_memcache_getp_function_t
      - name: set
        type: oidc_cache_memcache_set_function_t
      - name: del
        type: oidc_cache_memcache_delete_function_t
      - name: status
        type: oidc_cache_memcache_status_function_t
      item_type: struct
      name: oidc_cache_cfg_memcache_t
      pos:
        line_end: 90
        line_start: 75
        source_file: /src/mod_auth_openidc/src/cache/memcache.h
    typedefs:
    - item_type: typedef
      name: "(*oidc_cache_memcache_add_server_function_t)(server_rec *s, apr_pool_t
        *p,\n\t\t\t\t\t\t\t struct oidc_cache_cfg_memcache_t *context, char *split,\n\t\t\t\t\t\t\t
        apr_uint32_t min, apr_uint32_t smax, apr_uint32_t hmax,\n\t\t\t\t\t\t\t apr_interval_time_t
        ttl)"
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/mod_auth_openidc/src/cache/memcache.h
      type: int
    - item_type: typedef
      name: "(*oidc_cache_memcache_getp_function_t)(struct oidc_cache_cfg_memcache_t
        *context, apr_pool_t *p,\n\t\t\t\t\t\t\t    const char *key, char **baton,
        apr_size_t *len)"
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/mod_auth_openidc/src/cache/memcache.h
      type: apr_status_t
    - item_type: typedef
      name: "(*oidc_cache_memcache_set_function_t)(struct oidc_cache_cfg_memcache_t
        *context, const char *key,\n\t\t\t\t\t\t\t   char *baton, apr_size_t len,
        apr_uint32_t timeout)"
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/mod_auth_openidc/src/cache/memcache.h
      type: apr_status_t
    - item_type: typedef
      name: "(*oidc_cache_memcache_delete_function_t)(struct oidc_cache_cfg_memcache_t
        *context,\n\t\t\t\t\t\t\t      const char *key)"
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/mod_auth_openidc/src/cache/memcache.h
      type: apr_status_t
    - item_type: typedef
      name: (*oidc_cache_memcache_status_function_t)(const struct oidc_cache_cfg_memcache_t
        *context)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/mod_auth_openidc/src/cache/memcache.h
      type: apr_byte_t
    union: []
- function_names:
  - oidc_cache_mutex_create
  - oidc_cache_status2str
  - oidc_cache_mutex_global_create
  - oidc_cache_mutex_post_config
  - oidc_cache_mutex_child_init
  - oidc_cache_mutex_lock
  - oidc_cache_mutex_unlock
  - oidc_cache_mutex_destroy
  - oidc_cache_crypto_encrypt
  - oidc_cache_crypto_decrypt
  - oidc_cache_section_key
  - oidc_cache_get_hashed_key
  - oidc_cache_get_key
  - oidc_cache_section_get
  - oidc_cache_get
  - oidc_cache_set
  - oidc_cache_backend_get
  - oidc_cache_backend_names
  source_file: /src/mod_auth_openidc/src/cache/common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_CACHE_ERROR_STR_MAX
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/mod_auth_openidc/src/cache/common.c
      type_or_value: '255'
    - item_type: preproc_def
      name: OIDC_CACHE_PREFIX_ENV_VAR
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/mod_auth_openidc/src/cache/common.c
      type_or_value: '"OIDC_CACHE_PREFIX"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_cache_memcache_cfg_create
  - oidc_cache_memcache_add_server_impl
  - oidc_cache_memcache_post_config
  - oidc_cache_memcache_add_servers
  - oidc_cache_memcache_post_config_hook
  - oidc_cache_memcache_log_status_error
  - oidc_cache_memcache_get_key
  - oidc_cache_memcache_status_impl
  - oidc_cache_memcache_getp_impl
  - oidc_cache_memcache_set_impl
  - oidc_cache_memcache_delete_impl
  - oidc_cache_memcache_get
  - oidc_cache_memcache_set
  source_file: /src/mod_auth_openidc/src/cache/memcache.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_CACHE_MEMCACHE_STATUS_ERR_SIZE
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/mod_auth_openidc/src/cache/memcache.c
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_cache_get_session
  - oidc_cache_get_nonce
  - oidc_cache_get_jwks
  - oidc_cache_get_access_token
  - oidc_cache_get_refresh_token
  - oidc_cache_get_provider
  - oidc_cache_get_oauth_provider
  - oidc_cache_get_jti
  - oidc_cache_get_request_uri
  - oidc_cache_get_sid
  - oidc_cache_get_signed_jwt
  - oidc_cache_get_jq_filter
  - oidc_cache_set_session
  - oidc_cache_set_nonce
  - oidc_cache_set_jwks
  - oidc_cache_set_access_token
  - oidc_cache_set_refresh_token
  - oidc_cache_set_provider
  - oidc_cache_set_oauth_provider
  - oidc_cache_set_jti
  - oidc_cache_set_request_uri
  - oidc_cache_set_sid
  - oidc_cache_set_signed_jwt
  - oidc_cache_set_jq_filter
  source_file: /src/mod_auth_openidc/src/cache/cache.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_CACHE_KEY_SIZE_MAX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '512'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_SESSION
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"s"'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_NONCE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"n"'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_JWKS
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"j"'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_ACCESS_TOKEN
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"a"'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_REFRESH_TOKEN
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"e"'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_PROVIDER
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"p"'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_OAUTH_PROVIDER
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"o"'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_JTI
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"t"'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_REQUEST_URI
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"r"'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_SID
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"d"'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_USERINFO_SJWT
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"u"'
    - item_type: preproc_def
      name: OIDC_CACHE_SECTION_JQ_FILTER
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type_or_value: '"q"'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: encrypt_by_default
        type: int
      - name: post_config
        type: oidc_cache_post_config_function
      - name: child_init
        type: oidc_cache_child_init_function
      - name: get
        type: oidc_cache_get_function
      - name: set
        type: oidc_cache_set_function
      - name: destroy
        type: oidc_cache_destroy_function
      item_type: struct
      name: oidc_cache_t
      pos:
        line_end: 76
        line_start: 68
        source_file: /src/mod_auth_openidc/src/cache/cache.h
    - fields:
      - name: '*gmutex'
        type: apr_global_mutex_t
      - name: '*tmutex'
        type: apr_thread_mutex_t
      - name: '*mutex_filename'
        type: char
      - name: is_global
        type: apr_byte_t
      - name: is_parent
        type: apr_byte_t
      item_type: struct
      name: oidc_cache_mutex_t
      pos:
        line_end: 84
        line_start: 78
        source_file: /src/mod_auth_openidc/src/cache/cache.h
    typedefs:
    - item_type: typedef
      name: '*(*oidc_cache_cfg_create)(apr_pool_t *pool)'
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type: void
    - item_type: typedef
      name: (*oidc_cache_post_config_function)(apr_pool_t *pool, server_rec *s)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type: int
    - item_type: typedef
      name: (*oidc_cache_child_init_function)(apr_pool_t *p, server_rec *s)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type: int
    - item_type: typedef
      name: (*oidc_cache_get_function)(request_rec *r, const char *section, const
        char *key, char **value)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type: apr_byte_t
    - item_type: typedef
      name: "(*oidc_cache_set_function)(request_rec *r, const char *section, const
        char *key, const char *value,\n\t\t\t\t\t      apr_time_t expiry)"
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type: apr_byte_t
    - item_type: typedef
      name: (*oidc_cache_destroy_function)(apr_pool_t *pool, server_rec *s)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/mod_auth_openidc/src/cache/cache.h
      type: int
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/cache/shm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_cache_redis_cfg_create
  - oidc_cache_redis_post_config
  - oidc_cache_redis_disconnect
  - oidc_cache_redis_redact
  - oidc_cache_redis_post_config_hook
  - oidc_cache_redis_child_init
  - oidc_cache_redis_reply_free
  - oidc_cache_redis_set_keepalive
  - oidc_cache_redis_set_auth
  - oidc_cache_redis_set_database
  - oidc_cache_redis_connect_with_timeout
  - oidc_cache_redis_conn_return
  - oidc_cache_redis_conn_get
  - oidc_cache_redis_rctx_connect
  - oidc_cache_redis_connect
  - oidc_cache_redis_idle_flush
  - oidc_cache_redis_command
  - oidc_cache_redis_env2int
  - OIDC_REDIS_WARN_OR_ERROR
  - oidc_cache_redis_backoff
  - oidc_cache_redis_exec
  - oidc_cache_redis_get
  - oidc_cache_redis_set
  - oidc_cache_redis_destroy
  source_file: /src/mod_auth_openidc/src/cache/redis.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REDIS_CONNECT_TIMEOUT_DEFAULT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/mod_auth_openidc/src/cache/redis.c
      type_or_value: '5'
    - item_type: preproc_def
      name: REDIS_TIMEOUT_DEFAULT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/mod_auth_openidc/src/cache/redis.c
      type_or_value: '5'
    - item_type: preproc_def
      name: REDIS_KEEPALIVE_DEFAULT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/mod_auth_openidc/src/cache/redis.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: OIDC_REDIS_MUTEX_GLOBAL_ENV_VAR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/mod_auth_openidc/src/cache/redis.c
      type_or_value: '"OIDC_REDIS_MUTEX_GLOBAL"'
    - item_type: preproc_def
      name: OIDC_CACHE_REDIS_CONN_USERDATA
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/mod_auth_openidc/src/cache/redis.c
      type_or_value: '"oidc_cache_redis_conn"'
    - item_type: preproc_def
      name: OIDC_REDIS_MAX_TRIES_ENV_VAR
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/mod_auth_openidc/src/cache/redis.c
      type_or_value: '"OIDC_REDIS_MAX_TRIES"'
    - item_type: preproc_def
      name: OIDC_REDIS_MAX_TRIES_DEFAULT
      pos:
        line_end: 511
        line_start: 510
        source_file: /src/mod_auth_openidc/src/cache/redis.c
      type_or_value: '2'
    - item_type: preproc_def
      name: OIDC_REDIS_RETRY_INTERVAL_ENV_VAR
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/mod_auth_openidc/src/cache/redis.c
      type_or_value: '"OIDC_REDIS_RETRY_INTERVAL"'
    - item_type: preproc_def
      name: OIDC_REDIS_RETRY_INTERVAL_DEFAULT
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/mod_auth_openidc/src/cache/redis.c
      type_or_value: '300'
    structs:
    - fields:
      - name: '*rctx'
        type: redisContext
      - name: '*context'
        type: oidc_cache_cfg_redis_t
      - name: '*s'
        type: server_rec
      - name: '*pool'
        type: apr_pool_t
      item_type: struct
      name: oidc_cache_redis_conn_t
      pos:
        line_end: 349
        line_start: 344
        source_file: /src/mod_auth_openidc/src/cache/redis.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mod_auth_openidc/src/cache/redis.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_CACHE_REDIS_POOL_MAX
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mod_auth_openidc/src/cache/redis.h
      type_or_value: '16'
    structs:
    - fields:
      - name: '*mutex'
        type: oidc_cache_mutex_t
      - name: '*username'
        type: char
      - name: '*passwd'
        type: char
      - name: database
        type: int
      - name: connect_timeout
        type: struct timeval
      - name: keepalive
        type: int
      - name: timeout
        type: struct timeval
      - name: '*host_str'
        type: char
      - name: port
        type: apr_port_t
      - name: '*rctx'
        type: redisContext
      - name: connect
        type: oidc_cache_redis_connect_function_t
      - name: command
        type: oidc_cache_redis_command_function_t
      - name: disconnect
        type: oidc_cache_redis_disconnect_function_t
      - name: request_scoped
        type: apr_byte_t
      - name: '*idle[OIDC_CACHE_REDIS_POOL_MAX]'
        type: redisContext
      - name: idle_num
        type: int
      item_type: struct
      name: oidc_cache_cfg_redis_t
      pos:
        line_end: 82
        line_start: 61
        source_file: /src/mod_auth_openidc/src/cache/redis.h
    typedefs:
    - item_type: typedef
      name: (*oidc_cache_redis_connect_function_t)(request_rec *, struct oidc_cache_cfg_redis_t
        *)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/mod_auth_openidc/src/cache/redis.h
      type: apr_status_t
    - item_type: typedef
      name: "*(*oidc_cache_redis_command_function_t)(request_rec *, struct oidc_cache_cfg_redis_t
        *, char **,\n\t\t\t\t\t\t\t   const char *format, va_list ap)"
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/mod_auth_openidc/src/cache/redis.h
      type: redisReply
    - item_type: typedef
      name: (*oidc_cache_redis_disconnect_function_t)(struct oidc_cache_cfg_redis_t
        *)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/mod_auth_openidc/src/cache/redis.h
      type: apr_status_t
    union: []
- function_names:
  - oidc_cache_shm_buckets
  - oidc_cache_shm_slot
  - oidc_cache_shm_base
  - oidc_cache_shm_segment_size
  - oidc_cache_shm_rotate_left
  - oidc_cache_shm_load64_le
  - OIDC_CACHE_SHM_SIPROUND
  - oidc_cache_shm_siphash
  - oidc_cache_shm_hash
  - oidc_cache_shm_value_size_max
  - oidc_cache_shm_slot_free
  - oidc_cache_shm_validate_buckets
  - oidc_cache_shm_validate_free_list
  - oidc_cache_shm_validate_ownership
  - oidc_cache_shm_validate
  - oidc_cache_shm_cfg_create
  - oidc_cache_shm_post_config
  - oidc_cache_shm_child_init
  - oidc_cache_shm_get_key
  - oidc_cache_shm_find
  - oidc_cache_shm_get
  - oidc_cache_shm_unlink
  - oidc_cache_shm_evict
  - oidc_cache_shm_entry_update
  - oidc_cache_shm_entry_insert
  - oidc_cache_shm_warn_pressure
  - oidc_cache_shm_set
  - oidc_cache_shm_destroy_segment
  - oidc_cache_shm_destroy_mutex
  - oidc_cache_shm_destroy
  source_file: /src/mod_auth_openidc/src/cache/shm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_CACHE_SHM_KEY_MAX
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/mod_auth_openidc/src/cache/shm.c
      type_or_value: OIDC_CACHE_KEY_SIZE_MAX
    - item_type: preproc_def
      name: OIDC_CACHE_SHM_PRESSURE_WARN_INTERVAL
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/mod_auth_openidc/src/cache/shm.c
      type_or_value: apr_time_from_sec(60)
    - item_type: preproc_def
      name: OIDC_CACHE_SHM_SEGMENT_SIZE_MAX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mod_auth_openidc/src/cache/shm.c
      type_or_value: ((apr_uint64_t)16 * 1024 * 1024 * 1024)
    structs:
    - fields:
      - name: '*shm'
        type: apr_shm_t
      - name: '*mutex'
        type: oidc_cache_mutex_t
      - name: mutex_ready
        type: apr_byte_t
      - name: is_parent
        type: apr_byte_t
      item_type: struct
      name: oidc_cache_cfg_shm_t
      pos:
        line_end: 65
        line_start: 60
        source_file: /src/mod_auth_openidc/src/cache/shm.c
    - fields:
      - name: nslots
        type: apr_uint32_t
      - name: nbuckets
        type: apr_uint32_t
      - name: entry_size
        type: apr_uint32_t
      - name: hash_key[2]
        type: apr_uint64_t
      - name: free_head
        type: apr_uint32_t
      - name: last_pressure_warning
        type: apr_time_t
      item_type: struct
      name: oidc_cache_shm_header_t
      pos:
        line_end: 83
        line_start: 71
        source_file: /src/mod_auth_openidc/src/cache/shm.c
    - fields:
      - name: section_key[OIDC_CACHE_SHM_KEY_MAX]
        type: char
      - name: access
        type: apr_time_t
      - name: expires
        type: apr_time_t
      - name: next
        type: apr_uint32_t
      - name: value[]
        type: char
      item_type: struct
      name: oidc_cache_shm_entry_t
      pos:
        line_end: 98
        line_start: 86
        source_file: /src/mod_auth_openidc/src/cache/shm.c
    typedefs:
    - item_type: typedef
      name: ((aligned(64)))
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/mod_auth_openidc/src/cache/shm.c
      type: __attribute__
    union: []
- function_names:
  - oidc_cjose_e2s
  source_file: /src/mod_auth_openidc/src/jose/internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_jose_util_get_b64encoded_certificate_data
  - oidc_jwk_new
  - _oidc_jwk_parse_x5c_spec
  - oidc_jwk_from_cjose
  - oidc_jwk_parse
  - oidc_jwk_copy
  - oidc_jwk_destroy
  - oidc_jwk_list_destroy_hash
  - oidc_jwk_list_copy
  - oidc_jwk_list_destroy
  - oidc_jwk_parse_json
  - oidc_jwks_parse_json
  - oidc_is_jwk
  - oidc_is_jwks
  - oidc_jwk_to_json
  - oidc_jwk_to_public_json
  - oidc_jwk_default_jws_alg
  - oidc_jwk_set_or_generate_kid
  - oidc_jwk_create_symmetric_key
  - oidc_jwk_x509_read
  - _oidc_jwk_rsa_key_to_jwk
  - _oidc_jwk_ec_key_to_jwk
  - oidc_jwk_populate_cert_info
  - oidc_jwk_pem_bio_read_public
  - oidc_jwk_pkey_base_id
  - oidc_jwk_pkey_to_jwk
  - oidc_jwk_pem_bio_to_jwk
  - oidc_jwk_parse_pem_key
  - _oidc_jwk_parse_x5c
  - oidc_jwk_parse_pem_private_key
  - oidc_jwk_parse_pem_public_key
  source_file: /src/mod_auth_openidc/src/jose/jwk.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_KTY
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/mod_auth_openidc/src/jose/jwk.c
      type_or_value: '"kty"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_KTY_RSA
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/mod_auth_openidc/src/jose/jwk.c
      type_or_value: '"RSA"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_KTY_EC
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/mod_auth_openidc/src/jose/jwk.c
      type_or_value: '"EC"'
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_X5C
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/mod_auth_openidc/src/jose/jwk.c
      type_or_value: '"x5c"'
    - item_type: preproc_def
      name: OIDC_JOSE_CERT_BEGIN
      pos:
        line_end: 949
        line_start: 948
        source_file: /src/mod_auth_openidc/src/jose/jwk.c
      type_or_value: '"-----BEGIN CERTIFICATE-----"'
    - item_type: preproc_def
      name: OIDC_JOSE_CERT_END
      pos:
        line_end: 950
        line_start: 949
        source_file: /src/mod_auth_openidc/src/jose/jwk.c
      type_or_value: '"-----END CERTIFICATE-----"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_jwe_decrypt_by_kid
  - oidc_jwe_decrypt_any
  - oidc_jwe_decrypt_impl
  - oidc_jwe_decrypt
  - oidc_jwt_encrypt
  source_file: /src/mod_auth_openidc/src/jose/jwe.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - oidc_jwt_hdr_set
  - oidc_jwt_new
  - oidc_jwt_hdr_get
  - oidc_jwt_hdr_set_json
  - oidc_jose_jwt_serialize
  - oidc_alg2kty
  - oidc_jwt_alg2kty
  - oidc_alg2keysize
  - oidc_jose_parse_payload
  - oidc_jwt_parse
  - oidc_jwt_destroy
  - oidc_jwt_sign
  - oidc_jwt_verify_with_key
  - oidc_jwt_verify_any
  - oidc_jwt_verify
  source_file: /src/mod_auth_openidc/src/jose/jws.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OIDC_JOSE_HDR_ALG_NONE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/mod_auth_openidc/src/jose/jws.c
      type_or_value: '"eyJhbGciOiJub25lIn0"'
    - item_type: preproc_def
      name: OIDC_JOSE_JWT_ISS
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/mod_auth_openidc/src/jose/jws.c
      type_or_value: '"iss"'
    - item_type: preproc_def
      name: OIDC_JOSE_JWT_SUB
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/mod_auth_openidc/src/jose/jws.c
      type_or_value: '"sub"'
    - item_type: preproc_def
      name: OIDC_JOSE_JWT_EXP
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/mod_auth_openidc/src/jose/jws.c
      type_or_value: '"exp"'
    - item_type: preproc_def
      name: OIDC_JOSE_JWT_IAT
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/mod_auth_openidc/src/jose/jws.c
      type_or_value: '"iat"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cjose_multi_key_locator
  - cjose_multi_key_locator_none
  - START_TEST
  - _self_encrypt_self_decrypt_with_key
  - _self_encrypt_self_decrypt
  - START_TEST
  - _self_encrypt_self_decrypt_with_key_iv
  - _self_encrypt_self_decrypt_iv
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - _decrypt_oversized_aes_kw_ek
  - START_TEST
  - START_TEST
  - _cjose_test_json_serial
  - _cjose_test_empty_headers
  - START_TEST
  - _assert_cbc_cek_random
  - START_TEST
  - START_TEST
  - _encrypt_with_bad_iv_length
  - START_TEST
  - START_TEST
  - cjose_jwe_suite
  source_file: /src/cjose/test/check_jwe.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_API_COMPAT
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/cjose/test/check_jwe.c
      type_or_value: 0x10000000L
    structs:
    - fields:
      - name: '*jwe'
        type: char
      - name: '*plaintext'
        type: char
      - name: '*jwk'
        type: char
      item_type: struct
      name: cjose_jwe_decrypt_rsa
      pos:
        line_end: 1126
        line_start: 1121
        source_file: /src/cjose/test/check_jwe.c
    typedefs: []
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - cjose_base64_suite
  source_file: /src/cjose/test/check_base64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_alloc
  - test_realloc
  - test_dealloc
  - test_alloc_reset
  - START_TEST
  - test_alloc3_reset
  - test_alloc3
  - test_realloc3
  - test_dealloc3
  - START_TEST
  - START_TEST
  - cjose_util_suite
  source_file: /src/cjose/test/check_util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cjose_suite
  - main
  source_file: /src/cjose/test/check_cjose.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _match_string_attrs
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - cjose_jwk_suite
  source_file: /src/cjose/test/check_jwk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _ck_assert_bin
  - ck_assert_bin_eq
  source_file: /src/cjose/test/check_cjose.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - cjose_header_suite
  source_file: /src/cjose/test/check_header.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - START_TEST
  - START_TEST
  - cjose_version_suite
  source_file: /src/cjose/test/check_version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _create_otherinfo_header
  - _cmp_uint32
  - _cmp_lendata
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - cjose_concatkdf_suite
  source_file: /src/cjose/test/check_concatkdf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _self_get_jwk_by_alg
  - _self_sign_self_verify
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - cjose_jws_suite
  source_file: /src/cjose/test/check_jws.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cjose_err_message
  source_file: /src/cjose/src/error.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CJOSE_THREAD_LOCAL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/cjose/src/error.c
      type_or_value: __declspec(thread)
    - item_type: preproc_def
      name: CJOSE_THREAD_LOCAL
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/cjose/src/error.c
      type_or_value: __thread
    - item_type: preproc_def
      name: CJOSE_THREAD_LOCAL
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/cjose/src/error.c
      type_or_value: _Thread_local
    structs: []
    typedefs: []
    union: []
- function_names:
  - _cjose_jwk_rsa_get
  - _cjose_jwk_rsa_set
  - _cjose_jwk_rsa_get_factors
  - _cjose_jwk_rsa_set_factors
  - _cjose_jwk_rsa_get_crt
  - _cjose_jwk_rsa_set_crt
  - cjose_jwk_name_for_kty
  - cjose_jwk_retain
  - cjose_jwk_release
  - cjose_jwk_get_kty
  - cjose_jwk_get_keysize
  - cjose_jwk_get_keydata
  - cjose_jwk_get_kid
  - cjose_jwk_set_kid
  - cjose_jwk_to_json
  - _oct_new
  - _oct_free
  - _oct_public_fields
  - _oct_private_fields
  - cjose_jwk_create_oct_random
  - cjose_jwk_create_oct_spec
  - _ec_size_for_curve
  - _ec_name_for_curve
  - _ec_curve_from_name
  - _kty_from_name
  - _EC_new
  - _EC_free
  - _EC_public_fields
  - _EC_private_fields
  - cjose_jwk_create_EC_random
  - cjose_jwk_create_EC_spec
  - cjose_jwk_EC_get_curve
  - _RSA_new
  - _RSA_free
  - _RSA_json_field
  - _RSA_public_fields
  - _RSA_private_fields
  - cjose_jwk_create_RSA_random
  - cjose_jwk_create_RSA_spec
  - _get_json_object_string_attribute
  - _decode_json_object_base64url_attribute
  - _cjose_jwk_import_EC
  - _cjose_jwk_import_RSA
  - _cjose_jwk_import_oct
  - cjose_jwk_import
  - cjose_jwk_import_json
  - _cjose_jwk_evp_key_from_ec_key
  - cjose_jwk_derive_ecdh_secret
  - cjose_jwk_derive_ecdh_ephemeral_key
  - cjose_jwk_derive_ecdh_bits
  - cjose_jwk_hkdf
  source_file: /src/cjose/src/jwk.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_API_COMPAT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/cjose/src/jwk.c
      type_or_value: 0x10000000L
    structs: []
    typedefs: []
    union: []
- function_names:
  - cjose_alloc_wrapped
  - cjose_realloc_wrapped
  - cjose_dealloc_wrapped
  - cjose_alloc3_default
  - cjose_realloc3_default
  - cjose_dealloc3_default
  - cjose_apply_allocs
  - cjose_set_alloc_funcs
  - cjose_set_alloc_ex_funcs
  - cjose_get_alloc
  - cjose_get_alloc3
  - cjose_get_realloc
  - cjose_get_realloc3
  - cjose_get_dealloc
  - cjose_get_dealloc3
  - _cjose_cleanse
  - _cjose_cleanse_dealloc
  - cjose_const_memcmp
  - _cjose_strndup
  - _cjose_json_stringn
  source_file: /src/cjose/src/util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - B64_BYTE1
  - B64_BYTE2
  - B64_BYTE3
  - B64_BYTE4
  - _decode
  - _encode
  - cjose_base64_encode
  - cjose_base64url_encode
  - cjose_base64_decode
  - cjose_base64url_decode
  source_file: /src/cjose/src/base64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _cjose_release_cek
  - _cjose_empty_json
  - _cjose_dealloc_part
  - _cjose_parse_json_object
  - _cjose_convert_part
  - _cjose_convert_to_base64
  - _keylen_from_enc
  - _cjose_jwe_malloc
  - _cjose_jwe_build_hdr
  - _cjose_jwe_get_from_headers
  - _cjose_jwe_validate_enc
  - _cjose_jwe_validate_alg
  - _cjose_jwe_set_cek_aes_gcm
  - _cjose_jwe_set_cek_aes_cbc
  - _cjose_jwe_encrypt_ek_dir
  - _cjose_jwe_decrypt_ek_dir
  - _cjose_jwe_encrypt_ek_aes_kw
  - _cjose_jwe_decrypt_ek_aes_kw
  - _cjose_jwe_encrypt_ek_rsa_padding
  - _cjose_jwe_decrypt_ek_rsa_padding
  - _cjose_jwe_encrypt_ek_rsa_oaep
  - _cjose_jwe_decrypt_ek_rsa_oaep
  - _cjose_jwe_encrypt_ek_rsa1_5
  - _cjose_jwe_decrypt_ek_rsa1_5
  - _cjose_jwe_encrypt_ek_ecdh_es
  - _cjose_jwe_decrypt_ek_ecdh_es
  - _cjose_jwe_set_iv_aes_gcm
  - _cjose_jwe_set_iv_aes_cbc
  - _cjose_jwe_encrypt_dat_aes_gcm
  - _cjose_jwe_calc_auth_tag
  - _cjose_jwe_encrypt_dat_aes_cbc
  - _cjose_jwe_decrypt_dat_aes_gcm
  - _cjose_jwe_decrypt_dat_aes_cbc
  - _cjose_jwe_validate_decrypt_key
  - cjose_jwe_encrypt_iv
  - cjose_jwe_encrypt
  - cjose_jwe_encrypt_multi_iv
  - cjose_jwe_encrypt_multi
  - cjose_jwe_release
  - cjose_jwe_export
  - _cjose_add_json_part
  - cjose_jwe_export_json
  - _cjose_jwe_import_part
  - _cjose_jwe_import_json_part
  - cjose_jwe_import
  - _cjose_read_json_recipient
  - cjose_jwe_import_json
  - cjose_jwe_decrypt_multi
  - cjose_jwe_decrypt
  - cjose_jwe_get_protected
  source_file: /src/cjose/src/jwe.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_API_COMPAT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/cjose/src/jwe.c
      type_or_value: 0x10000000L
    - item_type: preproc_def
      name: CJOSE_EVP_CTRL_GCM_GET_TAG
      pos:
        line_end: 1043
        line_start: 1042
        source_file: /src/cjose/src/jwe.c
      type_or_value: EVP_CTRL_AEAD_GET_TAG
    - item_type: preproc_def
      name: CJOSE_EVP_CTRL_GCM_SET_TAG
      pos:
        line_end: 1044
        line_start: 1043
        source_file: /src/cjose/src/jwe.c
      type_or_value: EVP_CTRL_AEAD_SET_TAG
    - item_type: preproc_def
      name: CJOSE_EVP_CTRL_GCM_GET_TAG
      pos:
        line_end: 1046
        line_start: 1045
        source_file: /src/cjose/src/jwe.c
      type_or_value: EVP_CTRL_GCM_GET_TAG
    - item_type: preproc_def
      name: CJOSE_EVP_CTRL_GCM_SET_TAG
      pos:
        line_end: 1047
        line_start: 1046
        source_file: /src/cjose/src/jwe.c
      type_or_value: EVP_CTRL_GCM_SET_TAG
    structs: []
    typedefs: []
    union: []
- function_names:
  - _cjose_header_validate_crit
  - json_array_foreach
  - cjose_header_new
  - cjose_header_retain
  - cjose_header_release
  - cjose_header_set
  - cjose_header_get
  - cjose_header_set_raw
  - cjose_header_get_raw
  source_file: /src/cjose/src/header.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _apply_uint32
  - _apply_lendata
  - min_len
  - cjose_concatkdf_create_otherinfo
  - cjose_concatkdf_derive
  source_file: /src/cjose/src/concatkdf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _cjose_jws_build_hdr
  - _cjose_jws_validate_hdr
  - _cjose_jws_build_dat
  - _cjose_jws_build_dig_sha
  - _cjose_jws_build_dig_hmac_sha
  - _cjose_jws_build_sig_ps
  - _cjose_jws_build_sig_rs
  - _cjose_jws_build_sig_hmac_sha
  - _cjose_jws_build_sig_ec
  - _cjose_jws_build_cser
  - cjose_jws_sign
  - cjose_jws_release
  - cjose_jws_export
  - _cjose_jws_strcpy
  - cjose_jws_import
  - _cjose_jws_verify_sig_ps
  - _cjose_jws_verify_sig_rs
  - _cjose_jws_verify_sig_hmac_sha
  - _cjose_jws_verify_sig_ec
  - _cjose_jws_validate_verify_key
  - cjose_jws_verify
  - cjose_jws_get_plaintext
  - cjose_jws_get_protected
  source_file: /src/cjose/src/jws.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPENSSL_API_COMPAT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/cjose/src/jws.c
      type_or_value: 0x10000000L
    structs: []
    typedefs: []
    union: []
- function_names:
  - cjose_version
  source_file: /src/cjose/src/version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/cjose/src/include/header_int.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/cjose/src/include/jwe_int.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*raw'
        type: uint8_t
      - name: raw_len
        type: size_t
      - name: '*b64u'
        type: char
      - name: b64u_len
        type: size_t
      item_type: struct
      name: _cjose_jwe_part_int
      pos:
        line_end: 21
        line_start: 14
        source_file: /src/cjose/src/include/jwe_int.h
    - fields:
      - name: (*encrypt_ek)(_jwe_int_recipient_t *recipient, cjose_jwe_t *jwe, const
          cjose_jwk_t *jwk, cjose_err *err)
        type: bool
      - name: (*decrypt_ek)(_jwe_int_recipient_t *recipient, cjose_jwe_t *jwe, const
          cjose_jwk_t *jwk, cjose_err *err)
        type: bool
      item_type: struct
      name: _jwe_rec_fntable_int
      pos:
        line_end: 32
        line_start: 26
        source_file: /src/cjose/src/include/jwe_int.h
    - fields:
      - name: (*set_cek)(cjose_jwe_t *jwe, const cjose_jwk_t *jwk, bool random, cjose_err
          *err)
        type: bool
      - name: (*set_iv)(cjose_jwe_t *jwe, cjose_err *err)
        type: bool
      - name: (*encrypt_dat)(cjose_jwe_t *jwe, const uint8_t *plaintext, size_t plaintext_len,
          cjose_err *err)
        type: bool
      - name: (*decrypt_dat)(cjose_jwe_t *jwe, cjose_err *err)
        type: bool
      item_type: struct
      name: _jwe_fntable_int
      pos:
        line_end: 45
        line_start: 34
        source_file: /src/cjose/src/include/jwe_int.h
    - fields:
      - name: '*unprotected'
        type: json_t
      - name: enc_key
        type: _jwe_part_t
      - name: fns
        type: jwe_rec_fntable
      item_type: struct
      name: _cjose_jwe_recipient
      pos:
        line_end: 53
        line_start: 47
        source_file: /src/cjose/src/include/jwe_int.h
    - fields:
      - name: '*hdr'
        type: json_t
      - name: '*shared_hdr'
        type: json_t
      - name: enc_header
        type: _jwe_part_t
      - name: enc_iv
        type: _jwe_part_t
      - name: enc_ct
        type: _jwe_part_t
      - name: enc_auth_tag
        type: _jwe_part_t
      - name: fns
        type: jwe_fntable
      - name: '*cek'
        type: uint8_t
      - name: cek_len
        type: size_t
      - name: '*dat'
        type: uint8_t
      - name: dat_len
        type: size_t
      - name: to_count
        type: size_t
      - name: '*to'
        type: _jwe_int_recipient_t
      item_type: struct
      name: _cjose_jwe_int
      pos:
        line_end: 78
        line_start: 56
        source_file: /src/cjose/src/include/jwe_int.h
    typedefs:
    - item_type: typedef
      name: _jwe_int_recipient_t
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/cjose/src/include/jwe_int.h
      type: _cjose_jwe_recipient
    union: []
- function_names: []
  source_file: /src/cjose/src/include/concatkdf_int.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/cjose/src/include/jwk_int.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*free_func)(cjose_jwk_t *)
        type: void
      - name: (*public_json)(const cjose_jwk_t *, json_t *, cjose_err *err)
        type: bool
      - name: (*private_json)(const cjose_jwk_t *, json_t *, cjose_err *err)
        type: bool
      item_type: struct
      name: _key_fntable_int
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/cjose/src/include/jwk_int.h
    - fields:
      - name: kty
        type: cjose_jwk_kty_t
      - name: '*kid'
        type: char
      - name: retained
        type: unsigned int
      - name: keysize
        type: size_t
      - name: '*keydata'
        type: void
      - name: '*fns'
        type: key_fntable
      item_type: struct
      name: _cjose_jwk_int
      pos:
        line_end: 45
        line_start: 37
        source_file: /src/cjose/src/include/jwk_int.h
    - fields:
      - name: crv
        type: cjose_jwk_ec_curve
      - name: '*key'
        type: EC_KEY
      item_type: struct
      name: _ec_keydata_int
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/cjose/src/include/jwk_int.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/cjose/src/include/util_int.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/cjose/src/include/jws_int.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*digest)(cjose_jws_t *jws, const cjose_jwk_t *jwk, cjose_err *err)
        type: bool
      - name: (*sign)(cjose_jws_t *jws, const cjose_jwk_t *jwk, cjose_err *err)
        type: bool
      - name: (*verify)(cjose_jws_t *jws, const cjose_jwk_t *jwk, cjose_err *err)
        type: bool
      item_type: struct
      name: _jws_fntable_int
      pos:
        line_end: 22
        line_start: 14
        source_file: /src/cjose/src/include/jws_int.h
    - fields:
      - name: '*hdr'
        type: json_t
      - name: '*hdr_b64u'
        type: char
      - name: hdr_b64u_len
        type: size_t
      - name: '*dat'
        type: uint8_t
      - name: dat_len
        type: size_t
      - name: '*dat_b64u'
        type: char
      - name: dat_b64u_len
        type: size_t
      - name: '*dig'
        type: uint8_t
      - name: dig_len
        type: size_t
      - name: '*sig'
        type: uint8_t
      - name: sig_len
        type: size_t
      - name: '*sig_b64u'
        type: char
      - name: sig_b64u_len
        type: size_t
      - name: '*cser'
        type: char
      - name: cser_len
        type: size_t
      - name: fns
        type: jws_fntable
      item_type: struct
      name: _cjose_jws_int
      pos:
        line_end: 51
        line_start: 25
        source_file: /src/cjose/src/include/jws_int.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/cjose/include/cjose/jwk.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*e'
        type: uint8_t
      - name: elen
        type: size_t
      - name: '*n'
        type: uint8_t
      - name: nlen
        type: size_t
      - name: '*d'
        type: uint8_t
      - name: dlen
        type: size_t
      - name: '*p'
        type: uint8_t
      - name: plen
        type: size_t
      - name: '*q'
        type: uint8_t
      - name: qlen
        type: size_t
      - name: '*dp'
        type: uint8_t
      - name: dplen
        type: size_t
      - name: '*dq'
        type: uint8_t
      - name: dqlen
        type: size_t
      - name: '*qi'
        type: uint8_t
      - name: qilen
        type: size_t
      item_type: struct
      name: cjose_jwk_rsa_keyspec
      pos:
        line_end: 180
        line_start: 146
        source_file: /src/cjose/include/cjose/jwk.h
    - fields:
      - name: crv
        type: cjose_jwk_ec_curve
      - name: '*d'
        type: uint8_t
      - name: dlen
        type: size_t
      - name: '*x'
        type: uint8_t
      - name: xlen
        type: size_t
      - name: '*y'
        type: uint8_t
      - name: ylen
        type: size_t
      item_type: struct
      name: cjose_jwk_ec_keyspec
      pos:
        line_end: 244
        line_start: 228
        source_file: /src/cjose/include/cjose/jwk.h
    typedefs:
    - item_type: typedef
      name: cjose_jwk_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/cjose/include/cjose/jwk.h
      type: _cjose_jwk_int
    union: []
- function_names: []
  source_file: /src/cjose/include/cjose/cjose.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/cjose/include/cjose/jwe.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*jwk'
        type: cjose_jwk_t
      - name: '*unprotected_header'
        type: cjose_header_t
      item_type: struct
      name: cjose_jwe_recipient_t
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/cjose/include/cjose/jwe.h
    typedefs:
    - item_type: typedef
      name: cjose_jwe_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/cjose/include/cjose/jwe.h
      type: _cjose_jwe_int
    - item_type: typedef
      name: '*(*cjose_key_locator)(cjose_jwe_t *jwe, cjose_header_t *hdr, void *)'
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/cjose/include/cjose/jwe.h
      type: cjose_jwk_t
    union: []
- function_names:
  - CJOSE_UNUSED_PARAM
  source_file: /src/cjose/include/cjose/util.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '*(*cjose_alloc_fn_t)(size_t)'
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/cjose/include/cjose/util.h
      type: void
    - item_type: typedef
      name: '*(*cjose_alloc3_fn_t)(size_t, const char *, int)'
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/cjose/include/cjose/util.h
      type: void
    - item_type: typedef
      name: '*(*cjose_realloc_fn_t)(void *, size_t)'
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/cjose/include/cjose/util.h
      type: void
    - item_type: typedef
      name: '*(*cjose_realloc3_fn_t)(void *, size_t, const char *, int)'
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/cjose/include/cjose/util.h
      type: void
    - item_type: typedef
      name: (*cjose_dealloc_fn_t)(void *)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cjose/include/cjose/util.h
      type: void
    - item_type: typedef
      name: (*cjose_dealloc3_fn_t)(void *, const char *, int)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/cjose/include/cjose/util.h
      type: void
    union: []
- function_names:
  - CJOSE_ERROR
  source_file: /src/cjose/include/cjose/error.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GCC_END_IGNORED_WARNING
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/cjose/include/cjose/error.h
      type_or_value: _Pragma("GCC diagnostic pop")
    - item_type: preproc_def
      name: GCC_BEGIN_IGNORED_WARNING_ADDRESS
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/cjose/include/cjose/error.h
      type_or_value: "_Pragma(\"GCC diagnostic push\");       \\\n    _Pragma(\"GCC
        diagnostic ignored \\\"-Waddress\\\"\")"
    - item_type: preproc_def
      name: GCC_END_IGNORED_WARNING_ADDRESS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/cjose/include/cjose/error.h
      type_or_value: GCC_END_IGNORED_WARNING
    structs:
    - fields:
      - name: code
        type: cjose_errcode
      - name: '*message'
        type: char
      - name: '*function'
        type: char
      - name: '*file'
        type: char
      - name: line
        type: unsigned long
      item_type: struct
      name: cjose_err
      pos:
        line_end: 83
        line_start: 65
        source_file: /src/cjose/include/cjose/error.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/cjose/include/cjose/header.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: cjose_header_t
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/cjose/include/cjose/header.h
      type: json_t
    union: []
- function_names: []
  source_file: /src/cjose/include/cjose/base64.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/cjose/include/cjose/jws.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: cjose_jws_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/cjose/include/cjose/jws.h
      type: _cjose_jws_int
    union: []
- function_names:
  - l_isspace
  - strip
  - loadfile
  - read_conf
  - cmpfile
  - use_conf
  - main
  source_file: /src/jansson/test/bin/json_process.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/jansson/test/bin/json_process.c
      type_or_value: _snprintf
    structs:
    - fields:
      - name: indent
        type: int
      - name: compact
        type: int
      - name: preserve_order
        type: int
      - name: ensure_ascii
        type: int
      - name: sort_keys
        type: int
      - name: strip
        type: int
      - name: have_hashseed
        type: int
      - name: hashseed
        type: int
      - name: precision
        type: int
      item_type: struct
      name: config
      pos:
        line_end: 44
        line_start: 34
        source_file: /src/jansson/test/bin/json_process.c
    typedefs: []
    union: []
- function_names:
  - create_and_free_complex_object
  - create_and_free_object_with_oom
  - my_malloc
  - my_free
  - test_simple
  - oom_malloc
  - oom_free
  - test_oom
  - secure_malloc
  - secure_free
  - test_secure_funcs
  - test_bad_args
  - run_tests
  source_file: /src/jansson/test/suites/api/test_memory_funcs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_equal_simple
  - test_equal_array
  - test_equal_object
  - test_equal_complex
  - test_equal_max_depth
  - run_tests
  source_file: /src/jansson/test/suites/api/test_equal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - run_tests
  source_file: /src/jansson/test/suites/api/test_unpack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_bad_args
  - run_tests
  source_file: /src/jansson/test/suites/api/test_simple.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_inifity
  - run_tests
  source_file: /src/jansson/test/suites/api/test_pack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pipe
  - encode_null_callback
  - encode_null
  - encode_twice
  - circular_references
  - encode_other_than_array_or_object
  - escape_slashes
  - encode_nul_byte
  - dump_file
  - dumpb
  - dumpfd
  - embed
  - build_nested_array
  - max_depth
  - run_tests
  source_file: /src/jansson/test/suites/api/test_dump.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_version_str
  - test_version_cmp
  - run_tests
  source_file: /src/jansson/test/suites/api/test_version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_copy_simple
  - test_deep_copy_simple
  - test_copy_array
  - test_deep_copy_array
  - test_copy_object
  - test_deep_copy_object
  - test_deep_copy_circular_references
  - test_deep_copy_max_depth
  - run_tests
  source_file: /src/jansson/test/suites/api/test_copy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_inifity
  - test_bad_args
  - run_tests
  source_file: /src/jansson/test/suites/api/test_number.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fail
  - check_errors
  - check_error
  - main
  source_file: /src/jansson/test/suites/api/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: failhdr
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/jansson/test/suites/api/util.h
      type_or_value: 'fprintf(stderr, "%s:%d: ", __FILE__, __LINE__)'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_sprintf
  - run_tests
  source_file: /src/jansson/test/suites/api/test_sprintf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - greedy_reader
  - run_tests
  source_file: /src/jansson/test/suites/api/test_load_callback.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*buf'
        type: char
      - name: 'off'
        type: size_t
      - name: cap
        type: size_t
      item_type: struct
      name: my_source
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/jansson/test/suites/api/test_load_callback.c
    typedefs: []
    union: []
- function_names:
  - chaos_malloc
  - chaos_realloc
  - chaos_free
  - chaos_loop
  - chaos_loop_new_value
  - test_unpack
  - dump_chaos_callback
  - test_chaos_realloc
  - run_tests
  source_file: /src/jansson/test/suites/api/test_chaos_realloc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHAOS_MAX_FAILURE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/jansson/test/suites/api/test_chaos_realloc.c
      type_or_value: '200'
    - item_type: preproc_def
      name: JSON_LOAD_TXT
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/jansson/test/suites/api/test_chaos_realloc.c
      type_or_value: '"{\"n\":[1,2,3,4,5,6,7,8,9,10]}"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_keylen_iterator
  - json_object_keylen_foreach
  - test_keylen
  - test_invalid_keylen
  - test_binary_keys
  - test_dump_order
  - run_tests
  source_file: /src/jansson/test/suites/api/test_fixed_size.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_clear
  - test_update
  - test_set_many_keys
  - test_conditional_updates
  - test_recursive_updates
  - test_circular
  - test_set_nocheck
  - test_iterators
  - test_misc
  - test_preserve_order
  - test_object_foreach
  - test_object_foreach_safe
  - json_object_foreach_safe
  - test_bad_args
  - run_tests
  source_file: /src/jansson/test/suites/api/test_object.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - file_not_found
  - very_long_file_name
  - reject_duplicates
  - disable_eof_check
  - decode_any
  - decode_int_as_real
  - allow_nul
  - load_wrong_args
  - position
  - error_code
  - run_tests
  source_file: /src/jansson/test/suites/api/test_load.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - run_tests
  source_file: /src/jansson/test/suites/api/test_loadb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - chaos_malloc
  - chaos_free
  - chaos_loop
  - chaos_loop_new_value
  - test_unpack
  - dump_chaos_callback
  - test_chaos
  - run_tests
  source_file: /src/jansson/test/suites/api/test_chaos.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHAOS_MAX_FAILURE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/jansson/test/suites/api/test_chaos.c
      type_or_value: '100'
    - item_type: preproc_def
      name: JSON_LOAD_TXT
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/jansson/test/suites/api/test_chaos.c
      type_or_value: '"{\"n\":[1,2,3,4,5,6,7,8,9,10]}"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_writer
  - run_tests
  source_file: /src/jansson/test/suites/api/test_dump_callback.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*buf'
        type: char
      - name: 'off'
        type: size_t
      - name: cap
        type: size_t
      item_type: struct
      name: my_sink
      pos:
        line_end: 16
        line_start: 12
        source_file: /src/jansson/test/suites/api/test_dump_callback.c
    typedefs: []
    union: []
- function_names:
  - test_misc
  - test_insert
  - test_remove
  - test_clear
  - test_extend
  - test_circular
  - test_array_foreach
  - json_array_foreach
  - test_bad_args
  - run_tests
  source_file: /src/jansson/test/suites/api/test_array.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_and_free_complex_object
  - create_and_free_object_with_oom
  - my_malloc
  - my_free
  - my_realloc
  - test_simple2
  - oom_malloc
  - oom_free
  - oom_realloc
  - test_oom2
  - secure_malloc
  - secure_realloc
  - secure_free
  - test_secure_funcs2
  - test_bad_args2
  - run_tests
  source_file: /src/jansson/test/suites/api/test_memory_funcs_realloc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/jansson/test/ossfuzz/json_pack_unpack_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/jansson/test/ossfuzz/testinput.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - u8
  - LLVMFuzzerTestOneInput
  source_file: /src/jansson/test/ossfuzz/json_equal_copy_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/jansson/test/ossfuzz/standaloneengine.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FUZZ_DEBUG
  - json_dump_counter
  - LLVMFuzzerTestOneInput
  source_file: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_COMMAND_BYTES
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc
      type_or_value: (sizeof(size_t) + sizeof(size_t) + 1)
    - item_type: preproc_def
      name: FUZZ_DUMP_CALLBACK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc
      type_or_value: '0x00'
    - item_type: preproc_def
      name: FUZZ_DUMP_STRING
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/jansson/test/ossfuzz/json_load_dump_fuzzer.cc
      type_or_value: '0x01'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/jansson/android/jansson_config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: JSON_INLINE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/jansson/android/jansson_config.h
      type_or_value: inline
    - item_type: preproc_def
      name: JSON_INLINE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/jansson/android/jansson_config.h
      type_or_value: inline
    - item_type: preproc_def
      name: JSON_INTEGER_IS_LONG_LONG
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/jansson/android/jansson_config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_PARSER_MAX_DEPTH
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/jansson/android/jansson_config.h
      type_or_value: '2048'
    structs: []
    typedefs: []
    union: []
- function_names:
  - newline_offset
  - write_response
  - request
  - main
  source_file: /src/jansson/doc/github_commits.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFFER_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/jansson/doc/github_commits.c
      type_or_value: '(256 * 1024) '
    - item_type: preproc_def
      name: URL_FORMAT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/jansson/doc/github_commits.c
      type_or_value: '"https://api.github.com/repos/%s/%s/commits"'
    - item_type: preproc_def
      name: URL_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/jansson/doc/github_commits.c
      type_or_value: '256'
    structs:
    - fields:
      - name: '*data'
        type: char
      - name: pos
        type: int
      item_type: struct
      name: write_result
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/jansson/doc/github_commits.c
    typedefs: []
    union: []
- function_names:
  - strbuffer_init
  - strbuffer_close
  - strbuffer_clear
  - strbuffer_value
  - strbuffer_steal_value
  - strbuffer_append_byte
  - strbuffer_append_bytes
  - strbuffer_pop
  source_file: /src/jansson/src/strbuffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRBUFFER_MIN_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/jansson/src/strbuffer.c
      type_or_value: '16'
    - item_type: preproc_def
      name: STRBUFFER_FACTOR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/jansson/src/strbuffer.c
      type_or_value: '2'
    - item_type: preproc_def
      name: STRBUFFER_SIZE_MAX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/jansson/src/strbuffer.c
      type_or_value: ((size_t)(-1))
    structs: []
    typedefs: []
    union: []
- function_names:
  - buf_to_uint32
  - seed_from_urandom
  - seed_from_windows_cryptoapi
  - seed_from_timestamp_and_pid
  - generate_seed
  - json_object_seed
  - json_object_seed
  - json_object_seed
  - json_object_seed
  source_file: /src/jansson/src/hashtable_seed.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(WINAPI *CRYPTACQUIRECONTEXTA)(HCRYPTPROV *phProv, LPCSTR pszContainer,\n
        \                                          LPCSTR pszProvider, DWORD dwProvType,\n
        \                                          DWORD dwFlags)"
      pos:
        line_end: 98
        line_start: 96
        source_file: /src/jansson/src/hashtable_seed.c
      type: BOOL
    - item_type: typedef
      name: (WINAPI *CRYPTGENRANDOM)(HCRYPTPROV hProv, DWORD dwLen, BYTE *pbBuffer)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/jansson/src/hashtable_seed.c
      type: BOOL
    - item_type: typedef
      name: (WINAPI *CRYPTRELEASECONTEXT)(HCRYPTPROV hProv, DWORD dwFlags)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/jansson/src/hashtable_seed.c
      type: BOOL
    union: []
- function_names:
  - isnan
  - isinf
  - json_init
  - jsonp_loop_check
  - json_object
  - json_delete_object
  - json_object_size
  - json_object_get
  - json_object_getn
  - json_object_set_new_nocheck
  - json_object_setn_new_nocheck
  - json_object_set_new
  - json_object_setn_new
  - json_object_del
  - json_object_deln
  - json_object_clear
  - json_object_update
  - json_object_keylen_foreach
  - json_object_update_existing
  - json_object_keylen_foreach
  - json_object_update_missing
  - json_object_keylen_foreach
  - do_object_update_recursive
  - json_object_keylen_foreach
  - json_object_update_recursive
  - json_object_iter
  - json_object_iter_at
  - json_object_iter_next
  - json_object_iter_key
  - json_object_iter_key_len
  - json_object_iter_value
  - json_object_iter_set_new
  - json_object_key_to_iter
  - json_object_equal
  - json_object_copy
  - json_object_deep_copy
  - json_array
  - json_delete_array
  - json_array_size
  - json_array_get
  - json_array_set_new
  - array_move
  - array_copy
  - json_array_grow
  - json_array_append_new
  - json_array_insert_new
  - json_array_remove
  - json_array_clear
  - json_array_extend
  - json_array_equal
  - json_array_copy
  - json_array_deep_copy
  - string_create
  - json_string_nocheck
  - json_stringn_nocheck
  - jsonp_stringn_nocheck_own
  - json_string
  - json_stringn
  - json_string_value
  - json_string_length
  - json_string_set_nocheck
  - json_string_setn_nocheck
  - json_string_set
  - json_string_setn
  - json_delete_string
  - json_string_equal
  - json_string_copy
  - json_vsprintf
  - json_sprintf
  - json_integer
  - json_integer_value
  - json_integer_set
  - json_delete_integer
  - json_integer_equal
  - json_integer_copy
  - json_real
  - json_real_value
  - json_real_set
  - json_delete_real
  - json_real_equal
  - json_real_copy
  - json_number_value
  - json_true
  - json_false
  - json_null
  - json_delete
  - json_equal
  - do_equal
  - json_copy
  - json_deep_copy
  - do_deep_copy
  source_file: /src/jansson/src/value.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - jsonp_error_init
  - jsonp_error_set_source
  - jsonp_error_set
  - jsonp_error_vset
  source_file: /src/jansson/src/error.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - list_to_pair
  - ordered_list_to_pair
  - hash_str
  - list_init
  - list_insert
  - list_remove
  - bucket_is_empty
  - insert_to_bucket
  - hashtable_find_pair
  - hashtable_do_del
  - hashtable_do_clear
  - hashtable_do_rehash
  - hashtable_init
  - hashtable_close
  - init_pair
  - hashtable_set
  - hashtable_get
  - hashtable_del
  - hashtable_clear
  - hashtable_iter
  - hashtable_iter_at
  - hashtable_iter_next
  - hashtable_iter_key
  - hashtable_iter_key_len
  - hashtable_iter_value
  - hashtable_iter_set
  source_file: /src/jansson/src/hashtable.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INITIAL_HASHTABLE_ORDER
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/jansson/src/hashtable.c
      type_or_value: '3'
    structs: []
    typedefs:
    - item_type: typedef
      name: list_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/jansson/src/hashtable.c
      type: hashtable_list
    - item_type: typedef
      name: pair_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/jansson/src/hashtable.c
      type: hashtable_pair
    - item_type: typedef
      name: bucket_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/jansson/src/hashtable.c
      type: hashtable_bucket
    union: []
- function_names:
  - l_isupper
  - l_islower
  - l_isalpha
  - l_isdigit
  - l_isxdigit
  - stream_to_lex
  - error_set
  - stream_init
  - stream_get
  - stream_unget
  - lex_get
  - lex_save
  - lex_get_save
  - lex_unget
  - lex_unget_unsave
  - lex_save_cached
  - lex_free_string
  - decode_unicode_escape
  - lex_scan_string
  - lex_scan_number
  - lex_scan
  - lex_steal_string
  - lex_init
  - lex_close
  - parse_object
  - parse_array
  - parse_value
  - parse_json
  - string_get
  - json_loads
  - buffer_get
  - json_loadb
  - json_loadf
  - fd_get_func
  - json_loadfd
  - json_load_file
  - callback_get
  - json_load_callback
  source_file: /src/jansson/src/load.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STREAM_STATE_OK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/jansson/src/load.c
      type_or_value: '0'
    - item_type: preproc_def
      name: STREAM_STATE_EOF
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/jansson/src/load.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: STREAM_STATE_ERROR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/jansson/src/load.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: TOKEN_INVALID
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/jansson/src/load.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: TOKEN_EOF
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/jansson/src/load.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TOKEN_STRING
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/jansson/src/load.c
      type_or_value: '256'
    - item_type: preproc_def
      name: TOKEN_INTEGER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/jansson/src/load.c
      type_or_value: '257'
    - item_type: preproc_def
      name: TOKEN_REAL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/jansson/src/load.c
      type_or_value: '258'
    - item_type: preproc_def
      name: TOKEN_TRUE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/jansson/src/load.c
      type_or_value: '259'
    - item_type: preproc_def
      name: TOKEN_FALSE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/jansson/src/load.c
      type_or_value: '260'
    - item_type: preproc_def
      name: TOKEN_NULL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/jansson/src/load.c
      type_or_value: '261'
    - item_type: preproc_def
      name: json_strtoint
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/jansson/src/load.c
      type_or_value: _strtoi64
    - item_type: preproc_def
      name: json_strtoint
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/jansson/src/load.c
      type_or_value: strtoll
    - item_type: preproc_def
      name: json_strtoint
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/jansson/src/load.c
      type_or_value: strtol
    - item_type: preproc_def
      name: MAX_BUF_LEN
      pos:
        line_end: 1055
        line_start: 1054
        source_file: /src/jansson/src/load.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: get
        type: get_func
      - name: '*data'
        type: void
      - name: buffer[5]
        type: char
      - name: buffer_pos
        type: size_t
      - name: state
        type: int
      - name: line
        type: int
      - name: column
        type: int
      - name: position
        type: size_t
      item_type: struct
      name: stream_t
      pos:
        line_end: 62
        line_start: 53
        source_file: /src/jansson/src/load.c
    - fields:
      - name: stream
        type: stream_t
      - name: saved_text
        type: strbuffer_t
      - name: flags
        type: size_t
      - name: depth
        type: size_t
      - name: token
        type: int
      - name: value
        type: "union {\n        struct {\n            char *val;\n            size_t
          len;\n        } string;\n        json_int_t integer;\n        double real;\n
          \   }"
      item_type: struct
      name: lex_t
      pos:
        line_end: 78
        line_start: 64
        source_file: /src/jansson/src/load.c
    - fields:
      - name: '*data'
        type: char
      - name: pos
        type: size_t
      item_type: struct
      name: string_data_t
      pos:
        line_end: 887
        line_start: 884
        source_file: /src/jansson/src/load.c
    - fields:
      - name: '*data'
        type: char
      - name: len
        type: size_t
      - name: pos
        type: size_t
      item_type: struct
      name: buffer_data_t
      pos:
        line_end: 929
        line_start: 925
        source_file: /src/jansson/src/load.c
    - fields:
      - name: data[MAX_BUF_LEN]
        type: char
      - name: len
        type: size_t
      - name: pos
        type: size_t
      - name: callback
        type: json_load_callback_t
      - name: '*arg'
        type: void
      item_type: struct
      name: callback_data_t
      pos:
        line_end: 1062
        line_start: 1056
        source_file: /src/jansson/src/load.c
    typedefs:
    - item_type: typedef
      name: (*get_func)(void *data)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/jansson/src/load.c
      type: int
    union: []
- function_names:
  - get_decimal_point
  - to_locale
  - jsonp_strtod
  - jsonp_dtostr
  - from_locale
  - jsonp_dtostr
  source_file: /src/jansson/src/strconv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/jansson/src/utf.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hashtable_key_to_iter
  source_file: /src/jansson/src/hashtable.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*prev'
        type: struct hashtable_list
      - name: '*next'
        type: struct hashtable_list
      item_type: struct
      name: hashtable_list
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/jansson/src/hashtable.h
    - fields:
      - name: list
        type: struct hashtable_list
      - name: ordered_list
        type: struct hashtable_list
      - name: hash
        type: size_t
      - name: '*value'
        type: json_t
      - name: key_len
        type: size_t
      - name: key[1]
        type: char
      item_type: struct
      name: hashtable_pair
      pos:
        line_end: 28
        line_start: 21
        source_file: /src/jansson/src/hashtable.h
    - fields:
      - name: '*first'
        type: struct hashtable_list
      - name: '*last'
        type: struct hashtable_list
      item_type: struct
      name: hashtable_bucket
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/jansson/src/hashtable.h
    - fields:
      - name: size
        type: size_t
      - name: '*buckets'
        type: struct hashtable_bucket
      - name: order
        type: size_t
      - name: list
        type: struct hashtable_list
      - name: ordered_list
        type: struct hashtable_list
      item_type: struct
      name: hashtable
      pos:
        line_end: 41
        line_start: 35
        source_file: /src/jansson/src/hashtable.h
    typedefs: []
    union: []
- function_names:
  - JANSSON_ATTRS
  - json_typeof
  - json_is_object
  - json_is_array
  - json_is_string
  - json_is_integer
  - json_is_real
  - json_is_number
  - json_is_true
  - json_is_false
  - json_is_boolean
  - json_is_null
  - json_boolean
  - JSON_INTERNAL_INCREF
  - JSON_INTERNAL_DECREF
  - JSON_INTERNAL_INCREF
  - JSON_INTERNAL_DECREF
  - JSON_INTERNAL_INCREF
  - JSON_INTERNAL_DECREF
  - json_incref
  - json_decref
  - json_decrefp
  - json_error_code
  - json_object_foreach
  - json_object_keylen_foreach
  - json_object_foreach_safe
  - json_object_keylen_foreach_safe
  - json_array_foreach
  - json_object_set
  - json_object_setn
  - json_object_set_nocheck
  - json_object_setn_nocheck
  - json_object_iter_set
  - json_object_update_new
  - json_object_update_existing_new
  - json_object_update_missing_new
  - json_array_set
  - json_array_append
  - json_array_insert
  - JSON_INDENT
  - JSON_REAL_PRECISION
  source_file: /src/jansson/src/jansson.h
  types:
    enum:
    - enumerators:
      - name: json_error_unknown
      - name: json_error_cannot_open_file
      - name: json_error_stack_overflow
      - name: json_error_out_of_memory
      - name: json_error_invalid_argument
      - name: json_error_invalid_utf8
      - name: json_error_premature_end_of_input
      - name: json_error_end_of_input_expected
      - name: json_error_invalid_syntax
      - name: json_error_invalid_format
      - name: json_error_null_character
      - name: json_error_null_value
      - name: json_error_duplicate_key
      - name: json_error_item_not_found
      - name: json_error_index_out_of_range
      - name: json_error_numeric_overflow
      - name: json_error_null_byte_in_key
      - name: json_error_wrong_type
      item_type: enum
      name: json_error_code
      pos:
        line_end: 178
        line_start: 159
        source_file: /src/jansson/src/jansson.h
    preproc_defs:
    - item_type: preproc_def
      name: JANSSON_MAJOR_VERSION
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/jansson/src/jansson.h
      type_or_value: '2'
    - item_type: preproc_def
      name: JANSSON_MINOR_VERSION
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/jansson/src/jansson.h
      type_or_value: '15'
    - item_type: preproc_def
      name: JANSSON_MICRO_VERSION
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/jansson/src/jansson.h
      type_or_value: '1'
    - item_type: preproc_def
      name: JANSSON_VERSION
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/jansson/src/jansson.h
      type_or_value: '"2.15.1"'
    - item_type: preproc_def
      name: JANSSON_VERSION_HEX
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/jansson/src/jansson.h
      type_or_value: "((JANSSON_MAJOR_VERSION << 16) | (JANSSON_MINOR_VERSION << 8)
        |                      \\\n     (JANSSON_MICRO_VERSION << 0))"
    - item_type: preproc_def
      name: JANSSON_THREAD_SAFE_REFCOUNT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/jansson/src/jansson.h
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_INTEGER_FORMAT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/jansson/src/jansson.h
      type_or_value: '"I64d"'
    - item_type: preproc_def
      name: JSON_INTEGER_FORMAT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/jansson/src/jansson.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: JSON_INTEGER_FORMAT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/jansson/src/jansson.h
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: json_boolean_value
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/jansson/src/jansson.h
      type_or_value: json_is_true
    - item_type: preproc_def
      name: json_auto_t
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/jansson/src/jansson.h
      type_or_value: json_t __attribute__((cleanup(json_decrefp)))
    - item_type: preproc_def
      name: JSON_ERROR_TEXT_LENGTH
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/jansson/src/jansson.h
      type_or_value: '160'
    - item_type: preproc_def
      name: JSON_ERROR_SOURCE_LENGTH
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/jansson/src/jansson.h
      type_or_value: '80'
    - item_type: preproc_def
      name: JSON_VALIDATE_ONLY
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: JSON_STRICT
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: JSON_REJECT_DUPLICATES
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: JSON_DISABLE_EOF_CHECK
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: JSON_DECODE_ANY
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: JSON_DECODE_INT_AS_REAL
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: JSON_ALLOW_NUL
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: JSON_MAX_INDENT
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x1F'
    - item_type: preproc_def
      name: JSON_COMPACT
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: JSON_ENSURE_ASCII
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: JSON_SORT_KEYS
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: JSON_PRESERVE_ORDER
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: JSON_ENCODE_ANY
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: JSON_ESCAPE_SLASH
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: JSON_EMBED
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/jansson/src/jansson.h
      type_or_value: '0x10000'
    structs:
    - fields:
      - name: type
        type: json_type
      - name: refcount
        type: size_t
      item_type: struct
      name: json_t
      pos:
        line_end: 63
        line_start: 60
        source_file: /src/jansson/src/jansson.h
    - fields:
      - name: line
        type: int
      - name: column
        type: int
      - name: position
        type: int
      - name: source[JSON_ERROR_SOURCE_LENGTH]
        type: char
      - name: text[JSON_ERROR_TEXT_LENGTH]
        type: char
      item_type: struct
      name: json_error_t
      pos:
        line_end: 157
        line_start: 151
        source_file: /src/jansson/src/jansson.h
    typedefs:
    - item_type: typedef
      name: json_int_t
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/jansson/src/jansson.h
      type: long long
    - item_type: typedef
      name: json_int_t
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/jansson/src/jansson.h
      type: long
    - item_type: typedef
      name: (*json_load_callback_t)(void *buffer, size_t buflen, void *data)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/jansson/src/jansson.h
      type: size_t
    - item_type: typedef
      name: (*json_dump_callback_t)(const char *buffer, size_t size, void *data)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/jansson/src/jansson.h
      type: int
    - item_type: typedef
      name: '*(*json_malloc_t)(size_t)'
      pos:
        line_end: 403
        line_start: 403
        source_file: /src/jansson/src/jansson.h
      type: void
    - item_type: typedef
      name: '*(*json_realloc_t)(void *, size_t)'
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/jansson/src/jansson.h
      type: void
    - item_type: typedef
      name: (*json_free_t)(void *)
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/jansson/src/jansson.h
      type: void
    union: []
- function_names: []
  source_file: /src/jansson/src/strbuffer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*value'
        type: char
      - name: length
        type: size_t
      - name: size
        type: size_t
      item_type: struct
      name: strbuffer_t
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/jansson/src/strbuffer.h
    typedefs: []
    union: []
- function_names:
  - FLAGS_TO_INDENT
  - FLAGS_TO_PRECISION
  - dump_to_strbuffer
  - dump_to_buffer
  - dump_to_file
  - dump_to_fd
  - dump_indent
  - dump_string
  - compare_keys
  - do_dump
  - json_dumps
  - json_dumpb
  - json_dumpf
  - json_dumpfd
  - json_dump_file
  - json_dump_callback
  source_file: /src/jansson/src/dump.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_INTEGER_STR_LENGTH
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/jansson/src/dump.c
      type_or_value: '25'
    - item_type: preproc_def
      name: MAX_REAL_STR_LENGTH
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/jansson/src/dump.c
      type_or_value: '25'
    structs:
    - fields:
      - name: size
        type: size_t
      - name: used
        type: size_t
      - name: '*data'
        type: char
      item_type: struct
      name: buffer
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/jansson/src/dump.c
    - fields:
      - name: '*key'
        type: char
      - name: len
        type: int
      item_type: struct
      name: key_len
      pos:
        line_end: 200
        line_start: 197
        source_file: /src/jansson/src/dump.c
    typedefs: []
    union: []
- function_names:
  - Bug
  - Debug
  - Set_errno
  - word0
  - word1
  - word0
  - word1
  - dval
  - LLval
  - Storeinc
  - Storeinc
  - rounded_product
  - rounded_quotient
  - rounded_product
  - rounded_quotient
  - set_max_dtoa_threads
  - get_TI
  - Balloc
  - Bcopy
  - multadd
  - s2b
  - hi0bits
  - lo0bits
  - i2b
  - mult
  - pow5mult
  - lshift
  - cmp
  - diff
  - b2d
  - ratio
  - htinit
  - hexdig_init
  - match
  - hexnan
  - increment
  - rshift
  - any_on
  - word0
  - word1
  - dshift
  - quorem
  - sulp
  - word1
  - nrv_alloc
  - freedtoa
  - dtoa
  source_file: /src/jansson/src/dtoa.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IEEE_MC68k
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: IEEE_8087
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: NO_LONG_LONG
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MALLOC
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/jansson/src/dtoa.c
      type_or_value: jsonp_malloc
    - item_type: preproc_def
      name: FREE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/jansson/src/dtoa.c
      type_or_value: jsonp_free
    - item_type: preproc_def
      name: Long
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/jansson/src/dtoa.c
      type_or_value: int
    - item_type: preproc_def
      name: MALLOC
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/jansson/src/dtoa.c
      type_or_value: malloc
    - item_type: preproc_def
      name: REALLOC
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/jansson/src/dtoa.c
      type_or_value: realloc
    - item_type: preproc_def
      name: FREE
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/jansson/src/dtoa.c
      type_or_value: free
    - item_type: preproc_def
      name: PRIVATE_MEM
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '2304'
    - item_type: preproc_def
      name: PRIVATE_mem
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/jansson/src/dtoa.c
      type_or_value: ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double))
    - item_type: preproc_def
      name: DBL_DIG
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '15'
    - item_type: preproc_def
      name: DBL_MAX_10_EXP
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '308'
    - item_type: preproc_def
      name: DBL_MAX_EXP
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: FLT_RADIX
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DBL_DIG
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '16'
    - item_type: preproc_def
      name: DBL_MAX_10_EXP
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '75'
    - item_type: preproc_def
      name: DBL_MAX_EXP
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '63'
    - item_type: preproc_def
      name: FLT_RADIX
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '16'
    - item_type: preproc_def
      name: DBL_MAX
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '7.2370055773322621e+75'
    - item_type: preproc_def
      name: DBL_DIG
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '16'
    - item_type: preproc_def
      name: DBL_MAX_10_EXP
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '38'
    - item_type: preproc_def
      name: DBL_MAX_EXP
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '127'
    - item_type: preproc_def
      name: FLT_RADIX
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DBL_MAX
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1.7014118346046923e+38'
    - item_type: preproc_def
      name: LONG_MAX
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '2147483647'
    - item_type: preproc_def
      name: Llong
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/jansson/src/dtoa.c
      type_or_value: long long
    - item_type: preproc_def
      name: ULLong
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/jansson/src/dtoa.c
      type_or_value: unsigned Llong
    - item_type: preproc_def
      name: dtoa_divmax
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '27'
    - item_type: preproc_def
      name: STRTOD_DIGLIM
      pos:
        line_end: 1333
        line_start: 1332
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '40'
    - item_type: preproc_def
      name: strtod_diglim
      pos:
        line_end: 1339
        line_start: 1338
        source_file: /src/jansson/src/dtoa.c
      type_or_value: STRTOD_DIGLIM
    - item_type: preproc_def
      name: Exp_shift
      pos:
        line_end: 1361
        line_start: 1360
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '20'
    - item_type: preproc_def
      name: Exp_shift1
      pos:
        line_end: 1362
        line_start: 1361
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '20'
    - item_type: preproc_def
      name: Exp_msk1
      pos:
        line_end: 1363
        line_start: 1362
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: Exp_msk11
      pos:
        line_end: 1364
        line_start: 1363
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: Exp_mask
      pos:
        line_end: 1365
        line_start: 1364
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x7ff00000'
    - item_type: preproc_def
      name: P
      pos:
        line_end: 1366
        line_start: 1365
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '53'
    - item_type: preproc_def
      name: Nbits
      pos:
        line_end: 1367
        line_start: 1366
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '53'
    - item_type: preproc_def
      name: Bias
      pos:
        line_end: 1368
        line_start: 1367
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1023'
    - item_type: preproc_def
      name: Emax
      pos:
        line_end: 1369
        line_start: 1368
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1023'
    - item_type: preproc_def
      name: Emin
      pos:
        line_end: 1370
        line_start: 1369
        source_file: /src/jansson/src/dtoa.c
      type_or_value: (-1022)
    - item_type: preproc_def
      name: Exp_1
      pos:
        line_end: 1371
        line_start: 1370
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x3ff00000'
    - item_type: preproc_def
      name: Exp_11
      pos:
        line_end: 1372
        line_start: 1371
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x3ff00000'
    - item_type: preproc_def
      name: Ebits
      pos:
        line_end: 1373
        line_start: 1372
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '11'
    - item_type: preproc_def
      name: Frac_mask
      pos:
        line_end: 1374
        line_start: 1373
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xfffff'
    - item_type: preproc_def
      name: Frac_mask1
      pos:
        line_end: 1375
        line_start: 1374
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xfffff'
    - item_type: preproc_def
      name: Ten_pmax
      pos:
        line_end: 1376
        line_start: 1375
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '22'
    - item_type: preproc_def
      name: Bletch
      pos:
        line_end: 1377
        line_start: 1376
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: Bndry_mask
      pos:
        line_end: 1378
        line_start: 1377
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xfffff'
    - item_type: preproc_def
      name: Bndry_mask1
      pos:
        line_end: 1379
        line_start: 1378
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xfffff'
    - item_type: preproc_def
      name: LSB
      pos:
        line_end: 1380
        line_start: 1379
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: Sign_bit
      pos:
        line_end: 1381
        line_start: 1380
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: Log2P
      pos:
        line_end: 1382
        line_start: 1381
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: Tiny0
      pos:
        line_end: 1383
        line_start: 1382
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0'
    - item_type: preproc_def
      name: Tiny1
      pos:
        line_end: 1384
        line_start: 1383
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: Quick_max
      pos:
        line_end: 1385
        line_start: 1384
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '14'
    - item_type: preproc_def
      name: Int_max
      pos:
        line_end: 1386
        line_start: 1385
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '14'
    - item_type: preproc_def
      name: Flt_Rounds
      pos:
        line_end: 1396
        line_start: 1395
        source_file: /src/jansson/src/dtoa.c
      type_or_value: FLT_ROUNDS
    - item_type: preproc_def
      name: Flt_Rounds
      pos:
        line_end: 1398
        line_start: 1397
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: Rounding
      pos:
        line_end: 1406
        line_start: 1405
        source_file: /src/jansson/src/dtoa.c
      type_or_value: Flt_Rounds
    - item_type: preproc_def
      name: Flt_Rounds
      pos:
        line_end: 1417
        line_start: 1416
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0'
    - item_type: preproc_def
      name: Exp_shift
      pos:
        line_end: 1418
        line_start: 1417
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '24'
    - item_type: preproc_def
      name: Exp_shift1
      pos:
        line_end: 1419
        line_start: 1418
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '24'
    - item_type: preproc_def
      name: Exp_msk1
      pos:
        line_end: 1420
        line_start: 1419
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x1000000'
    - item_type: preproc_def
      name: Exp_msk11
      pos:
        line_end: 1421
        line_start: 1420
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x1000000'
    - item_type: preproc_def
      name: Exp_mask
      pos:
        line_end: 1422
        line_start: 1421
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x7f000000'
    - item_type: preproc_def
      name: P
      pos:
        line_end: 1423
        line_start: 1422
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '14'
    - item_type: preproc_def
      name: Nbits
      pos:
        line_end: 1424
        line_start: 1423
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '56'
    - item_type: preproc_def
      name: Bias
      pos:
        line_end: 1425
        line_start: 1424
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '65'
    - item_type: preproc_def
      name: Emax
      pos:
        line_end: 1426
        line_start: 1425
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '248'
    - item_type: preproc_def
      name: Emin
      pos:
        line_end: 1427
        line_start: 1426
        source_file: /src/jansson/src/dtoa.c
      type_or_value: (-260)
    - item_type: preproc_def
      name: Exp_1
      pos:
        line_end: 1428
        line_start: 1427
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x41000000'
    - item_type: preproc_def
      name: Exp_11
      pos:
        line_end: 1429
        line_start: 1428
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x41000000'
    - item_type: preproc_def
      name: Ebits
      pos:
        line_end: 1430
        line_start: 1429
        source_file: /src/jansson/src/dtoa.c
      type_or_value: "8\t"
    - item_type: preproc_def
      name: Frac_mask
      pos:
        line_end: 1431
        line_start: 1430
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xffffff'
    - item_type: preproc_def
      name: Frac_mask1
      pos:
        line_end: 1432
        line_start: 1431
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xffffff'
    - item_type: preproc_def
      name: Bletch
      pos:
        line_end: 1433
        line_start: 1432
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '4'
    - item_type: preproc_def
      name: Ten_pmax
      pos:
        line_end: 1434
        line_start: 1433
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '22'
    - item_type: preproc_def
      name: Bndry_mask
      pos:
        line_end: 1435
        line_start: 1434
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xefffff'
    - item_type: preproc_def
      name: Bndry_mask1
      pos:
        line_end: 1436
        line_start: 1435
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xffffff'
    - item_type: preproc_def
      name: LSB
      pos:
        line_end: 1437
        line_start: 1436
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: Sign_bit
      pos:
        line_end: 1438
        line_start: 1437
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: Log2P
      pos:
        line_end: 1439
        line_start: 1438
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '4'
    - item_type: preproc_def
      name: Tiny0
      pos:
        line_end: 1440
        line_start: 1439
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: Tiny1
      pos:
        line_end: 1441
        line_start: 1440
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0'
    - item_type: preproc_def
      name: Quick_max
      pos:
        line_end: 1442
        line_start: 1441
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '14'
    - item_type: preproc_def
      name: Int_max
      pos:
        line_end: 1443
        line_start: 1442
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '15'
    - item_type: preproc_def
      name: Flt_Rounds
      pos:
        line_end: 1446
        line_start: 1445
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: Exp_shift
      pos:
        line_end: 1447
        line_start: 1446
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '23'
    - item_type: preproc_def
      name: Exp_shift1
      pos:
        line_end: 1448
        line_start: 1447
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '7'
    - item_type: preproc_def
      name: Exp_msk1
      pos:
        line_end: 1449
        line_start: 1448
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: Exp_msk11
      pos:
        line_end: 1450
        line_start: 1449
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x800000'
    - item_type: preproc_def
      name: Exp_mask
      pos:
        line_end: 1451
        line_start: 1450
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x7f80'
    - item_type: preproc_def
      name: P
      pos:
        line_end: 1452
        line_start: 1451
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '56'
    - item_type: preproc_def
      name: Nbits
      pos:
        line_end: 1453
        line_start: 1452
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '56'
    - item_type: preproc_def
      name: Bias
      pos:
        line_end: 1454
        line_start: 1453
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '129'
    - item_type: preproc_def
      name: Emax
      pos:
        line_end: 1455
        line_start: 1454
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '126'
    - item_type: preproc_def
      name: Emin
      pos:
        line_end: 1456
        line_start: 1455
        source_file: /src/jansson/src/dtoa.c
      type_or_value: (-129)
    - item_type: preproc_def
      name: Exp_1
      pos:
        line_end: 1457
        line_start: 1456
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x40800000'
    - item_type: preproc_def
      name: Exp_11
      pos:
        line_end: 1458
        line_start: 1457
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x4080'
    - item_type: preproc_def
      name: Ebits
      pos:
        line_end: 1459
        line_start: 1458
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '8'
    - item_type: preproc_def
      name: Frac_mask
      pos:
        line_end: 1460
        line_start: 1459
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x7fffff'
    - item_type: preproc_def
      name: Frac_mask1
      pos:
        line_end: 1461
        line_start: 1460
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xffff007f'
    - item_type: preproc_def
      name: Ten_pmax
      pos:
        line_end: 1462
        line_start: 1461
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '24'
    - item_type: preproc_def
      name: Bletch
      pos:
        line_end: 1463
        line_start: 1462
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '2'
    - item_type: preproc_def
      name: Bndry_mask
      pos:
        line_end: 1464
        line_start: 1463
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xffff007f'
    - item_type: preproc_def
      name: Bndry_mask1
      pos:
        line_end: 1465
        line_start: 1464
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xffff007f'
    - item_type: preproc_def
      name: LSB
      pos:
        line_end: 1466
        line_start: 1465
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: Sign_bit
      pos:
        line_end: 1467
        line_start: 1466
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: Log2P
      pos:
        line_end: 1468
        line_start: 1467
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: Tiny0
      pos:
        line_end: 1469
        line_start: 1468
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: Tiny1
      pos:
        line_end: 1470
        line_start: 1469
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0'
    - item_type: preproc_def
      name: Quick_max
      pos:
        line_end: 1471
        line_start: 1470
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '15'
    - item_type: preproc_def
      name: Int_max
      pos:
        line_end: 1472
        line_start: 1471
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '15'
    - item_type: preproc_def
      name: Big0
      pos:
        line_end: 1494
        line_start: 1493
        source_file: /src/jansson/src/dtoa.c
      type_or_value: (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1))
    - item_type: preproc_def
      name: Big1
      pos:
        line_end: 1495
        line_start: 1494
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0xffffffff'
    - item_type: preproc_def
      name: FFFFFFFF
      pos:
        line_end: 1505
        line_start: 1504
        source_file: /src/jansson/src/dtoa.c
      type_or_value: 0xffffffffUL
    - item_type: preproc_def
      name: MTa
      pos:
        line_end: 1508
        line_start: 1507
        source_file: /src/jansson/src/dtoa.c
      type_or_value: ', PTI'
    - item_type: preproc_def
      name: MTb
      pos:
        line_end: 1509
        line_start: 1508
        source_file: /src/jansson/src/dtoa.c
      type_or_value: ', &TI'
    - item_type: preproc_def
      name: MTd
      pos:
        line_end: 1510
        line_start: 1509
        source_file: /src/jansson/src/dtoa.c
      type_or_value: ', ThInfo **PTI'
    - item_type: preproc_def
      name: Kmax
      pos:
        line_end: 1518
        line_start: 1517
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '7'
    - item_type: preproc_def
      name: freelist
      pos:
        line_end: 1582
        line_start: 1581
        source_file: /src/jansson/src/dtoa.c
      type_or_value: TI->Freelist
    - item_type: preproc_def
      name: p5s
      pos:
        line_end: 1583
        line_start: 1582
        source_file: /src/jansson/src/dtoa.c
      type_or_value: TI->P5s
    - item_type: preproc_def
      name: freelist
      pos:
        line_end: 1585
        line_start: 1584
        source_file: /src/jansson/src/dtoa.c
      type_or_value: TI0.Freelist
    - item_type: preproc_def
      name: p5s
      pos:
        line_end: 1586
        line_start: 1585
        source_file: /src/jansson/src/dtoa.c
      type_or_value: TI0.P5s
    - item_type: preproc_def
      name: d0
      pos:
        line_end: 2226
        line_start: 2225
        source_file: /src/jansson/src/dtoa.c
      type_or_value: word0(&d)
    - item_type: preproc_def
      name: d1
      pos:
        line_end: 2227
        line_start: 2226
        source_file: /src/jansson/src/dtoa.c
      type_or_value: word1(&d)
    - item_type: preproc_def
      name: d0
      pos:
        line_end: 2296
        line_start: 2295
        source_file: /src/jansson/src/dtoa.c
      type_or_value: word0(d)
    - item_type: preproc_def
      name: d1
      pos:
        line_end: 2297
        line_start: 2296
        source_file: /src/jansson/src/dtoa.c
      type_or_value: word1(d)
    - item_type: preproc_def
      name: Scale_Bit
      pos:
        line_end: 2470
        line_start: 2469
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: n_bigtens
      pos:
        line_end: 2471
        line_start: 2470
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '5'
    - item_type: preproc_def
      name: n_bigtens
      pos:
        line_end: 2476
        line_start: 2475
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '3'
    - item_type: preproc_def
      name: n_bigtens
      pos:
        line_end: 2480
        line_start: 2479
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '2'
    - item_type: preproc_def
      name: USC
      pos:
        line_end: 2513
        line_start: 2512
        source_file: /src/jansson/src/dtoa.c
      type_or_value: (unsigned char *)
    - item_type: preproc_def
      name: NAN_WORD0
      pos:
        line_end: 2543
        line_start: 2542
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0x7ff80000'
    - item_type: preproc_def
      name: NAN_WORD1
      pos:
        line_end: 2547
        line_start: 2546
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ULbits
      pos:
        line_end: 2631
        line_start: 2630
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '32'
    - item_type: preproc_def
      name: kshift
      pos:
        line_end: 2632
        line_start: 2631
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '5'
    - item_type: preproc_def
      name: kmask
      pos:
        line_end: 2633
        line_start: 2632
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '31'
    - item_type: preproc_def
      name: ULbits
      pos:
        line_end: 2635
        line_start: 2634
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '16'
    - item_type: preproc_def
      name: kshift
      pos:
        line_end: 2636
        line_start: 2635
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '4'
    - item_type: preproc_def
      name: kmask
      pos:
        line_end: 2637
        line_start: 2636
        source_file: /src/jansson/src/dtoa.c
      type_or_value: '15'
    structs:
    - fields:
      - name: b0
        type: unsigned int
      - name: e
        type: int
      item_type: struct
      name: BF96
      pos:
        line_end: 398
        line_start: 395
        source_file: /src/jansson/src/dtoa.c
    - fields:
      - name: dp0
        type: int
      item_type: struct
      name: BCinfo
      pos:
        line_end: 1502
        line_start: 1501
        source_file: /src/jansson/src/dtoa.c
    - fields:
      - name: '*next'
        type: struct Bigint
      - name: k
        type: int
      - name: x[1]
        type: ULong
      item_type: struct
      name: Bigint
      pos:
        line_end: 1530
        line_start: 1525
        source_file: /src/jansson/src/dtoa.c
    - fields:
      - name: '*Freelist[Kmax+1]'
        type: Bigint
      - name: '*P5s'
        type: Bigint
      item_type: struct
      name: ThInfo
      pos:
        line_end: 1537
        line_start: 1533
        source_file: /src/jansson/src/dtoa.c
    typedefs:
    - item_type: typedef
      name: ULong
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/jansson/src/dtoa.c
      type: unsigned Long
    - item_type: typedef
      name: BCinfo
      pos:
        line_end: 1500
        line_start: 1500
        source_file: /src/jansson/src/dtoa.c
      type: BCinfo
    - item_type: typedef
      name: Bigint
      pos:
        line_end: 1532
        line_start: 1532
        source_file: /src/jansson/src/dtoa.c
      type: Bigint
    union:
    - fields:
      - name: d
        type: double
      - name: L[2]
        type: ULong
      item_type: union
      name: U
      pos:
        line_end: 1319
        line_start: 1315
        source_file: /src/jansson/src/dtoa.c
- function_names:
  - token
  - type_name
  - scanner_init
  - next_token
  - prev_token
  - set_error
  - read_string
  - pack_object
  - pack_array
  - pack_string
  - pack_object_inter
  - pack_integer
  - pack_real
  - pack
  - unpack_object
  - json_object_keylen_foreach
  - unpack_array
  - unpack
  - json_vpack_ex
  - json_pack_ex
  - json_pack
  - json_vunpack_ex
  - json_unpack_ex
  - json_unpack
  source_file: /src/jansson/src/pack_unpack.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: line
        type: int
      - name: column
        type: int
      - name: pos
        type: size_t
      - name: token
        type: char
      item_type: struct
      name: token_t
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/jansson/src/pack_unpack.c
    - fields:
      - name: '*start'
        type: char
      - name: '*fmt'
        type: char
      - name: prev_token
        type: token_t
      - name: token
        type: token_t
      - name: next_token
        type: token_t
      - name: '*error'
        type: json_error_t
      - name: flags
        type: size_t
      - name: line
        type: int
      - name: column
        type: int
      - name: pos
        type: size_t
      - name: has_error
        type: int
      item_type: struct
      name: scanner_t
      pos:
        line_end: 32
        line_start: 20
        source_file: /src/jansson/src/pack_unpack.c
    typedefs: []
    union: []
- function_names:
  - jsonp_malloc
  - jsonp_free
  - jsonp_realloc
  - jsonp_strndup
  - json_set_alloc_funcs
  - json_set_alloc_funcs2
  - json_get_alloc_funcs
  - json_get_alloc_funcs2
  source_file: /src/jansson/src/memory.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hashsize
  - hashmask
  - rot
  - mix
  - final
  - hashlittle
  source_file: /src/jansson/src/lookup3.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_LITTLE_ENDIAN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/jansson/src/lookup3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HASH_BIG_ENDIAN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/jansson/src/lookup3.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HASH_LITTLE_ENDIAN
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/jansson/src/lookup3.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HASH_BIG_ENDIAN
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/jansson/src/lookup3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HASH_LITTLE_ENDIAN
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/jansson/src/lookup3.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HASH_BIG_ENDIAN
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/jansson/src/lookup3.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NO_MASKING_TRICK
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/jansson/src/lookup3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NO_MASKING_TRICK
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/jansson/src/lookup3.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NO_MASKING_TRICK
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/jansson/src/lookup3.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: '*ptr'
        type: void
      - name: i
        type: size_t
      item_type: union
      name: u
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/jansson/src/lookup3.h
- function_names:
  - jansson_version_str
  - jansson_version_cmp
  source_file: /src/jansson/src/version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - utf8_encode
  - utf8_check_first
  - utf8_check_full
  - utf8_iterate
  - utf8_check_string
  source_file: /src/jansson/src/utf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - container_of
  - max
  - va_copy
  - json_to_object
  - json_to_array
  - json_to_string
  - json_to_real
  - json_to_integer
  - vsnprintf
  source_file: /src/jansson/src/jansson_private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: va_copy
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/jansson/src/jansson_private.h
      type_or_value: __va_copy
    - item_type: preproc_def
      name: LOOP_KEY_LEN
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/jansson/src/jansson_private.h
      type_or_value: (2 + (sizeof(json_t *) * 2) + 1)
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/jansson/src/jansson_private.h
      type_or_value: _snprintf
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/jansson/src/jansson_private.h
      type_or_value: _snprintf
    - item_type: preproc_def
      name: vsnprintf
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/jansson/src/jansson_private.h
      type_or_value: _vsnprintf
    structs:
    - fields:
      - name: json
        type: json_t
      - name: hashtable
        type: hashtable_t
      item_type: struct
      name: json_object_t
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/jansson/src/jansson_private.h
    - fields:
      - name: json
        type: json_t
      - name: size
        type: size_t
      - name: entries
        type: size_t
      - name: '**table'
        type: json_t
      item_type: struct
      name: json_array_t
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/jansson/src/jansson_private.h
    - fields:
      - name: json
        type: json_t
      - name: '*value'
        type: char
      - name: length
        type: size_t
      item_type: struct
      name: json_string_t
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/jansson/src/jansson_private.h
    - fields:
      - name: json
        type: json_t
      - name: value
        type: double
      item_type: struct
      name: json_real_t
      pos:
        line_end: 57
        line_start: 54
        source_file: /src/jansson/src/jansson_private.h
    - fields:
      - name: json
        type: json_t
      - name: value
        type: json_int_t
      item_type: struct
      name: json_integer_t
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/jansson/src/jansson_private.h
    typedefs: []
    union: []
- function_names:
  - print_json
  - print_json_aux
  - print_json_indent
  - json_plural
  - print_json_object
  - json_object_foreach
  - print_json_array
  - print_json_string
  - print_json_integer
  - print_json_real
  - print_json_true
  - print_json_false
  - print_json_null
  - load_json
  - read_line
  - main
  source_file: /src/jansson/examples/simple_parse.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CHARS
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/jansson/examples/simple_parse.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
