All classes:
- jwt.exceptions.PyJWTError
- jwt.exceptions.InvalidTokenError
- jwt.exceptions.DecodeError
- jwt.exceptions.InvalidSignatureError
- jwt.exceptions.ExpiredSignatureError
- jwt.exceptions.InvalidAudienceError
- jwt.exceptions.InvalidIssuerError
- jwt.exceptions.InvalidIssuedAtError
- jwt.exceptions.ImmatureSignatureError
- jwt.exceptions.InvalidKeyError
- jwt.exceptions.InvalidAlgorithmError
- jwt.exceptions.MissingRequiredClaimError
- jwt.exceptions.PyJWKError
- jwt.exceptions.MissingCryptographyError
- jwt.exceptions.PyJWKSetError
- jwt.exceptions.PyJWKClientError
- jwt.exceptions.PyJWKClientConnectionError
- jwt.exceptions.InvalidSubjectError
- jwt.exceptions.InvalidJTIError
- jwt.types.SigOptions
- jwt.types.Options
- jwt.types.FullOptions
- jwt.algorithms.Algorithm
- jwt.algorithms.NoneAlgorithm
- jwt.algorithms.HMACAlgorithm
- jwt.algorithms.RSAAlgorithm
- jwt.algorithms.ECAlgorithm
- jwt.algorithms.RSAPSSAlgorithm
- jwt.algorithms.OKPAlgorithm
- jwt.api_jwk.PyJWK
- jwt.api_jwk.PyJWKSet
- jwt.api_jwk.PyJWTSetWithTimestamp
- jwt.warnings.RemovedInPyjwt3Warning
- jwt.api_jws.PyJWS
- jwt.api_jwt.PyJWT
- jwt.jwk_set_cache.JWKSetCache
- jwt.jwks_client.PyJWKClient
All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: '...fuzz_jwt'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 0
    functionsReached:
    - atheris.Fuzz
    - atheris.instrument_all
    - atheris.Setup
    - '...fuzz_jwt.main'
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 25
    functionName: '...fuzz_jwt.test_decoding'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 1
    functionsReached:
    - atheris.FuzzedDataProvider
    - fdp.ConsumeUnicodeNoSurrogates
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.FuzzedDataProvider
    functionSourceFile: atheris
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeUnicodeNoSurrogates
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: '...fuzz_jwt.test_roundtrip'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 1
    functionsReached:
    - atheris.FuzzedDataProvider
    - fdp.ConsumeUnicodeNoSurrogates
    - <builtin>.isinstance
    - json.loads
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.loads
    functionSourceFile: json
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 49
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 55
    functionName: '...fuzz_jwt.TestOneInput'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 0
    functionsReached:
    - atheris.FuzzedDataProvider
    - '...fuzz_jwt.test_roundtrip'
    - fdp.ConsumeUnicodeNoSurrogates
    - json.loads
    - '...fuzz_jwt.test_decoding'
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 60
    functionName: '...fuzz_jwt.main'
    functionSourceFile: '...fuzz_jwt'
    functionUses: 1
    functionsReached:
    - atheris.Fuzz
    - atheris.Setup
    - atheris.instrument_all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_all
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Setup
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Fuzz
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt
    functionSourceFile: jwt
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: jwt.api_jws
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - jwt.algorithms.get_default_algorithms
    - jwt.api_jws.PyJWS.__init__
    - <builtin>.set
    - <builtin>.list
    - jwt.algorithms.HMACAlgorithm.__init__
    - jwt.api_jws.PyJWS._get_default_options
    - default_algorithms.update
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa2a9c8e0>
    - <ast.Constant object at 0x7f6aa2a9c790>
    argNames:
    - self
    - algorithms
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 33
    functionName: jwt.api_jws.PyJWS.__init__
    functionSourceFile: jwt.api_jws
    functionUses: 1
    functionsReached:
    - default_algorithms.update
    - jwt.algorithms.get_default_algorithms
    - <builtin>.set
    - <builtin>.list
    - jwt.api_jws.PyJWS._get_default_options
    - jwt.algorithms.HMACAlgorithm.__init__
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 157
    functionName: jwt.algorithms.get_default_algorithms
    functionSourceFile: jwt.algorithms
    functionUses: 11
    functionsReached:
    - jwt.algorithms.HMACAlgorithm.__init__
    - abc.ABC.__init__
    - default_algorithms.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.set
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 53
    functionName: jwt.api_jws.PyJWS._get_default_options
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - alg_id
    - alg_obj
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 56
    functionName: jwt.api_jws.PyJWS.register_algorithm
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - alg_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 73
    functionName: jwt.api_jws.PyJWS.unregister_algorithm
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 88
    functionName: jwt.api_jws.PyJWS.get_algorithms
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - alg_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 96
    functionName: jwt.api_jws.PyJWS.get_algorithm_by_name
    functionSourceFile: jwt.api_jws
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 5
    IfCount: 12
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa23466d0>
    - <ast.Constant object at 0x7f6aa23466a0>
    - <ast.Constant object at 0x7f6aa23464f0>
    - <ast.Constant object at 0x7f6aa2346820>
    - <ast.Constant object at 0x7f6aa2346ac0>
    argNames:
    - self
    - payload
    - key
    - algorithm
    - headers
    - json_encoder
    - is_payload_detached
    - sort_headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 117
    functionName: jwt.api_jws.PyJWS.encode
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - jwt.api_jws.PyJWS._validate_kid
    - segments.append
    - encoded_string.decode
    - alg_obj.prepare_key
    - jwt.api_jws.PyJWS.get_algorithm_by_name
    - jwt.api_jws.PyJWS._validate_headers
    - json.dumps
    - headers.get
    - <builtin>.isinstance
    - jwt.utils.base64url_encode
    - base64.urlsafe_b64encode
    - alg_obj.sign
    - header.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - headers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 345
    functionName: jwt.api_jws.PyJWS._validate_headers
    functionSourceFile: jwt.api_jws
    functionUses: 2
    functionsReached:
    - jwt.api_jws.PyJWS._validate_kid
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.dumps
    functionSourceFile: json
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - input
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: jwt.utils.base64url_encode
    functionSourceFile: jwt.utils
    functionUses: 6
    functionsReached:
    - base64.urlsafe_b64encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: segments.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: alg_obj.prepare_key
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: alg_obj.sign
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoded_string.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa24179d0>
    - <ast.Constant object at 0x7f6aa2417940>
    - <ast.Constant object at 0x7f6aa2417a00>
    - <ast.Constant object at 0x7f6aa2417190>
    argNames:
    - self
    - jwt
    - key
    - algorithms
    - options
    - detached_payload
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 194
    functionName: jwt.api_jws.PyJWS.decode_complete
    functionSourceFile: jwt.api_jws
    functionUses: 1
    functionsReached:
    - signing_input.split
    - alg_obj.verify
    - json.loads
    - base64.urlsafe_b64decode
    - warnings.warn
    - jwt.encode
    - <builtin>.len
    - value.encode
    - jwt.api_jws.PyJWS._verify_signature
    - jwt.utils.force_bytes
    - header.get
    - jwt.api_jws.PyJWS._load
    - alg_obj.prepare_key
    - <builtin>.isinstance
    - <builtin>.tuple
    - kwargs.keys
    - jwt.api_jws.PyJWS.get_algorithm_by_name
    - jwt.utils.base64url_decode
    - jwt.rsplit
    linkageType: pythonLinkage
    raised:
    - DecodeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.keys
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.tuple
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: warnings.warn
    functionSourceFile: warnings
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - jwt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 276
    functionName: jwt.api_jws.PyJWS._load
    functionSourceFile: jwt.api_jws
    functionUses: 3
    functionsReached:
    - signing_input.split
    - json.loads
    - jwt.utils.base64url_decode
    - jwt.rsplit
    - jwt.utils.force_bytes
    - base64.urlsafe_b64decode
    - <builtin>.isinstance
    - jwt.encode
    - <builtin>.len
    - value.encode
    linkageType: pythonLinkage
    raised:
    - DecodeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa2b02c70>
    - <ast.Constant object at 0x7f6aa2b022b0>
    argNames:
    - self
    - signing_input
    - header
    - signature
    - key
    - algorithms
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 314
    functionName: jwt.api_jws.PyJWS._verify_signature
    functionSourceFile: jwt.api_jws
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - alg_obj.prepare_key
    - alg_obj.verify
    - jwt.api_jws.PyJWS.get_algorithm_by_name
    linkageType: pythonLinkage
    raised:
    - InvalidSignatureError
    - InvalidAlgorithmError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa23ec370>
    - <ast.Constant object at 0x7f6aa23ec790>
    - <ast.Constant object at 0x7f6aa23eceb0>
    - <ast.Constant object at 0x7f6aa23ec130>
    argNames:
    - self
    - jwt
    - key
    - algorithms
    - options
    - detached_payload
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 243
    functionName: jwt.api_jws.PyJWS.decode
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - signing_input.split
    - alg_obj.verify
    - json.loads
    - jwt.api_jws.PyJWS.decode_complete
    - base64.urlsafe_b64decode
    - warnings.warn
    - jwt.encode
    - <builtin>.len
    - value.encode
    - jwt.api_jws.PyJWS._verify_signature
    - jwt.utils.force_bytes
    - header.get
    - jwt.api_jws.PyJWS._load
    - alg_obj.prepare_key
    - <builtin>.isinstance
    - <builtin>.tuple
    - kwargs.keys
    - jwt.api_jws.PyJWS.get_algorithm_by_name
    - jwt.utils.base64url_decode
    - jwt.rsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - jwt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 265
    functionName: jwt.api_jws.PyJWS.get_unverified_header
    functionSourceFile: jwt.api_jws
    functionUses: 0
    functionsReached:
    - jwt.api_jws.PyJWS._validate_kid
    - signing_input.split
    - json.loads
    - jwt.api_jws.PyJWS._validate_headers
    - jwt.utils.base64url_decode
    - jwt.rsplit
    - jwt.utils.force_bytes
    - base64.urlsafe_b64decode
    - <builtin>.isinstance
    - jwt.encode
    - jwt.api_jws.PyJWS._load
    - <builtin>.len
    - value.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.rsplit
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signing_input.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - input
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 25
    functionName: jwt.utils.base64url_decode
    functionSourceFile: jwt.utils
    functionUses: 9
    functionsReached:
    - jwt.utils.force_bytes
    - base64.urlsafe_b64decode
    - <builtin>.isinstance
    - <builtin>.len
    - value.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: alg_obj.verify
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 349
    functionName: jwt.api_jws.PyJWS._validate_kid
    functionSourceFile: jwt.api_jws
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - InvalidTokenError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.warnings
    functionSourceFile: jwt.warnings
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.jwks_client
    functionSourceFile: jwt.jwks_client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa2b02490>
    - <ast.Constant object at 0x7f6aa2b02ee0>
    - <ast.Constant object at 0x7f6aa2b02f40>
    - <ast.Constant object at 0x7f6aa2b02430>
    - <ast.Constant object at 0x7f6aa2b02910>
    - <ast.Constant object at 0x7f6aa2b029a0>
    - <ast.Constant object at 0x7f6aa2b028b0>
    argNames:
    - self
    - uri
    - cache_keys
    - max_cached_keys
    - cache_jwk_set
    - lifespan
    - headers
    - timeout
    - ssl_context
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 17
    functionName: jwt.jwks_client.PyJWKClient.__init__
    functionSourceFile: jwt.jwks_client
    functionUses: 0
    functionsReached:
    - jwt.jwk_set_cache.JWKSetCache.__init__
    - functools.lru_cache
    linkageType: pythonLinkage
    raised:
    - PyJWKClientError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - lifespan
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 8
    functionName: jwt.jwk_set_cache.JWKSetCache.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: functools.lru_cache
    functionSourceFile: functools
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 53
    functionName: jwt.jwks_client.PyJWKClient.fetch_data
    functionSourceFile: jwt.jwks_client
    functionUses: 3
    functionsReached:
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - urllib.request.urlopen
    - urllib.request.Request
    - time.monotonic
    - json.load
    - jwt.jwk_set_cache.JWKSetCache.put
    linkageType: pythonLinkage
    raised:
    - PyJWKClientConnectionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.request.Request
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.request.urlopen
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.load
    functionSourceFile: json
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - jwk_set
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 12
    functionName: jwt.jwk_set_cache.JWKSetCache.put
    functionSourceFile: jwt.jwk_set_cache
    functionUses: 4
    functionsReached:
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa2ad1df0>
    argNames:
    - self
    - refresh
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 71
    functionName: jwt.jwks_client.PyJWKClient.get_jwk_set
    functionSourceFile: jwt.jwks_client
    functionUses: 2
    functionsReached:
    - jwt.algorithms.get_default_algorithms
    - jwt.api_jwk.PyJWK.__init__
    - urllib.request.Request
    - json.load
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - jwt.api_jwk.PyJWKSet.from_dict
    - <builtin>.len
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - obj.get
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - jwt.api_jwk.PyJWKSet.__init__
    - jwt.jwk_set_cache.JWKSetCache.get
    - time.monotonic
    - <builtin>.isinstance
    - default_algorithms.update
    - jwt.algorithms.HMACAlgorithm.__init__
    - jwt.jwk_set_cache.JWKSetCache.put
    - jwt.jwks_client.PyJWKClient.fetch_data
    - urllib.request.urlopen
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised:
    - PyJWKClientError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 19
    functionName: jwt.jwk_set_cache.JWKSetCache.get
    functionSourceFile: jwt.jwk_set_cache
    functionUses: 3
    functionsReached:
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 159
    functionName: jwt.api_jwk.PyJWKSet.from_dict
    functionSourceFile: jwt.api_jwk
    functionUses: 4
    functionsReached:
    - default_algorithms.update
    - jwt.algorithms.get_default_algorithms
    - jwt.api_jwk.PyJWK.__init__
    - obj.get
    - <builtin>.isinstance
    - jwt.algorithms.HMACAlgorithm.__init__
    - abc.ABC.__init__
    - jwt.api_jwk.PyJWKSet.__init__
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa284c2e0>
    argNames:
    - self
    - refresh
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 84
    functionName: jwt.jwks_client.PyJWKClient.get_signing_keys
    functionSourceFile: jwt.jwks_client
    functionUses: 1
    functionsReached:
    - jwt.algorithms.get_default_algorithms
    - jwt.api_jwk.PyJWK.__init__
    - urllib.request.Request
    - json.load
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - jwt.api_jwk.PyJWKSet.from_dict
    - <builtin>.len
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - obj.get
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - jwt.api_jwk.PyJWKSet.__init__
    - jwt.jwk_set_cache.JWKSetCache.get
    - time.monotonic
    - <builtin>.isinstance
    - jwt.algorithms.HMACAlgorithm.__init__
    - jwt.jwk_set_cache.JWKSetCache.put
    - default_algorithms.update
    - jwt.jwks_client.PyJWKClient.get_jwk_set
    - jwt.jwks_client.PyJWKClient.fetch_data
    - urllib.request.urlopen
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised:
    - PyJWKClientError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 97
    functionName: jwt.jwks_client.PyJWKClient.get_signing_key
    functionSourceFile: jwt.jwks_client
    functionUses: 0
    functionsReached:
    - jwt.algorithms.get_default_algorithms
    - jwt.api_jwk.PyJWK.__init__
    - urllib.request.Request
    - json.load
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - jwt.api_jwk.PyJWKSet.from_dict
    - <builtin>.len
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - jwt.jwks_client.PyJWKClient.match_kid
    - obj.get
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - jwt.api_jwk.PyJWKSet.__init__
    - jwt.jwk_set_cache.JWKSetCache.get
    - jwt.jwks_client.PyJWKClient.get_signing_keys
    - time.monotonic
    - <builtin>.isinstance
    - jwt.jwk_set_cache.JWKSetCache.put
    - jwt.algorithms.HMACAlgorithm.__init__
    - default_algorithms.update
    - jwt.jwks_client.PyJWKClient.get_jwk_set
    - jwt.jwks_client.PyJWKClient.fetch_data
    - urllib.request.urlopen
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised:
    - PyJWKClientError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - signing_keys
    - kid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 119
    functionName: jwt.jwks_client.PyJWKClient.match_kid
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - token
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 113
    functionName: jwt.jwks_client.PyJWKClient.get_signing_key_from_jwt
    functionSourceFile: jwt.jwks_client
    functionUses: 0
    functionsReached:
    - options.get
    - json.loads
    - jwt.api_jwt.PyJWT._validate_claims
    - leeway.total_seconds
    - jwt.api_jwt.PyJWT._validate_iat
    - jwt.api_jwt.PyJWT._validate_nbf
    - <builtin>.all
    - warnings.warn
    - jwt.api_jwt.PyJWT._validate_exp
    - jwt.api_jwt.PyJWT._merge_options
    - datetime.datetime.now
    - <builtin>.any
    - jwt.api_jwt.PyJWT._validate_required_claims
    - jwt.api_jwt.PyJWT._validate_iss
    - header.get
    - jwt.api_jwt.PyJWT._validate_jti
    - payload.get
    - jwt.api_jwt.PyJWT._validate_sub
    - jwt.api_jwt.PyJWT._validate_aud
    - <builtin>.isinstance
    - <builtin>.tuple
    - kwargs.keys
    - <builtin>.int
    - jwt.api_jwt.PyJWT.decode_complete
    - jwt.api_jwt.PyJWT._decode_payload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa22d8250>
    - <ast.Constant object at 0x7f6aa22d8dc0>
    - <ast.Constant object at 0x7f6aa22d8b20>
    - <ast.Constant object at 0x7f6aa22d8a00>
    - <ast.Constant object at 0x7f6aa22d8df0>
    - <ast.Constant object at 0x7f6aa22d8c70>
    - <ast.Constant object at 0x7f6aa22d8160>
    - <ast.Constant object at 0x7f6aa22d86a0>
    - <ast.Constant object at 0x7f6aa22d80d0>
    argNames:
    - self
    - jwt
    - key
    - algorithms
    - options
    - verify
    - detached_payload
    - audience
    - issuer
    - subject
    - leeway
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 169
    functionName: jwt.api_jwt.PyJWT.decode_complete
    functionSourceFile: jwt.api_jwt
    functionUses: 2
    functionsReached:
    - options.get
    - json.loads
    - jwt.api_jwt.PyJWT._validate_claims
    - leeway.total_seconds
    - jwt.api_jwt.PyJWT._validate_iat
    - jwt.api_jwt.PyJWT._validate_nbf
    - <builtin>.all
    - warnings.warn
    - jwt.api_jwt.PyJWT._validate_exp
    - jwt.api_jwt.PyJWT._merge_options
    - datetime.datetime.now
    - <builtin>.any
    - jwt.api_jwt.PyJWT._validate_required_claims
    - jwt.api_jwt.PyJWT._validate_iss
    - jwt.api_jwt.PyJWT._validate_jti
    - payload.get
    - jwt.api_jwt.PyJWT._validate_sub
    - jwt.api_jwt.PyJWT._validate_aud
    - <builtin>.isinstance
    - <builtin>.tuple
    - kwargs.keys
    - <builtin>.int
    - jwt.api_jwt.PyJWT._decode_payload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.jwk_set_cache
    functionSourceFile: jwt.jwk_set_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - jwk_set
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 179
    functionName: jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    functionSourceFile: jwt.api_jwk
    functionUses: 5
    functionsReached:
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 25
    functionName: jwt.jwk_set_cache.JWKSetCache.is_expired
    functionSourceFile: jwt.jwk_set_cache
    functionUses: 4
    functionsReached:
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 183
    functionName: jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.monotonic
    functionSourceFile: time
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 186
    functionName: jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    functionSourceFile: ''
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.api_jwk
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 1
    IfCount: 15
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa2ab0fd0>
    argNames:
    - self
    - jwk_data
    - algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 20
    functionName: jwt.api_jwk.PyJWK.__init__
    functionSourceFile: jwt.api_jwk
    functionUses: 8
    functionsReached:
    - default_algorithms.update
    - jwt.algorithms.get_default_algorithms
    - <builtin>.isinstance
    - jwt.algorithms.HMACAlgorithm.__init__
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised:
    - MissingCryptographyError
    - InvalidKeyError
    - PyJWKError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa22de280>
    argNames:
    - obj
    - algorithm
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 84
    functionName: jwt.api_jwk.PyJWK.from_dict
    functionSourceFile: jwt.api_jwk
    functionUses: 1
    functionsReached:
    - default_algorithms.update
    - jwt.algorithms.get_default_algorithms
    - jwt.api_jwk.PyJWK.__init__
    - <builtin>.isinstance
    - jwt.algorithms.HMACAlgorithm.__init__
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa22de550>
    argNames:
    - data
    - algorithm
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 96
    functionName: jwt.api_jwk.PyJWK.from_json
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached:
    - jwt.api_jwk.PyJWK.from_dict
    - default_algorithms.update
    - jwt.algorithms.get_default_algorithms
    - jwt.api_jwk.PyJWK.__init__
    - json.loads
    - <builtin>.isinstance
    - jwt.algorithms.HMACAlgorithm.__init__
    - abc.ABC.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 110
    functionName: jwt.api_jwk.PyJWK.key_type
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 118
    functionName: jwt.api_jwk.PyJWK.key_id
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 126
    functionName: jwt.api_jwk.PyJWK.public_key_use
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - keys
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 135
    functionName: jwt.api_jwk.PyJWKSet.__init__
    functionSourceFile: jwt.api_jwk
    functionUses: 5
    functionsReached:
    - default_algorithms.update
    - jwt.algorithms.get_default_algorithms
    - jwt.api_jwk.PyJWK.__init__
    - <builtin>.isinstance
    - jwt.algorithms.HMACAlgorithm.__init__
    - abc.ABC.__init__
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - PyJWKSetError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.get
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 164
    functionName: jwt.api_jwk.PyJWKSet.from_json
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached:
    - jwt.algorithms.get_default_algorithms
    - jwt.api_jwk.PyJWK.__init__
    - json.loads
    - obj.get
    - jwt.algorithms.HMACAlgorithm.__init__
    - abc.ABC.__init__
    - <builtin>.isinstance
    - default_algorithms.update
    - jwt.api_jwk.PyJWKSet.from_dict
    - jwt.api_jwk.PyJWKSet.__init__
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 168
    functionName: jwt.api_jwk.PyJWKSet.__getitem__
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 174
    functionName: jwt.api_jwk.PyJWKSet.__iter__
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.iter
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: jwt.algorithms
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - os.getenv
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getenv
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bool
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.ABC.__init__
    functionSourceFile: ''
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hash_alg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 332
    functionName: jwt.algorithms.HMACAlgorithm.__init__
    functionSourceFile: ''
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: default_algorithms.update
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bytestr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 199
    functionName: jwt.algorithms.Algorithm.compute_hash_digest
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - <builtin>.bytes
    - <builtin>.getattr
    - cryptography.hazmat.primitives.hashes.Hash
    - digest.finalize
    - <builtin>.issubclass
    - <builtin>.isinstance
    - digest.update
    - cryptography.hazmat.backends.default_backend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.getattr
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.issubclass
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.backends.default_backend
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.hashes.Hash
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: digest.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: digest.finalize
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bytes
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 221
    functionName: jwt.algorithms.Algorithm.check_crypto_key_type
    functionSourceFile: jwt.algorithms
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: jwt.algorithms.Algorithm
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.abstractmethod
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 245
    functionName: jwt.algorithms.Algorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 252
    functionName: jwt.algorithms.Algorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 259
    functionName: jwt.algorithms.Algorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.overload
    functionSourceFile: ''
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa23833a0>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 279
    functionName: jwt.algorithms.Algorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 286
    functionName: jwt.algorithms.Algorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 298
    functionName: jwt.algorithms.NoneAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 307
    functionName: jwt.algorithms.NoneAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 310
    functionName: jwt.algorithms.NoneAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa28e5ca0>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 314
    functionName: jwt.algorithms.NoneAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 318
    functionName: jwt.algorithms.NoneAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 335
    functionName: jwt.algorithms.HMACAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - jwt.utils.is_ssh_key
    - <builtin>.bool
    - key.startswith
    - jwt.utils.force_bytes
    - jwt.utils.is_pem_format
    - _PEM_RE.search
    - <builtin>.isinstance
    - value.encode
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 16
    functionName: jwt.utils.force_bytes
    functionSourceFile: jwt.utils
    functionUses: 15
    functionsReached:
    - <builtin>.isinstance
    - value.encode
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - key
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 126
    functionName: jwt.utils.is_pem_format
    functionSourceFile: jwt.utils
    functionUses: 1
    functionsReached:
    - _PEM_RE.search
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - key
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 141
    functionName: jwt.utils.is_ssh_key
    functionSourceFile: jwt.utils
    functionUses: 1
    functionsReached:
    - key.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: jwt.algorithms.HMACAlgorithm
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa23ffe80>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 355
    functionName: jwt.algorithms.HMACAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - json.dumps
    - jwt.utils.force_bytes
    - <builtin>.isinstance
    - jwt.utils.base64url_encode
    - base64.urlsafe_b64encode
    - value.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 367
    functionName: jwt.algorithms.HMACAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - json.loads
    - obj.get
    - jwt.utils.base64url_decode
    - jwt.utils.force_bytes
    - base64.urlsafe_b64decode
    - <builtin>.isinstance
    - <builtin>.len
    - value.encode
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 383
    functionName: jwt.algorithms.HMACAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 1
    functionsReached:
    - hmac.new
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hmac.new
    functionSourceFile: hmac
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 386
    functionName: jwt.algorithms.HMACAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - hmac.compare_digest
    - jwt.algorithms.HMACAlgorithm.sign
    - hmac.new
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hmac.compare_digest
    functionSourceFile: hmac
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hash_alg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 404
    functionName: jwt.algorithms.RSAAlgorithm.__init__
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 407
    functionName: jwt.algorithms.RSAAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.serialization.load_ssh_public_key
    - jwt.algorithms.Algorithm.check_crypto_key_type
    - cryptography.hazmat.primitives.serialization.load_pem_public_key
    - typing.cast
    - key_bytes.startswith
    - jwt.utils.force_bytes
    - <builtin>.isinstance
    - value.encode
    - cryptography.hazmat.primitives.serialization.load_pem_private_key
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key_bytes.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.serialization.load_ssh_public_key
    functionSourceFile: cryptography
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast
    functionSourceFile: typing
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.serialization.load_pem_private_key
    functionSourceFile: cryptography
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.serialization.load_pem_public_key
    functionSourceFile: cryptography
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: jwt.algorithms.RSAAlgorithm
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa234bbb0>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 446
    functionName: jwt.algorithms.RSAAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - key_obj.public_numbers
    - val.to_bytes
    - <builtin>.hasattr
    - val.bit_length
    - key_obj.private_numbers
    - json.dumps
    - jwt.utils.to_base64url_uint
    - jwt.utils.bytes_from_int
    - jwt.utils.base64url_encode
    - base64.urlsafe_b64encode
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.hasattr
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key_obj.private_numbers
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - val
    - bit_length
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 40
    functionName: jwt.utils.to_base64url_uint
    functionSourceFile: jwt.utils
    functionUses: 2
    functionsReached:
    - val.to_bytes
    - val.bit_length
    - jwt.utils.bytes_from_int
    - jwt.utils.base64url_encode
    - base64.urlsafe_b64encode
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key_obj.public_numbers
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 0
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 485
    functionName: jwt.algorithms.RSAAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - json.loads
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_dmp1
    - <builtin>.all
    - base64.urlsafe_b64decode
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicNumbers.public_key
    - <builtin>.len
    - value.encode
    - <builtin>.any
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicNumbers
    - obj.get
    - jwt.utils.force_bytes
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_dmq1
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_iqmp
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateNumbers
    - <builtin>.isinstance
    - int.from_bytes
    - jwt.utils.from_base64url_uint
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors
    - jwt.utils.base64url_decode
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateNumbers.private_key
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.any
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.all
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 52
    functionName: jwt.utils.from_base64url_uint
    functionSourceFile: jwt.utils
    functionUses: 1
    functionsReached:
    - jwt.utils.base64url_decode
    - jwt.utils.force_bytes
    - base64.urlsafe_b64decode
    - <builtin>.isinstance
    - int.from_bytes
    - <builtin>.len
    - value.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicNumbers
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateNumbers
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_dmp1
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_dmq1
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_iqmp
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateNumbers.private_key
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicNumbers.public_key
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 556
    functionName: jwt.algorithms.RSAAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.padding.PKCS1v15
    - key.sign
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.padding.PKCS1v15
    functionSourceFile: cryptography
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.sign
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 560
    functionName: jwt.algorithms.RSAAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.padding.PKCS1v15
    - key.verify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.verify
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hash_alg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 579
    functionName: jwt.algorithms.ECAlgorithm.__init__
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 582
    functionName: jwt.algorithms.ECAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.serialization.load_ssh_public_key
    - jwt.algorithms.Algorithm.check_crypto_key_type
    - cryptography.hazmat.primitives.serialization.load_pem_public_key
    - typing.cast
    - key_bytes.startswith
    - jwt.utils.force_bytes
    - <builtin>.isinstance
    - value.encode
    - cryptography.hazmat.primitives.serialization.load_pem_private_key
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 608
    functionName: jwt.algorithms.ECAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - jwt.utils.der_to_raw_signature
    - binascii.a2b_hex
    - jwt.utils.number_to_bytes
    - key.sign
    - padded_hex.encode
    - cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature
    - cryptography.hazmat.primitives.asymmetric.ec.ECDSA
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ec.ECDSA
    functionSourceFile: cryptography
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - der_sig
    - curve
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 74
    functionName: jwt.utils.der_to_raw_signature
    functionSourceFile: jwt.utils
    functionUses: 1
    functionsReached:
    - binascii.a2b_hex
    - jwt.utils.number_to_bytes
    - padded_hex.encode
    - cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 613
    functionName: jwt.algorithms.ECAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - <builtin>.bytes
    - jwt.utils.bytes_to_number
    - jwt.utils.raw_to_der_signature
    - cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature
    - key.public_key
    - <builtin>.isinstance
    - binascii.b2a_hex
    - public_key.verify
    - <builtin>.int
    - <builtin>.len
    - cryptography.hazmat.primitives.asymmetric.ec.ECDSA
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - raw_sig
    - curve
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 83
    functionName: jwt.utils.raw_to_der_signature
    functionSourceFile: jwt.utils
    functionUses: 1
    functionsReached:
    - <builtin>.bytes
    - jwt.utils.bytes_to_number
    - cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature
    - binascii.b2a_hex
    - <builtin>.int
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.public_key
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: public_key.verify
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: jwt.algorithms.ECAlgorithm
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 0
    IfCount: 8
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa2417220>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 639
    functionName: jwt.algorithms.ECAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - key_obj.public_numbers
    - val.to_bytes
    - val.bit_length
    - key_obj.private_numbers
    - json.dumps
    - key_obj.public_key
    - jwt.utils.to_base64url_uint
    - jwt.utils.bytes_from_int
    - <builtin>.isinstance
    - jwt.utils.base64url_encode
    - base64.urlsafe_b64encode
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key_obj.public_key
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 0
    IfCount: 14
    argCount: 1
    argDefaultValues: []
    argNames:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 683
    functionName: jwt.algorithms.ECAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.ec.SECP384R1
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers
    - cryptography.hazmat.primitives.asymmetric.ec.SECP256K1
    - <builtin>.isinstance
    - json.loads
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.public_key
    - obj.get
    - jwt.utils.base64url_decode
    - jwt.utils.force_bytes
    - cryptography.hazmat.primitives.asymmetric.ec.SECP256R1
    - base64.urlsafe_b64decode
    - cryptography.hazmat.primitives.asymmetric.ec.SECP521R1
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateNumbers.private_key
    - int.from_bytes
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateNumbers
    - <builtin>.len
    - value.encode
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ec.SECP256R1
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ec.SECP384R1
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ec.SECP521R1
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ec.SECP256K1
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: int.from_bytes
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.public_key
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateNumbers
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateNumbers.private_key
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 761
    functionName: jwt.algorithms.RSAPSSAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.padding.MGF1
    - cryptography.hazmat.primitives.asymmetric.padding.PSS
    - key.sign
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.padding.MGF1
    functionSourceFile: cryptography
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.padding.PSS
    functionSourceFile: cryptography
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 772
    functionName: jwt.algorithms.RSAPSSAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.padding.PSS
    - cryptography.hazmat.primitives.asymmetric.padding.MGF1
    - key.verify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 796
    functionName: jwt.algorithms.OKPAlgorithm.__init__
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 799
    functionName: jwt.algorithms.OKPAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - jwt.algorithms.Algorithm.check_crypto_key_type
    - cryptography.hazmat.primitives.serialization.load_ssh_public_key
    - key.decode
    - cryptography.hazmat.primitives.serialization.load_pem_public_key
    - typing.cast
    - key.encode
    - <builtin>.isinstance
    - cryptography.hazmat.primitives.serialization.load_pem_private_key
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 821
    functionName: jwt.algorithms.OKPAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - key.sign
    - msg.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: msg.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - key
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 835
    functionName: jwt.algorithms.OKPAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - key.public_key
    - <builtin>.isinstance
    - public_key.verify
    - sig.encode
    - msg.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sig.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: jwt.algorithms.OKPAlgorithm
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa1e660a0>
    argNames:
    - key
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 870
    functionName: jwt.algorithms.OKPAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - key.public_bytes
    - key.private_bytes
    - <builtin>.isinstance
    - json.dumps
    - jwt.utils.force_bytes
    - key.public_key
    - cryptography.hazmat.primitives.serialization.NoEncryption
    - jwt.utils.base64url_encode
    - base64.urlsafe_b64encode
    - value.encode
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.public_bytes
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.serialization.NoEncryption
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.private_bytes
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 0
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - jwk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 917
    functionName: jwt.algorithms.OKPAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.ed448.Ed448PrivateKey.from_private_bytes
    - json.loads
    - obj.get
    - jwt.utils.base64url_decode
    - jwt.utils.force_bytes
    - cryptography.hazmat.primitives.asymmetric.ed448.Ed448PublicKey.from_public_bytes
    - cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PublicKey.from_public_bytes
    - base64.urlsafe_b64decode
    - <builtin>.isinstance
    - value.encode
    - <builtin>.len
    - cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PrivateKey.from_private_bytes
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PublicKey.from_public_bytes
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ed448.Ed448PublicKey.from_public_bytes
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PrivateKey.from_private_bytes
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.ed448.Ed448PrivateKey.from_private_bytes
    functionSourceFile: cryptography
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: jwt.utils
    functionSourceFile: jwt.utils
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.encode
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.urlsafe_b64decode
    functionSourceFile: base64
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.urlsafe_b64encode
    functionSourceFile: base64
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - val
    - bit_length
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: jwt.utils.bytes_from_int
    functionSourceFile: jwt.utils
    functionUses: 3
    functionsReached:
    - val.to_bytes
    - val.bit_length
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - num
    - num_bytes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: jwt.utils.number_to_bytes
    functionSourceFile: jwt.utils
    functionUses: 2
    functionsReached:
    - binascii.a2b_hex
    - padded_hex.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: padded_hex.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: binascii.a2b_hex
    functionSourceFile: binascii
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: jwt.utils.bytes_to_number
    functionSourceFile: jwt.utils
    functionUses: 2
    functionsReached:
    - binascii.b2a_hex
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: binascii.b2a_hex
    functionSourceFile: binascii
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.int
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: val.bit_length
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: val.to_bytes
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature
    functionSourceFile: cryptography
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature
    functionSourceFile: cryptography
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.compile
    functionSourceFile: re
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _PEM_RE.search
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.exceptions
    functionSourceFile: jwt.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - claim
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 75
    functionName: jwt.exceptions.MissingRequiredClaimError.__init__
    functionSourceFile: jwt.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: jwt.exceptions.MissingRequiredClaimError.__str__
    functionSourceFile: jwt.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: jwt.types
    functionSourceFile: jwt.types
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: jwt.api_jwt
    functionSourceFile: jwt.api_jwt
    functionUses: 0
    functionsReached:
    - jwt.api_jwt.PyJWT._get_default_options
    - options.get
    - <builtin>.bool
    - jwt.api_jwt.PyJWT.__init__
    - os.getenv
    - jwt.api_jwt.PyJWT._merge_options
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa284c460>
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 49
    functionName: jwt.api_jwt.PyJWT.__init__
    functionSourceFile: jwt.api_jwt
    functionUses: 1
    functionsReached:
    - options.get
    - jwt.api_jwt.PyJWT._get_default_options
    - jwt.api_jwt.PyJWT._merge_options
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 56
    functionName: jwt.api_jwt.PyJWT._get_default_options
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa2ad1100>
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 70
    functionName: jwt.api_jwt.PyJWT._merge_options
    functionSourceFile: jwt.api_jwt
    functionUses: 5
    functionsReached:
    - options.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: options.get
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa2b0a820>
    - <ast.Constant object at 0x7f6aa2b0ad60>
    - <ast.Constant object at 0x7f6aa2b0a0a0>
    - <ast.Constant object at 0x7f6aa2b0a940>
    argNames:
    - self
    - payload
    - key
    - algorithm
    - headers
    - json_encoder
    - sort_headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 85
    functionName: jwt.api_jwt.PyJWT.encode
    functionSourceFile: jwt.api_jwt
    functionUses: 0
    functionsReached:
    - payload.get
    - payload.copy
    - jwt.api_jwt.PyJWT._encode_payload
    - json.dumps
    - <builtin>.isinstance
    - calendar.timegm
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: payload.copy
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: payload.get
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: calendar.timegm
    functionSourceFile: calendar
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa22de910>
    - <ast.Constant object at 0x7f6aa22de4c0>
    argNames:
    - self
    - payload
    - headers
    - json_encoder
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 151
    functionName: jwt.api_jwt.PyJWT._encode_payload
    functionSourceFile: jwt.api_jwt
    functionUses: 1
    functionsReached:
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - decoded
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 276
    functionName: jwt.api_jwt.PyJWT._decode_payload
    functionSourceFile: jwt.api_jwt
    functionUses: 3
    functionsReached:
    - json.loads
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - DecodeError
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 8
    IfCount: 9
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa247c3a0>
    - <ast.Constant object at 0x7f6aa247cd30>
    - <ast.Constant object at 0x7f6aa247c430>
    - <ast.Constant object at 0x7f6aa247c3d0>
    argNames:
    - self
    - payload
    - options
    - audience
    - issuer
    - subject
    - leeway
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 371
    functionName: jwt.api_jwt.PyJWT._validate_claims
    functionSourceFile: jwt.api_jwt
    functionUses: 3
    functionsReached:
    - <builtin>.any
    - payload.get
    - options.get
    - leeway.total_seconds
    - jwt.api_jwt.PyJWT._validate_sub
    - jwt.api_jwt.PyJWT._validate_iat
    - jwt.api_jwt.PyJWT._validate_required_claims
    - jwt.api_jwt.PyJWT._validate_nbf
    - <builtin>.all
    - jwt.api_jwt.PyJWT._validate_iss
    - jwt.api_jwt.PyJWT._validate_aud
    - <builtin>.isinstance
    - jwt.api_jwt.PyJWT._validate_exp
    - <builtin>.int
    - datetime.datetime.now
    - jwt.api_jwt.PyJWT._validate_jti
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa22e89d0>
    - <ast.Constant object at 0x7f6aa22e8970>
    - <ast.Constant object at 0x7f6aa22e8fd0>
    - <ast.Constant object at 0x7f6aa22e8580>
    - <ast.Constant object at 0x7f6aa22e8a30>
    - <ast.Constant object at 0x7f6aa22e8520>
    - <ast.Constant object at 0x7f6aa22e8670>
    - <ast.Constant object at 0x7f6aa22e85b0>
    - <ast.Constant object at 0x7f6aa22e8c40>
    argNames:
    - self
    - jwt
    - key
    - algorithms
    - options
    - verify
    - detached_payload
    - audience
    - subject
    - issuer
    - leeway
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 292
    functionName: jwt.api_jwt.PyJWT.decode
    functionSourceFile: jwt.api_jwt
    functionUses: 0
    functionsReached:
    - options.get
    - json.loads
    - jwt.api_jwt.PyJWT._validate_claims
    - leeway.total_seconds
    - jwt.api_jwt.PyJWT._validate_iat
    - jwt.api_jwt.PyJWT._validate_nbf
    - <builtin>.all
    - warnings.warn
    - jwt.api_jwt.PyJWT._validate_exp
    - jwt.api_jwt.PyJWT._merge_options
    - datetime.datetime.now
    - <builtin>.any
    - jwt.api_jwt.PyJWT._validate_required_claims
    - jwt.api_jwt.PyJWT._validate_iss
    - jwt.api_jwt.PyJWT._validate_jti
    - payload.get
    - typing.cast
    - jwt.api_jwt.PyJWT._validate_sub
    - jwt.api_jwt.PyJWT._validate_aud
    - <builtin>.isinstance
    - <builtin>.tuple
    - kwargs.keys
    - <builtin>.int
    - jwt.api_jwt.PyJWT.decode_complete
    - jwt.api_jwt.PyJWT._decode_payload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: leeway.total_seconds
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - payload
    - claims
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 413
    functionName: jwt.api_jwt.PyJWT._validate_required_claims
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - payload.get
    linkageType: pythonLinkage
    raised:
    - MissingRequiredClaimError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.datetime.now
    functionSourceFile: datetime
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - payload
    - now
    - leeway
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 457
    functionName: jwt.api_jwt.PyJWT._validate_iat
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - InvalidIssuedAtError
    - ImmatureSignatureError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - payload
    - now
    - leeway
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 472
    functionName: jwt.api_jwt.PyJWT._validate_nbf
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - DecodeError
    - ImmatureSignatureError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - payload
    - now
    - leeway
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 486
    functionName: jwt.api_jwt.PyJWT._validate_exp
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - DecodeError
    - ExpiredSignatureError
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - payload
    - issuer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 552
    functionName: jwt.api_jwt.PyJWT._validate_iss
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - InvalidIssuerError
    - MissingRequiredClaimError
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 0
    IfCount: 12
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - payload
    - audience
    - strict
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 502
    functionName: jwt.api_jwt.PyJWT._validate_aud
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.any
    - <builtin>.all
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - MissingRequiredClaimError
    - InvalidAudienceError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f6aa2417850>
    argNames:
    - self
    - payload
    - subject
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 422
    functionName: jwt.api_jwt.PyJWT._validate_sub
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - payload.get
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - InvalidSubjectError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 443
    functionName: jwt.api_jwt.PyJWT._validate_jti
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - payload.get
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - InvalidJTIError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: jwt.help
    functionSourceFile: jwt.help
    functionUses: 0
    functionsReached:
    - jwt.help.main
    - platform.system
    - json.dumps
    - platform.python_implementation
    - platform.release
    - <builtin>.print
    - platform.python_version
    - jwt.help.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 15
    functionName: jwt.help.info
    functionSourceFile: jwt.help
    functionUses: 2
    functionsReached:
    - platform.release
    - platform.python_implementation
    - platform.python_version
    - platform.system
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: platform.system
    functionSourceFile: platform
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: platform.release
    functionSourceFile: platform
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: platform.python_implementation
    functionSourceFile: platform
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: platform.python_version
    functionSourceFile: platform
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 60
    functionName: jwt.help.main
    functionSourceFile: jwt.help
    functionUses: 1
    functionsReached:
    - platform.system
    - json.dumps
    - platform.python_implementation
    - platform.release
    - <builtin>.print
    - platform.python_version
    - jwt.help.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.print
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_jwt':
  - 66
  - 67
  '...fuzz_jwt.TestOneInput':
  - 56
  - 57
  '...fuzz_jwt.main':
  - 61
  - 62
  - 63
  '...fuzz_jwt.test_decoding':
  - 26
  - 27
  - 28
  - 30
  '...fuzz_jwt.test_roundtrip':
  - 36
  - 37
  - 39
  - 43
  - 48
  - 49
  jwt.algorithms:
  - 104
  - 107
  - 390
  jwt.algorithms.Algorithm:
  - 192
  jwt.algorithms.Algorithm.check_crypto_key_type:
  - 236
  - 222
  - 231
  jwt.algorithms.Algorithm.compute_hash_digest:
  - 200
  - 206
  - 207
  - 210
  - 212
  - 213
  - 215
  - 216
  - 217
  - 219
  jwt.algorithms.Algorithm.from_jwk:
  - 287
  jwt.algorithms.Algorithm.prepare_key:
  - 246
  jwt.algorithms.Algorithm.sign:
  - 253
  jwt.algorithms.Algorithm.to_jwk:
  - 280
  - 275
  - 268
  jwt.algorithms.Algorithm.verify:
  - 260
  jwt.algorithms.ECAlgorithm:
  - 568
  jwt.algorithms.ECAlgorithm.from_jwk:
  - 685
  - 686
  - 687
  - 694
  - 697
  - 700
  - 701
  - 703
  - 706
  - 707
  - 708
  - 713
  - 714
  - 715
  - 720
  - 721
  - 722
  - 727
  - 728
  - 729
  - 737
  - 738
  - 739
  - 743
  - 744
  - 746
  - 747
  - 752
  - 753
  jwt.algorithms.ECAlgorithm.prepare_key:
  - 583
  - 586
  - 589
  - 595
  - 596
  - 598
  - 601
  - 602
  - 604
  - 605
  - 606
  jwt.algorithms.ECAlgorithm.sign:
  - 609
  - 611
  jwt.algorithms.ECAlgorithm.to_jwk:
  - 640
  - 641
  - 642
  - 643
  - 672
  - 673
  - 677
  - 647
  - 680
  - 649
  - 651
  - 653
  - 661
  - 632
  - 665
  - 636
  - 671
  jwt.algorithms.ECAlgorithm.verify:
  - 625
  - 621
  - 622
  - 615
  jwt.algorithms.HMACAlgorithm:
  - 323
  jwt.algorithms.HMACAlgorithm.from_jwk:
  - 369
  - 370
  - 371
  - 378
  - 381
  jwt.algorithms.HMACAlgorithm.prepare_key:
  - 336
  - 338
  jwt.algorithms.HMACAlgorithm.sign:
  - 384
  jwt.algorithms.HMACAlgorithm.to_jwk:
  - 352
  - 357
  - 361
  - 364
  - 348
  jwt.algorithms.HMACAlgorithm.verify:
  - 387
  jwt.algorithms.NoneAlgorithm:
  - 293
  jwt.algorithms.NoneAlgorithm.prepare_key:
  - 299
  - 302
  jwt.algorithms.OKPAlgorithm:
  - 788
  jwt.algorithms.OKPAlgorithm.from_jwk:
  - 928
  - 931
  - 932
  - 935
  - 937
  - 940
  - 941
  - 942
  - 943
  - 944
  - 945
  - 946
  - 947
  - 919
  - 920
  - 921
  jwt.algorithms.OKPAlgorithm.prepare_key:
  - 800
  - 801
  - 804
  - 805
  - 808
  - 809
  - 810
  - 811
  - 812
  - 813
  - 818
  - 819
  jwt.algorithms.OKPAlgorithm.sign:
  - 824
  - 832
  - 831
  jwt.algorithms.OKPAlgorithm.to_jwk:
  - 896
  - 867
  - 901
  - 871
  - 872
  - 903
  - 904
  - 876
  - 909
  - 879
  - 912
  - 884
  - 887
  - 889
  - 890
  - 893
  - 863
  jwt.algorithms.OKPAlgorithm.verify:
  - 838
  - 848
  - 849
  - 852
  - 853
  - 856
  jwt.algorithms.RSAAlgorithm:
  - 393
  jwt.algorithms.RSAAlgorithm.from_jwk:
  - 515
  - 516
  - 517
  - 520
  - 521
  - 522
  - 523
  - 524
  - 525
  - 526
  - 527
  - 531
  - 532
  - 536
  - 540
  - 541
  - 542
  - 546
  - 547
  - 549
  - 550
  - 551
  - 487
  - 488
  - 489
  - 496
  - 499
  - 501
  - 508
  - 510
  jwt.algorithms.RSAAlgorithm.prepare_key:
  - 417
  - 418
  - 419
  - 420
  - 422
  - 425
  - 426
  - 429
  - 430
  - 431
  - 408
  - 411
  - 414
  jwt.algorithms.RSAAlgorithm.sign:
  - 557
  jwt.algorithms.RSAAlgorithm.to_jwk:
  - 449
  - 482
  - 451
  - 456
  - 457
  - 458
  - 459
  - 460
  - 461
  - 462
  - 463
  - 466
  - 468
  - 439
  - 473
  - 474
  - 443
  - 479
  jwt.algorithms.RSAAlgorithm.verify:
  - 562
  jwt.algorithms.RSAPSSAlgorithm:
  - 757
  jwt.algorithms.RSAPSSAlgorithm.sign:
  - 768
  - 762
  - 764
  - 765
  - 766
  jwt.algorithms.RSAPSSAlgorithm.verify:
  - 774
  - 777
  - 778
  - 779
  - 781
  jwt.algorithms.get_default_algorithms:
  - 162
  - 163
  - 164
  - 165
  - 168
  - 169
  - 158
  jwt.api_jwk.PyJWK.__init__:
  - 21
  - 31
  - 34
  - 35
  - 38
  - 39
  - 41
  - 43
  - 44
  - 45
  - 47
  - 49
  - 51
  - 55
  - 57
  - 59
  - 60
  - 62
  - 69
  - 76
  - 81
  jwt.api_jwk.PyJWK.from_dict:
  - 93
  - 85
  jwt.api_jwk.PyJWK.from_json:
  - 97
  - 106
  - 107
  jwt.api_jwk.PyJWK.key_id:
  - 123
  - 119
  jwt.api_jwk.PyJWK.key_type:
  - 115
  - 111
  jwt.api_jwk.PyJWK.public_key_use:
  - 131
  - 127
  jwt.api_jwk.PyJWKSet.__getitem__:
  - 169
  - 170
  jwt.api_jwk.PyJWKSet.__init__:
  - 138
  - 141
  - 144
  - 146
  - 148
  - 153
  jwt.api_jwk.PyJWKSet.__iter__:
  - 175
  jwt.api_jwk.PyJWKSet.from_dict:
  - 160
  - 161
  jwt.api_jwk.PyJWKSet.from_json:
  - 165
  - 166
  jwt.api_jwk.PyJWTSetWithTimestamp.__init__:
  - 181
  jwt.api_jws:
  - 25
  - 354
  jwt.api_jws.PyJWS.__init__:
  - 38
  - 40
  - 44
  - 45
  - 48
  - 49
  jwt.api_jws.PyJWS._load:
  - 290
  - 295
  - 299
  - 303
  - 308
  - 277
  - 278
  - 280
  - 284
  - 285
  jwt.api_jws.PyJWS._validate_headers:
  - 346
  - 347
  jwt.api_jws.PyJWS._validate_kid:
  - 350
  jwt.api_jws.PyJWS._verify_signature:
  - 322
  - 329
  - 332
  - 337
  - 340
  - 342
  jwt.api_jws.PyJWS.decode:
  - 256
  - 260
  - 252
  - 253
  jwt.api_jws.PyJWS.decode_complete:
  - 224
  - 226
  - 227
  - 232
  - 234
  - 203
  - 204
  - 235
  - 207
  - 212
  - 219
  jwt.api_jws.PyJWS.encode:
  - 130
  - 131
  - 139
  - 140
  - 141
  - 144
  - 145
  - 151
  - 152
  - 153
  - 155
  - 158
  - 160
  - 164
  - 168
  - 170
  - 173
  - 174
  - 177
  - 179
  - 180
  - 182
  - 183
  - 185
  - 188
  - 190
  - 192
  jwt.api_jws.PyJWS.get_algorithm_by_name:
  - 97
  - 111
  jwt.api_jws.PyJWS.get_algorithms:
  - 89
  - 94
  jwt.api_jws.PyJWS.get_unverified_header:
  - 272
  - 266
  - 271
  jwt.api_jws.PyJWS.register_algorithm:
  - 64
  - 57
  - 67
  - 71
  jwt.api_jws.PyJWS.unregister_algorithm:
  - 74
  - 86
  - 79
  jwt.api_jwt:
  - 25
  - 578
  - 28
  - 38
  jwt.api_jwt.PyJWT.__init__:
  - 51
  - 52
  - 53
  jwt.api_jwt.PyJWT._decode_payload:
  - 288
  - 285
  - 277
  jwt.api_jwt.PyJWT._encode_payload:
  - 163
  - 157
  jwt.api_jwt.PyJWT._merge_options:
  - 71
  - 75
  - 76
  - 77
  - 78
  - 79
  - 80
  - 81
  - 82
  jwt.api_jwt.PyJWT._validate_aud:
  - 541
  - 546
  - 516
  - 549
  - 525
  - 527
  - 531
  - 534
  - 539
  - 509
  - 510
  - 543
  jwt.api_jwt.PyJWT._validate_claims:
  - 386
  - 388
  - 390
  - 391
  - 393
  - 394
  - 396
  - 397
  - 399
  - 400
  - 402
  - 403
  - 404
  - 407
  - 408
  - 410
  - 411
  - 380
  - 381
  - 383
  jwt.api_jwt.PyJWT._validate_exp:
  - 499
  - 493
  jwt.api_jwt.PyJWT._validate_iat:
  - 464
  - 469
  jwt.api_jwt.PyJWT._validate_iss:
  - 555
  - 558
  - 562
  - 565
  - 566
  - 570
  jwt.api_jwt.PyJWT._validate_jti:
  - 451
  - 444
  - 454
  jwt.api_jwt.PyJWT._validate_nbf:
  - 483
  - 479
  jwt.api_jwt.PyJWT._validate_required_claims:
  - 418
  - 419
  jwt.api_jwt.PyJWT._validate_sub:
  - 425
  - 433
  - 436
  - 439
  - 440
  jwt.api_jwt.PyJWT.decode:
  - 353
  - 357
  - 369
  - 311
  - 349
  - 350
  jwt.api_jwt.PyJWT.decode_complete:
  - 226
  - 227
  - 261
  - 230
  - 263
  - 264
  - 235
  - 238
  - 243
  - 244
  - 188
  - 253
  jwt.api_jwt.PyJWT.encode:
  - 129
  - 130
  - 133
  - 136
  - 142
  - 119
  - 94
  - 126
  - 127
  jwt.exceptions.DecodeError:
  - 16
  jwt.exceptions.ExpiredSignatureError:
  - 29
  jwt.exceptions.ImmatureSignatureError:
  - 54
  jwt.exceptions.InvalidAlgorithmError:
  - 66
  jwt.exceptions.InvalidAudienceError:
  - 35
  jwt.exceptions.InvalidIssuedAtError:
  - 48
  jwt.exceptions.InvalidIssuerError:
  - 42
  jwt.exceptions.InvalidJTIError:
  - 111
  jwt.exceptions.InvalidKeyError:
  - 60
  jwt.exceptions.InvalidSignatureError:
  - 22
  jwt.exceptions.InvalidSubjectError:
  - 105
  jwt.exceptions.InvalidTokenError:
  - 10
  jwt.exceptions.MissingCryptographyError:
  - 87
  jwt.exceptions.MissingRequiredClaimError:
  - 72
  jwt.exceptions.PyJWTError:
  - 2
  jwt.help:
  - 65
  - 66
  jwt.help.info:
  - 32
  - 39
  - 40
  - 16
  - 22
  - 23
  - 28
  - 30
  - 31
  jwt.help.main:
  - 61
  - 62
  jwt.jwk_set_cache.JWKSetCache.get:
  - 20
  - 23
  jwt.jwk_set_cache.JWKSetCache.is_expired:
  - 29
  - 30
  jwt.jwk_set_cache.JWKSetCache.put:
  - 13
  - 14
  jwt.jwks_client.PyJWKClient.__init__:
  - 36
  - 39
  - 43
  - 47
  - 49
  - 28
  jwt.jwks_client.PyJWKClient.fetch_data:
  - 68
  - 69
  - 56
  - 57
  - 60
  jwt.jwks_client.PyJWKClient.get_jwk_set:
  - 73
  - 74
  - 76
  - 77
  - 79
  - 82
  jwt.jwks_client.PyJWKClient.get_signing_key:
  - 98
  - 99
  - 101
  - 103
  - 104
  - 106
  jwt.jwks_client.PyJWKClient.get_signing_key_from_jwt:
  - 114
  - 116
  jwt.jwks_client.PyJWKClient.get_signing_keys:
  - 92
  - 85
  jwt.jwks_client.PyJWKClient.match_kid:
  - 122
  - 123
  jwt.types.Options:
  - 35
  - 37
  - 39
  - 41
  - 43
  - 45
  - 47
  - 17
  - 49
  - 29
  - 31
  jwt.types.SigOptions:
  - 9
  - 13
  jwt.utils:
  - 116
  - 118
  jwt.utils.base64url_decode:
  - 33
  - 26
  - 28
  - 30
  jwt.utils.base64url_encode:
  - 37
  jwt.utils.bytes_from_int:
  - 67
  - 68
  - 71
  jwt.utils.bytes_to_number:
  - 63
  jwt.utils.der_to_raw_signature:
  - 80
  - 78
  jwt.utils.force_bytes:
  - 17
  - 18
  - 19
  jwt.utils.from_base64url_uint:
  - 53
  - 54
  jwt.utils.is_pem_format:
  - 127
  jwt.utils.is_ssh_key:
  - 142
  jwt.utils.number_to_bytes:
  - 59
  jwt.utils.raw_to_der_signature:
  - 90
  - 91
  - 93
  - 87
  jwt.utils.to_base64url_uint:
  - 41
  - 44
  - 46
  - 49
