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.instrument_all
    - atheris.Setup
    - atheris.Fuzz
    - '...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:
    - fdp.ConsumeUnicodeNoSurrogates
    - atheris.FuzzedDataProvider
    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:
    - fdp.ConsumeUnicodeNoSurrogates
    - <builtin>.isinstance
    - atheris.FuzzedDataProvider
    - 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:
    - fdp.ConsumeUnicodeNoSurrogates
    - json.loads
    - '...fuzz_jwt.test_decoding'
    - <builtin>.isinstance
    - '...fuzz_jwt.test_roundtrip'
    - atheris.FuzzedDataProvider
    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.instrument_all
    - atheris.Setup
    - atheris.Fuzz
    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: 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 0x7f3fa70d62e0>
    argNames:
    - self
    - jwk_data
    - algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 19
    functionName: jwt.api_jwk.PyJWK.__init__
    functionSourceFile: jwt.api_jwk
    functionUses: 9
    functionsReached:
    - jwt.algorithms.get_default_algorithms
    - <builtin>.isinstance
    - abc.ABC.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - default_algorithms.update
    linkageType: pythonLinkage
    raised:
    - PyJWKError
    - MissingCryptographyError
    - InvalidKeyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 143
    functionName: jwt.algorithms.get_default_algorithms
    functionSourceFile: jwt.algorithms
    functionUses: 12
    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: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f3fa70b8550>
    argNames:
    - obj
    - algorithm
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 83
    functionName: jwt.api_jwk.PyJWK.from_dict
    functionSourceFile: jwt.api_jwk
    functionUses: 1
    functionsReached:
    - jwt.algorithms.get_default_algorithms
    - <builtin>.isinstance
    - jwt.api_jwk.PyJWK.__init__
    - abc.ABC.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - default_algorithms.update
    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 0x7f3fa70b8c70>
    argNames:
    - data
    - algorithm
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 95
    functionName: jwt.api_jwk.PyJWK.from_json
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached:
    - jwt.algorithms.get_default_algorithms
    - json.loads
    - <builtin>.isinstance
    - jwt.api_jwk.PyJWK.__init__
    - abc.ABC.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - default_algorithms.update
    - jwt.api_jwk.PyJWK.from_dict
    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: 109
    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: 117
    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: 125
    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: 134
    functionName: jwt.api_jwk.PyJWKSet.__init__
    functionSourceFile: jwt.api_jwk
    functionUses: 6
    functionsReached:
    - jwt.algorithms.get_default_algorithms
    - <builtin>.len
    - <builtin>.isinstance
    - jwt.api_jwk.PyJWK.__init__
    - abc.ABC.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - default_algorithms.update
    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: 22
    functionsReached: []
    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: 158
    functionName: jwt.api_jwk.PyJWKSet.from_dict
    functionSourceFile: jwt.api_jwk
    functionUses: 5
    functionsReached:
    - obj.get
    - jwt.algorithms.get_default_algorithms
    - <builtin>.len
    - jwt.api_jwk.PyJWK.__init__
    - <builtin>.isinstance
    - abc.ABC.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - default_algorithms.update
    - jwt.api_jwk.PyJWKSet.__init__
    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: 10
    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: 163
    functionName: jwt.api_jwk.PyJWKSet.from_json
    functionSourceFile: jwt.api_jwk
    functionUses: 0
    functionsReached:
    - obj.get
    - jwt.algorithms.get_default_algorithms
    - json.loads
    - <builtin>.len
    - <builtin>.isinstance
    - jwt.api_jwk.PyJWK.__init__
    - abc.ABC.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - jwt.api_jwk.PyJWKSet.from_dict
    - default_algorithms.update
    - jwt.api_jwk.PyJWKSet.__init__
    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: 167
    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: 173
    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: 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: 178
    functionName: jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    functionSourceFile: jwt.api_jwk
    functionUses: 6
    functionsReached:
    - time.monotonic
    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: 9
    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: 182
    functionName: jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    functionSourceFile: jwt.api_jwk
    functionUses: 5
    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: 185
    functionName: jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    functionSourceFile: jwt.api_jwk
    functionUses: 6
    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:
    - <builtin>.bool
    - os.getenv
    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: 13
    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: 316
    functionName: jwt.algorithms.HMACAlgorithm.__init__
    functionSourceFile: ''
    functionUses: 13
    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: 13
    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: 185
    functionName: jwt.algorithms.Algorithm.compute_hash_digest
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - digest.finalize
    - <builtin>.getattr
    - <builtin>.bytes
    - cryptography.hazmat.backends.default_backend
    - digest.update
    - <builtin>.isinstance
    - <builtin>.issubclass
    - cryptography.hazmat.primitives.hashes.Hash
    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: 207
    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: 231
    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: 238
    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: 245
    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 0x7f3fa77b9ac0>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 263
    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: 270
    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: 282
    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: 291
    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: 294
    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 0x7f3fa70e5a30>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 298
    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: 302
    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: 319
    functionName: jwt.algorithms.HMACAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - jwt.utils.force_bytes
    - <builtin>.isinstance
    - value.encode
    - <builtin>.bool
    - jwt.utils.is_pem_format
    - _PEM_RE.search
    - jwt.utils.is_ssh_key
    - key.startswith
    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 0x7f3fa754e6d0>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 343
    functionName: jwt.algorithms.HMACAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - jwt.utils.base64url_encode
    - jwt.utils.force_bytes
    - base64.urlsafe_b64encode
    - <builtin>.isinstance
    - value.encode
    - json.dumps
    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: json.dumps
    functionSourceFile: json
    functionUses: 9
    functionsReached: []
    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: 355
    functionName: jwt.algorithms.HMACAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - obj.get
    - base64.urlsafe_b64decode
    - jwt.utils.force_bytes
    - json.loads
    - <builtin>.len
    - <builtin>.isinstance
    - value.encode
    - jwt.utils.base64url_decode
    linkageType: pythonLinkage
    raised:
    - InvalidKeyError
    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:
    - base64.urlsafe_b64decode
    - jwt.utils.force_bytes
    - <builtin>.len
    - <builtin>.isinstance
    - value.encode
    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: 371
    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: 374
    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: 392
    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: 395
    functionName: jwt.algorithms.RSAAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - jwt.utils.force_bytes
    - cryptography.hazmat.primitives.serialization.load_pem_public_key
    - typing.cast
    - cryptography.hazmat.primitives.serialization.load_ssh_public_key
    - <builtin>.isinstance
    - key_bytes.startswith
    - value.encode
    - cryptography.hazmat.primitives.serialization.load_pem_private_key
    - jwt.algorithms.Algorithm.check_crypto_key_type
    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: 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_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 0x7f3fa778aeb0>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 438
    functionName: jwt.algorithms.RSAAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - json.dumps
    - jwt.utils.bytes_from_int
    - key_obj.private_numbers
    - jwt.utils.base64url_encode
    - val.bit_length
    - <builtin>.len
    - jwt.utils.to_base64url_uint
    - base64.urlsafe_b64encode
    - key_obj.public_numbers
    - val.to_bytes
    - <builtin>.hasattr
    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:
    - jwt.utils.bytes_from_int
    - jwt.utils.base64url_encode
    - val.bit_length
    - <builtin>.len
    - base64.urlsafe_b64encode
    - val.to_bytes
    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: 477
    functionName: jwt.algorithms.RSAAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - obj.get
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_dmp1
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateNumbers.private_key
    - int.from_bytes
    - json.loads
    - jwt.utils.force_bytes
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_recover_prime_factors
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_iqmp
    - <builtin>.len
    - cryptography.hazmat.primitives.asymmetric.rsa.rsa_crt_dmq1
    - jwt.utils.from_base64url_uint
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateNumbers
    - base64.urlsafe_b64decode
    - <builtin>.isinstance
    - value.encode
    - jwt.utils.base64url_decode
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicNumbers
    - <builtin>.all
    - <builtin>.any
    - cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicNumbers.public_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:
    - base64.urlsafe_b64decode
    - jwt.utils.force_bytes
    - int.from_bytes
    - <builtin>.len
    - <builtin>.isinstance
    - value.encode
    - jwt.utils.base64url_decode
    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: 548
    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: 551
    functionName: jwt.algorithms.RSAAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - key.verify
    - cryptography.hazmat.primitives.asymmetric.padding.PKCS1v15
    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: 570
    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: 573
    functionName: jwt.algorithms.ECAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - jwt.utils.force_bytes
    - cryptography.hazmat.primitives.serialization.load_pem_public_key
    - typing.cast
    - cryptography.hazmat.primitives.serialization.load_ssh_public_key
    - <builtin>.isinstance
    - key_bytes.startswith
    - value.encode
    - cryptography.hazmat.primitives.serialization.load_pem_private_key
    - jwt.algorithms.Algorithm.check_crypto_key_type
    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: 599
    functionName: jwt.algorithms.ECAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.ec.ECDSA
    - jwt.utils.der_to_raw_signature
    - cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature
    - key.sign
    - padded_hex.encode
    - binascii.a2b_hex
    - jwt.utils.number_to_bytes
    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:
    - padded_hex.encode
    - binascii.a2b_hex
    - cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature
    - jwt.utils.number_to_bytes
    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: 604
    functionName: jwt.algorithms.ECAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.ec.ECDSA
    - jwt.utils.bytes_to_number
    - key.public_key
    - jwt.utils.raw_to_der_signature
    - cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature
    - <builtin>.bytes
    - binascii.b2a_hex
    - <builtin>.len
    - public_key.verify
    - <builtin>.isinstance
    - <builtin>.int
    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:
    - jwt.utils.bytes_to_number
    - cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature
    - <builtin>.bytes
    - binascii.b2a_hex
    - <builtin>.len
    - <builtin>.int
    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 0x7f3fa718baf0>
    argNames:
    - key_obj
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 634
    functionName: jwt.algorithms.ECAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - json.dumps
    - jwt.utils.bytes_from_int
    - key_obj.private_numbers
    - jwt.utils.base64url_encode
    - val.bit_length
    - key_obj.public_key
    - <builtin>.len
    - jwt.utils.to_base64url_uint
    - <builtin>.isinstance
    - base64.urlsafe_b64encode
    - key_obj.public_numbers
    - val.to_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: 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: 678
    functionName: jwt.algorithms.ECAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - obj.get
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateNumbers
    - base64.urlsafe_b64decode
    - json.loads
    - cryptography.hazmat.primitives.asymmetric.ec.SECP256K1
    - int.from_bytes
    - jwt.utils.force_bytes
    - <builtin>.len
    - <builtin>.isinstance
    - value.encode
    - cryptography.hazmat.primitives.asymmetric.ec.SECP256R1
    - jwt.utils.base64url_decode
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateNumbers.private_key
    - cryptography.hazmat.primitives.asymmetric.ec.SECP384R1
    - cryptography.hazmat.primitives.asymmetric.ec.SECP521R1
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.public_key
    - cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers
    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: 756
    functionName: jwt.algorithms.RSAPSSAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.padding.PSS
    - cryptography.hazmat.primitives.asymmetric.padding.MGF1
    - 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: 766
    functionName: jwt.algorithms.RSAPSSAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.asymmetric.padding.PSS
    - key.verify
    - cryptography.hazmat.primitives.asymmetric.padding.MGF1
    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: 790
    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: 793
    functionName: jwt.algorithms.OKPAlgorithm.prepare_key
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - cryptography.hazmat.primitives.serialization.load_pem_public_key
    - typing.cast
    - cryptography.hazmat.primitives.serialization.load_ssh_public_key
    - <builtin>.isinstance
    - cryptography.hazmat.primitives.serialization.load_pem_private_key
    - jwt.algorithms.Algorithm.check_crypto_key_type
    - key.encode
    - key.decode
    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: 815
    functionName: jwt.algorithms.OKPAlgorithm.sign
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - msg.encode
    - 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: 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: 828
    functionName: jwt.algorithms.OKPAlgorithm.verify
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - key.public_key
    - public_key.verify
    - sig.encode
    - <builtin>.isinstance
    - 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 0x7f3fa6c1d040>
    argNames:
    - key
    - as_dict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 867
    functionName: jwt.algorithms.OKPAlgorithm.to_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - jwt.utils.base64url_encode
    - jwt.utils.force_bytes
    - key.public_key
    - base64.urlsafe_b64encode
    - <builtin>.isinstance
    - value.encode
    - cryptography.hazmat.primitives.serialization.NoEncryption
    - key.public_bytes
    - json.dumps
    - key.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: 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: 914
    functionName: jwt.algorithms.OKPAlgorithm.from_jwk
    functionSourceFile: jwt.algorithms
    functionUses: 0
    functionsReached:
    - obj.get
    - base64.urlsafe_b64decode
    - jwt.utils.force_bytes
    - json.loads
    - cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PrivateKey.from_private_bytes
    - <builtin>.len
    - <builtin>.isinstance
    - cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PublicKey.from_public_bytes
    - value.encode
    - jwt.utils.base64url_decode
    - cryptography.hazmat.primitives.asymmetric.ed448.Ed448PrivateKey.from_private_bytes
    - cryptography.hazmat.primitives.asymmetric.ed448.Ed448PublicKey.from_public_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.bit_length
    - val.to_bytes
    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:
    - padded_hex.encode
    - binascii.a2b_hex
    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:
    - <builtin>.int
    - binascii.b2a_hex
    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.__init__
    - options.get
    - os.getenv
    - jwt.api_jwt.PyJWT._get_default_options
    - <builtin>.bool
    - 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 0x7f3fa6fa7580>
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 43
    functionName: jwt.api_jwt.PyJWT.__init__
    functionSourceFile: jwt.api_jwt
    functionUses: 1
    functionsReached:
    - jwt.api_jwt.PyJWT._merge_options
    - options.get
    - jwt.api_jwt.PyJWT._get_default_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: 50
    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 0x7f3fa7669d60>
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    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 0x7f3fa6fa1250>
    - <ast.Constant object at 0x7f3fa6fa1a60>
    - <ast.Constant object at 0x7f3fa6fa1280>
    - <ast.Constant object at 0x7f3fa6fa1a90>
    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: 79
    functionName: jwt.api_jwt.PyJWT.encode
    functionSourceFile: jwt.api_jwt
    functionUses: 0
    functionsReached:
    - payload.copy
    - payload.get
    - <builtin>.isinstance
    - jwt.api_jwt.PyJWT._encode_payload
    - json.dumps
    - 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 0x7f3fa779ea30>
    - <ast.Constant object at 0x7f3fa779ecd0>
    argNames:
    - self
    - payload
    - headers
    - json_encoder
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 145
    functionName: jwt.api_jwt.PyJWT._encode_payload
    functionSourceFile: jwt.api_jwt
    functionUses: 1
    functionsReached:
    - json.dumps
    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 0x7f3fa77a05e0>
    - <ast.Constant object at 0x7f3fa77a0670>
    - <ast.Constant object at 0x7f3fa77a0c40>
    - <ast.Constant object at 0x7f3fa77a0b20>
    - <ast.Constant object at 0x7f3fa77a0550>
    - <ast.Constant object at 0x7f3fa77a08b0>
    - <ast.Constant object at 0x7f3fa77a0400>
    - <ast.Constant object at 0x7f3fa77a0b80>
    - <ast.Constant object at 0x7f3fa77a00a0>
    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: 163
    functionName: jwt.api_jwt.PyJWT.decode_complete
    functionSourceFile: jwt.api_jwt
    functionUses: 2
    functionsReached:
    - jwt.api_jwt.PyJWT._validate_jti
    - jwt.api_jwt.PyJWT._validate_iss
    - jwt.api_jwt.PyJWT._validate_sub
    - jwt.api_jwt.PyJWT._validate_required_claims
    - datetime.datetime.now
    - jwt.api_jwt.PyJWT._validate_aud
    - jwt.api_jwt.PyJWT._validate_claims
    - leeway.total_seconds
    - jwt.api_jwt.PyJWT._validate_nbf
    - <builtin>.tuple
    - json.loads
    - jwt.api_jwt.PyJWT._decode_payload
    - jwt.api_jwt.PyJWT._merge_options
    - options.get
    - jwt.api_jwt.PyJWT._validate_exp
    - kwargs.keys
    - <builtin>.isinstance
    - <builtin>.all
    - warnings.warn
    - jwt.api_jwt.PyJWT._validate_iat
    - payload.get
    - <builtin>.int
    - <builtin>.any
    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: 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: 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: 270
    functionName: jwt.api_jwt.PyJWT._decode_payload
    functionSourceFile: jwt.api_jwt
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - json.loads
    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 0x7f3fa6fcbe20>
    - <ast.Constant object at 0x7f3fa6fcb370>
    - <ast.Constant object at 0x7f3fa6fcb2b0>
    - <ast.Constant object at 0x7f3fa6fcbdf0>
    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: 365
    functionName: jwt.api_jwt.PyJWT._validate_claims
    functionSourceFile: jwt.api_jwt
    functionUses: 3
    functionsReached:
    - jwt.api_jwt.PyJWT._validate_nbf
    - leeway.total_seconds
    - jwt.api_jwt.PyJWT._validate_jti
    - options.get
    - jwt.api_jwt.PyJWT._validate_exp
    - jwt.api_jwt.PyJWT._validate_iss
    - jwt.api_jwt.PyJWT._validate_sub
    - jwt.api_jwt.PyJWT._validate_required_claims
    - jwt.api_jwt.PyJWT._validate_iat
    - payload.get
    - <builtin>.isinstance
    - <builtin>.int
    - datetime.datetime.now
    - <builtin>.all
    - <builtin>.any
    - jwt.api_jwt.PyJWT._validate_aud
    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 0x7f3fa6facc70>
    - <ast.Constant object at 0x7f3fa6facb20>
    - <ast.Constant object at 0x7f3fa6fac520>
    - <ast.Constant object at 0x7f3fa6facaf0>
    - <ast.Constant object at 0x7f3fa6fac940>
    - <ast.Constant object at 0x7f3fa6facf70>
    - <ast.Constant object at 0x7f3fa6fac0d0>
    - <ast.Constant object at 0x7f3fa6faca90>
    - <ast.Constant object at 0x7f3fa6facac0>
    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: 286
    functionName: jwt.api_jwt.PyJWT.decode
    functionSourceFile: jwt.api_jwt
    functionUses: 0
    functionsReached:
    - jwt.api_jwt.PyJWT._validate_jti
    - jwt.api_jwt.PyJWT._validate_iss
    - jwt.api_jwt.PyJWT._validate_sub
    - jwt.api_jwt.PyJWT._validate_required_claims
    - datetime.datetime.now
    - jwt.api_jwt.PyJWT._validate_aud
    - jwt.api_jwt.PyJWT._validate_claims
    - leeway.total_seconds
    - jwt.api_jwt.PyJWT._validate_nbf
    - <builtin>.tuple
    - json.loads
    - jwt.api_jwt.PyJWT._decode_payload
    - jwt.api_jwt.PyJWT._merge_options
    - options.get
    - jwt.api_jwt.PyJWT._validate_exp
    - kwargs.keys
    - <builtin>.isinstance
    - <builtin>.all
    - warnings.warn
    - jwt.api_jwt.PyJWT._validate_iat
    - payload.get
    - <builtin>.int
    - jwt.api_jwt.PyJWT.decode_complete
    - <builtin>.any
    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: 407
    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: 451
    functionName: jwt.api_jwt.PyJWT._validate_iat
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - ImmatureSignatureError
    - InvalidIssuedAtError
    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: 466
    functionName: jwt.api_jwt.PyJWT._validate_nbf
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - ImmatureSignatureError
    - DecodeError
    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: 480
    functionName: jwt.api_jwt.PyJWT._validate_exp
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - ExpiredSignatureError
    - DecodeError
    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: 546
    functionName: jwt.api_jwt.PyJWT._validate_iss
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - MissingRequiredClaimError
    - InvalidIssuerError
    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: 496
    functionName: jwt.api_jwt.PyJWT._validate_aud
    functionSourceFile: jwt.api_jwt
    functionUses: 4
    functionsReached:
    - <builtin>.all
    - <builtin>.isinstance
    - <builtin>.any
    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 0x7f3fa75382b0>
    argNames:
    - self
    - payload
    - subject
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 416
    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: 437
    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: 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 0x7f3fa77b9400>
    - <ast.Constant object at 0x7f3fa77b90a0>
    - <ast.Constant object at 0x7f3fa77b9ca0>
    - <ast.Constant object at 0x7f3fa77b9a30>
    - <ast.Constant object at 0x7f3fa77b96d0>
    - <ast.Constant object at 0x7f3fa77b9670>
    - <ast.Constant object at 0x7f3fa77b9430>
    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:
    - functools.lru_cache
    - jwt.jwk_set_cache.JWKSetCache.__init__
    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: 54
    functionName: jwt.jwks_client.PyJWKClient.fetch_data
    functionSourceFile: jwt.jwks_client
    functionUses: 4
    functionsReached:
    - json.load
    - urllib.request.urlopen
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - time.monotonic
    - urllib.request.Request
    - 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: 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: urllib.request.urlopen
    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: json.load
    functionSourceFile: json
    functionUses: 5
    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: 5
    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 0x7f3fa6fd8f70>
    argNames:
    - self
    - refresh
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 72
    functionName: jwt.jwks_client.PyJWKClient.get_jwk_set
    functionSourceFile: jwt.jwks_client
    functionUses: 3
    functionsReached:
    - obj.get
    - urllib.request.urlopen
    - time.monotonic
    - jwt.jwks_client.PyJWKClient.fetch_data
    - <builtin>.len
    - jwt.jwk_set_cache.JWKSetCache.put
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - <builtin>.isinstance
    - jwt.api_jwk.PyJWK.__init__
    - jwt.jwk_set_cache.JWKSetCache.get
    - jwt.api_jwk.PyJWKSet.from_dict
    - default_algorithms.update
    - jwt.api_jwk.PyJWKSet.__init__
    - jwt.algorithms.get_default_algorithms
    - json.load
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - abc.ABC.__init__
    - urllib.request.Request
    - jwt.algorithms.HMACAlgorithm.__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: 4
    functionsReached:
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - time.monotonic
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    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 0x7f3fa71862b0>
    argNames:
    - self
    - refresh
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 85
    functionName: jwt.jwks_client.PyJWKClient.get_signing_keys
    functionSourceFile: jwt.jwks_client
    functionUses: 2
    functionsReached:
    - obj.get
    - urllib.request.urlopen
    - time.monotonic
    - jwt.jwks_client.PyJWKClient.fetch_data
    - <builtin>.len
    - jwt.jwk_set_cache.JWKSetCache.put
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - <builtin>.isinstance
    - jwt.api_jwk.PyJWK.__init__
    - jwt.jwk_set_cache.JWKSetCache.get
    - jwt.api_jwk.PyJWKSet.from_dict
    - default_algorithms.update
    - jwt.api_jwk.PyJWKSet.__init__
    - jwt.algorithms.get_default_algorithms
    - jwt.jwks_client.PyJWKClient.get_jwk_set
    - json.load
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - abc.ABC.__init__
    - urllib.request.Request
    - jwt.algorithms.HMACAlgorithm.__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: 98
    functionName: jwt.jwks_client.PyJWKClient.get_signing_key
    functionSourceFile: jwt.jwks_client
    functionUses: 1
    functionsReached:
    - obj.get
    - urllib.request.urlopen
    - time.monotonic
    - jwt.jwks_client.PyJWKClient.fetch_data
    - jwt.jwks_client.PyJWKClient.get_signing_keys
    - <builtin>.len
    - jwt.jwk_set_cache.JWKSetCache.put
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - <builtin>.isinstance
    - jwt.api_jwk.PyJWK.__init__
    - jwt.jwk_set_cache.JWKSetCache.get
    - jwt.api_jwk.PyJWKSet.from_dict
    - default_algorithms.update
    - jwt.api_jwk.PyJWKSet.__init__
    - jwt.algorithms.get_default_algorithms
    - jwt.jwks_client.PyJWKClient.match_kid
    - jwt.jwks_client.PyJWKClient.get_jwk_set
    - json.load
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - abc.ABC.__init__
    - urllib.request.Request
    - jwt.algorithms.HMACAlgorithm.__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: 120
    functionName: jwt.jwks_client.PyJWKClient.match_kid
    functionSourceFile: ''
    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
    - token
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 114
    functionName: jwt.jwks_client.PyJWKClient.get_signing_key_from_jwt
    functionSourceFile: jwt.jwks_client
    functionUses: 0
    functionsReached:
    - obj.get
    - jwt.jwks_client.PyJWKClient.get_signing_key
    - jwt.api_jwt.PyJWT._validate_jti
    - jwt.api_jwt.PyJWT._validate_iss
    - jwt.api_jwt.PyJWT._validate_sub
    - urllib.request.urlopen
    - jwt.api_jwt.PyJWT._validate_required_claims
    - datetime.datetime.now
    - time.monotonic
    - jwt.api_jwt.PyJWT._validate_aud
    - jwt.api_jwt.PyJWT._validate_claims
    - jwt.jwks_client.PyJWKClient.fetch_data
    - leeway.total_seconds
    - jwt.api_jwt.PyJWT._validate_nbf
    - json.loads
    - <builtin>.tuple
    - jwt.jwks_client.PyJWKClient.get_signing_keys
    - <builtin>.len
    - jwt.api_jwt.PyJWT._decode_payload
    - jwt.jwk_set_cache.JWKSetCache.put
    - jwt.api_jwt.PyJWT._merge_options
    - header.get
    - options.get
    - jwt.api_jwt.PyJWT._validate_exp
    - kwargs.keys
    - jwt.api_jwk.PyJWTSetWithTimestamp.__init__
    - jwt.jwk_set_cache.JWKSetCache.is_expired
    - <builtin>.isinstance
    - jwt.api_jwk.PyJWK.__init__
    - <builtin>.all
    - jwt.jwk_set_cache.JWKSetCache.get
    - jwt.api_jwk.PyJWKSet.from_dict
    - default_algorithms.update
    - jwt.api_jwk.PyJWKSet.__init__
    - warnings.warn
    - jwt.algorithms.get_default_algorithms
    - jwt.jwks_client.PyJWKClient.match_kid
    - jwt.jwks_client.PyJWKClient.get_jwk_set
    - json.load
    - jwt.api_jwt.PyJWT._validate_iat
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_jwk_set
    - payload.get
    - jwt.api_jwk.PyJWTSetWithTimestamp.get_timestamp
    - <builtin>.int
    - urllib.request.Request
    - jwt.api_jwt.PyJWT.decode_complete
    - abc.ABC.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - <builtin>.any
    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.get
    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: 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: 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: 5
    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: 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
    - <builtin>.list
    - jwt.api_jws.PyJWS.__init__
    - jwt.api_jws.PyJWS._get_default_options
    - abc.ABC.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - <builtin>.set
    - default_algorithms.update
    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 0x7f3fa6fdeb20>
    - <ast.Constant object at 0x7f3fa6fde970>
    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:
    - jwt.algorithms.get_default_algorithms
    - <builtin>.list
    - jwt.api_jws.PyJWS._get_default_options
    - abc.ABC.__init__
    - jwt.algorithms.HMACAlgorithm.__init__
    - <builtin>.set
    - 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 0x7f3fa7183310>
    - <ast.Constant object at 0x7f3fa71831c0>
    - <ast.Constant object at 0x7f3fa71830a0>
    - <ast.Constant object at 0x7f3fa71834f0>
    - <ast.Constant object at 0x7f3fa7183100>
    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:
    - segments.append
    - jwt.utils.base64url_encode
    - alg_obj.prepare_key
    - headers.get
    - base64.urlsafe_b64encode
    - <builtin>.isinstance
    - jwt.api_jws.PyJWS.get_algorithm_by_name
    - encoded_string.decode
    - jwt.api_jws.PyJWS._validate_headers
    - json.dumps
    - header.update
    - jwt.api_jws.PyJWS._validate_kid
    - alg_obj.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: 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:
    - <builtin>.isinstance
    - jwt.api_jws.PyJWS._validate_kid
    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: 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 0x7f3fa7163640>
    - <ast.Constant object at 0x7f3fa7163dc0>
    - <ast.Constant object at 0x7f3fa7163430>
    - <ast.Constant object at 0x7f3fa7163e80>
    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:
    - alg_obj.verify
    - jwt.rsplit
    - <builtin>.tuple
    - json.loads
    - jwt.utils.force_bytes
    - <builtin>.len
    - jwt.api_jws.PyJWS._load
    - header.get
    - jwt.api_jws.PyJWS.get_algorithm_by_name
    - jwt.api_jws.PyJWS._verify_signature
    - jwt.encode
    - base64.urlsafe_b64decode
    - kwargs.keys
    - <builtin>.isinstance
    - value.encode
    - jwt.utils.base64url_decode
    - signing_input.split
    - warnings.warn
    - alg_obj.prepare_key
    linkageType: pythonLinkage
    raised:
    - DecodeError
    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:
    - jwt.encode
    - base64.urlsafe_b64decode
    - json.loads
    - jwt.utils.force_bytes
    - <builtin>.len
    - jwt.rsplit
    - <builtin>.isinstance
    - value.encode
    - jwt.utils.base64url_decode
    - signing_input.split
    linkageType: pythonLinkage
    raised:
    - DecodeError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f3fa70b8af0>
    - <ast.Constant object at 0x7f3fa70b8a30>
    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.verify
    - alg_obj.prepare_key
    - 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 0x7f3fa754e040>
    - <ast.Constant object at 0x7f3fa754e7c0>
    - <ast.Constant object at 0x7f3fa754ea30>
    - <ast.Constant object at 0x7f3fa754e310>
    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:
    - alg_obj.verify
    - jwt.rsplit
    - <builtin>.tuple
    - json.loads
    - jwt.utils.force_bytes
    - jwt.api_jws.PyJWS.decode_complete
    - <builtin>.len
    - jwt.api_jws.PyJWS._load
    - header.get
    - jwt.api_jws.PyJWS.get_algorithm_by_name
    - jwt.api_jws.PyJWS._verify_signature
    - jwt.encode
    - base64.urlsafe_b64decode
    - kwargs.keys
    - <builtin>.isinstance
    - value.encode
    - jwt.utils.base64url_decode
    - signing_input.split
    - warnings.warn
    - alg_obj.prepare_key
    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.encode
    - base64.urlsafe_b64decode
    - jwt.utils.force_bytes
    - json.loads
    - <builtin>.len
    - jwt.rsplit
    - <builtin>.isinstance
    - value.encode
    - jwt.utils.base64url_decode
    - signing_input.split
    - jwt.api_jws.PyJWS._validate_headers
    - jwt.api_jws.PyJWS._load
    - jwt.api_jws.PyJWS._validate_kid
    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: 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: 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:
    - platform.python_version
    - platform.python_implementation
    - <builtin>.print
    - platform.system
    - platform.release
    - jwt.help.main
    - json.dumps
    - 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: 16
    functionName: jwt.help.info
    functionSourceFile: jwt.help
    functionUses: 2
    functionsReached:
    - platform.python_version
    - platform.release
    - platform.python_implementation
    - 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: 61
    functionName: jwt.help.main
    functionSourceFile: jwt.help
    functionUses: 1
    functionsReached:
    - platform.python_version
    - platform.python_implementation
    - <builtin>.print
    - platform.system
    - platform.release
    - json.dumps
    - 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:
  - 378
  - 95
  jwt.algorithms.Algorithm:
  - 178
  jwt.algorithms.Algorithm.check_crypto_key_type:
  - 208
  - 217
  - 222
  jwt.algorithms.Algorithm.compute_hash_digest:
  - 192
  - 193
  - 196
  - 198
  - 199
  - 201
  - 202
  - 203
  - 205
  - 186
  jwt.algorithms.Algorithm.from_jwk:
  - 271
  jwt.algorithms.Algorithm.prepare_key:
  - 232
  jwt.algorithms.Algorithm.sign:
  - 239
  jwt.algorithms.Algorithm.to_jwk:
  - 264
  - 259
  - 254
  jwt.algorithms.Algorithm.verify:
  - 246
  jwt.algorithms.ECAlgorithm:
  - 559
  jwt.algorithms.ECAlgorithm.from_jwk:
  - 680
  - 681
  - 682
  - 689
  - 692
  - 695
  - 696
  - 698
  - 701
  - 702
  - 703
  - 708
  - 709
  - 710
  - 715
  - 716
  - 717
  - 722
  - 723
  - 724
  - 732
  - 733
  - 734
  - 738
  - 739
  - 741
  - 742
  - 747
  - 748
  jwt.algorithms.ECAlgorithm.prepare_key:
  - 577
  - 580
  - 586
  - 587
  - 589
  - 592
  - 593
  - 595
  - 596
  - 597
  - 574
  jwt.algorithms.ECAlgorithm.sign:
  - 600
  - 602
  jwt.algorithms.ECAlgorithm.to_jwk:
  - 672
  - 668
  - 642
  - 675
  - 644
  - 646
  - 648
  - 667
  - 656
  - 625
  - 660
  - 631
  - 666
  - 635
  - 636
  - 637
  - 638
  jwt.algorithms.ECAlgorithm.verify:
  - 616
  - 612
  - 613
  - 606
  jwt.algorithms.HMACAlgorithm:
  - 307
  jwt.algorithms.HMACAlgorithm.from_jwk:
  - 357
  - 358
  - 359
  - 366
  - 369
  jwt.algorithms.HMACAlgorithm.prepare_key:
  - 320
  - 322
  jwt.algorithms.HMACAlgorithm.sign:
  - 372
  jwt.algorithms.HMACAlgorithm.to_jwk:
  - 352
  - 334
  - 340
  - 345
  - 349
  jwt.algorithms.HMACAlgorithm.verify:
  - 375
  jwt.algorithms.NoneAlgorithm:
  - 277
  jwt.algorithms.NoneAlgorithm.prepare_key:
  - 283
  - 286
  jwt.algorithms.OKPAlgorithm:
  - 782
  jwt.algorithms.OKPAlgorithm.from_jwk:
  - 928
  - 929
  - 932
  - 934
  - 937
  - 938
  - 939
  - 940
  - 941
  - 942
  - 943
  - 944
  - 916
  - 917
  - 918
  - 925
  jwt.algorithms.OKPAlgorithm.prepare_key:
  - 802
  - 803
  - 804
  - 805
  - 806
  - 807
  - 812
  - 813
  - 794
  - 795
  - 796
  - 798
  - 799
  jwt.algorithms.OKPAlgorithm.sign:
  - 825
  - 818
  - 826
  jwt.algorithms.OKPAlgorithm.to_jwk:
  - 864
  - 898
  - 868
  - 869
  - 900
  - 901
  - 873
  - 906
  - 876
  - 909
  - 881
  - 884
  - 886
  - 887
  - 858
  - 893
  - 890
  jwt.algorithms.OKPAlgorithm.verify:
  - 841
  - 842
  - 845
  - 846
  - 849
  - 831
  jwt.algorithms.RSAAlgorithm:
  - 381
  jwt.algorithms.RSAAlgorithm.from_jwk:
  - 512
  - 513
  - 514
  - 515
  - 516
  - 517
  - 518
  - 519
  - 523
  - 524
  - 528
  - 532
  - 533
  - 534
  - 538
  - 539
  - 541
  - 542
  - 543
  - 479
  - 480
  - 481
  - 488
  - 491
  - 493
  - 500
  - 502
  - 507
  - 508
  - 509
  jwt.algorithms.RSAAlgorithm.prepare_key:
  - 417
  - 418
  - 419
  - 396
  - 399
  - 402
  - 405
  - 406
  - 407
  - 408
  - 410
  - 413
  - 414
  jwt.algorithms.RSAAlgorithm.sign:
  - 549
  jwt.algorithms.RSAAlgorithm.to_jwk:
  - 448
  - 449
  - 450
  - 451
  - 452
  - 453
  - 454
  - 455
  - 458
  - 460
  - 429
  - 465
  - 466
  - 435
  - 471
  - 441
  - 474
  - 443
  jwt.algorithms.RSAAlgorithm.verify:
  - 553
  jwt.algorithms.RSAPSSAlgorithm:
  - 752
  jwt.algorithms.RSAPSSAlgorithm.sign:
  - 757
  - 759
  - 760
  - 761
  - 763
  jwt.algorithms.RSAPSSAlgorithm.verify:
  - 768
  - 771
  - 772
  - 773
  - 775
  jwt.algorithms.get_default_algorithms:
  - 144
  - 148
  - 149
  - 150
  - 151
  - 154
  - 155
  jwt.api_jwk.PyJWK.__init__:
  - 20
  - 30
  - 33
  - 34
  - 37
  - 38
  - 40
  - 42
  - 43
  - 44
  - 46
  - 48
  - 50
  - 54
  - 56
  - 58
  - 59
  - 61
  - 68
  - 75
  - 80
  jwt.api_jwk.PyJWK.from_dict:
  - 84
  - 92
  jwt.api_jwk.PyJWK.from_json:
  - 96
  - 105
  - 106
  jwt.api_jwk.PyJWK.key_id:
  - 122
  - 118
  jwt.api_jwk.PyJWK.key_type:
  - 114
  - 110
  jwt.api_jwk.PyJWK.public_key_use:
  - 130
  - 126
  jwt.api_jwk.PyJWKSet.__getitem__:
  - 168
  - 169
  jwt.api_jwk.PyJWKSet.__init__:
  - 137
  - 140
  - 143
  - 145
  - 147
  - 152
  jwt.api_jwk.PyJWKSet.__iter__:
  - 174
  jwt.api_jwk.PyJWKSet.from_dict:
  - 160
  - 159
  jwt.api_jwk.PyJWKSet.from_json:
  - 164
  - 165
  jwt.api_jwk.PyJWTSetWithTimestamp.__init__:
  - 180
  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:
  - 32
  - 25
  - 572
  jwt.api_jwt.PyJWT.__init__:
  - 45
  - 46
  - 47
  jwt.api_jwt.PyJWT._decode_payload:
  - 282
  - 279
  - 271
  jwt.api_jwt.PyJWT._encode_payload:
  - 157
  - 151
  jwt.api_jwt.PyJWT._merge_options:
  - 65
  - 69
  - 70
  - 71
  - 72
  - 73
  - 74
  - 75
  - 76
  jwt.api_jwt.PyJWT._validate_aud:
  - 535
  - 519
  - 521
  - 525
  - 528
  - 533
  - 503
  - 504
  - 537
  - 540
  - 510
  - 543
  jwt.api_jwt.PyJWT._validate_claims:
  - 384
  - 385
  - 387
  - 388
  - 390
  - 391
  - 393
  - 394
  - 396
  - 397
  - 398
  - 401
  - 402
  - 404
  - 405
  - 374
  - 375
  - 377
  - 380
  - 382
  jwt.api_jwt.PyJWT._validate_exp:
  - 493
  - 487
  jwt.api_jwt.PyJWT._validate_iat:
  - 458
  - 463
  jwt.api_jwt.PyJWT._validate_iss:
  - 549
  - 552
  - 556
  - 559
  - 560
  - 564
  jwt.api_jwt.PyJWT._validate_jti:
  - 448
  - 445
  - 438
  jwt.api_jwt.PyJWT._validate_nbf:
  - 473
  - 477
  jwt.api_jwt.PyJWT._validate_required_claims:
  - 412
  - 413
  jwt.api_jwt.PyJWT._validate_sub:
  - 419
  - 427
  - 430
  - 433
  - 434
  jwt.api_jwt.PyJWT.decode:
  - 305
  - 343
  - 344
  - 347
  - 351
  jwt.api_jwt.PyJWT.decode_complete:
  - 224
  - 257
  - 258
  - 229
  - 232
  - 237
  - 238
  - 182
  - 247
  - 220
  - 221
  - 255
  jwt.api_jwt.PyJWT.encode:
  - 130
  - 136
  - 124
  - 113
  - 88
  - 121
  - 123
  - 120
  - 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:
  - 66
  - 67
  jwt.help.info:
  - 32
  - 33
  - 40
  - 41
  - 17
  - 23
  - 24
  - 29
  - 31
  jwt.help.main:
  - 62
  - 63
  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
  - 50
  - 28
  jwt.jwks_client.PyJWKClient.fetch_data:
  - 69
  - 70
  - 57
  - 58
  - 61
  jwt.jwks_client.PyJWKClient.get_jwk_set:
  - 74
  - 75
  - 77
  - 78
  - 80
  - 83
  jwt.jwks_client.PyJWKClient.get_signing_key:
  - 99
  - 100
  - 102
  - 104
  - 105
  - 107
  jwt.jwks_client.PyJWKClient.get_signing_key_from_jwt:
  - 115
  - 117
  jwt.jwks_client.PyJWKClient.get_signing_keys:
  - 93
  - 86
  jwt.jwks_client.PyJWKClient.match_kid:
  - 123
  - 124
  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'