Fuzzer filename: /src/fuzz_jwt.py
Inheritance:
  jwt.algorithms.Algorithm:
  - ABC
  jwt.algorithms.ECAlgorithm:
  - Algorithm
  jwt.algorithms.HMACAlgorithm:
  - Algorithm
  jwt.algorithms.NoneAlgorithm:
  - Algorithm
  jwt.algorithms.OKPAlgorithm:
  - Algorithm
  jwt.algorithms.RSAAlgorithm:
  - Algorithm
  jwt.algorithms.RSAPSSAlgorithm:
  - RSAAlgorithm
  jwt.api_jwk.PyJWK: []
  jwt.api_jwk.PyJWKSet: []
  jwt.api_jwk.PyJWTSetWithTimestamp: []
  jwt.api_jws.PyJWS: []
  jwt.api_jwt.PyJWT: []
  jwt.exceptions.DecodeError:
  - InvalidTokenError
  jwt.exceptions.ExpiredSignatureError:
  - InvalidTokenError
  jwt.exceptions.ImmatureSignatureError:
  - InvalidTokenError
  jwt.exceptions.InvalidAlgorithmError:
  - InvalidTokenError
  jwt.exceptions.InvalidAudienceError:
  - InvalidTokenError
  jwt.exceptions.InvalidIssuedAtError:
  - InvalidTokenError
  jwt.exceptions.InvalidIssuerError:
  - InvalidTokenError
  jwt.exceptions.InvalidJTIError:
  - InvalidTokenError
  jwt.exceptions.InvalidKeyError:
  - PyJWTError
  jwt.exceptions.InvalidSignatureError:
  - DecodeError
  jwt.exceptions.InvalidSubjectError:
  - InvalidTokenError
  jwt.exceptions.InvalidTokenError:
  - PyJWTError
  jwt.exceptions.MissingCryptographyError:
  - PyJWKError
  jwt.exceptions.MissingRequiredClaimError:
  - InvalidTokenError
  jwt.exceptions.PyJWKClientConnectionError:
  - PyJWKClientError
  jwt.exceptions.PyJWKClientError:
  - PyJWTError
  jwt.exceptions.PyJWKError:
  - PyJWTError
  jwt.exceptions.PyJWKSetError:
  - PyJWTError
  jwt.exceptions.PyJWTError:
  - Exception
  jwt.jwk_set_cache.JWKSetCache: []
  jwt.jwks_client.PyJWKClient: []
  jwt.types.FullOptions:
  - TypedDict
  jwt.types.Options:
  - TypedDict
  jwt.types.SigOptions:
  - TypedDict
  jwt.warnings.RemovedInPyjwt3Warning:
  - DeprecationWarning
ep:
  func_name: TestOneInput
  module: '...fuzz_jwt'
