Fuzz introspector: fuzz_jwt_roundtrip
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
18 27 google.auth.jwt.encode call site: 00027 google.auth.iam.Signer._make_signing_request
15 68 google.auth.jwt.decode call site: 00068 google.auth.jwt._verify_iat_and_exp
2 12 ...fuzz_jwt_roundtrip.test_roundtrip_unverified call site: 00012 fdp.ConsumeString
2 15 ...fuzz_jwt_roundtrip.test_roundtrip_unverified call site: 00015 google.auth.jwt.encode
2 21 google.auth.jwt.encode call site: 00021 google.auth._helpers.unpadded_urlsafe_b64encode
2 24 google.auth._helpers.unpadded_urlsafe_b64encode call site: 00024 google.auth._helpers.unpadded_urlsafe_b64encode
1 0 EP call site: 00000 ...fuzz_jwt_roundtrip.test_roundtrip_unverified
1 2 ...fuzz_jwt_roundtrip.test_roundtrip_unverified call site: 00002 google.auth.crypt.rsa.RSASigner.from_string
1 19 google.auth.jwt.encode call site: 00019 header.update

Fuzzer calltree

0 ...fuzz_jwt_roundtrip.TestOneInput [function] [call site] 00000
1 ...fuzz_jwt_roundtrip.test_roundtrip_unverified [function] [call site] 00001
2 atheris.FuzzedDataProvider [function] [call site] 00002
2 google.auth.crypt.rsa.RSASigner.from_string [function] [call site] 00003
3 cls.__new__ [function] [call site] 00004
3 google.auth.crypt._cryptography_rsa.RSASigner.from_string [function] [call site] 00005
4 google.auth._helpers.to_bytes [function] [call site] 00006
5 <builtin>.isinstance [function] [call site] 00007
5 value.encode [function] [call site] 00008
5 <builtin>.isinstance [function] [call site] 00009
4 cryptography.hazmat.primitives.serialization.load_pem_private_key [function] [call site] 00010
4 google.auth.crypt._cryptography_rsa.RSASigner.__init__ [function] [call site] 00011
2 fdp.ConsumeIntInRange [function] [call site] 00012
2 fdp.ConsumeString [function] [call site] 00013
2 fdp.ConsumeIntInRange [function] [call site] 00014
2 fdp.ConsumeString [function] [call site] 00015
2 fdp.ConsumeString [function] [call site] 00016
2 google.auth.jwt.encode [function] [call site] 00017
3 header.update [function] [call site] 00018
3 <builtin>.isinstance [function] [call site] 00019
3 header.update [function] [call site] 00020
3 header.update [function] [call site] 00021
3 json.dumps [function] [call site] 00022
3 google.auth._helpers.unpadded_urlsafe_b64encode [function] [call site] 00023
4 base64.urlsafe_b64encode [function] [call site] 00024
3 json.dumps [function] [call site] 00025
3 google.auth._helpers.unpadded_urlsafe_b64encode [function] [call site] 00026
3 google.auth.iam.Signer.sign [function] [call site] 00027
4 google.auth.iam.Signer._make_signing_request [function] [call site] 00028
5 google.auth._exponential_backoff.ExponentialBackoff.__iter__ [function] [call site] 00029
6 google.auth._exponential_backoff._BaseExponentialBackoff._reset [function] [call site] 00030
5 google.auth._exponential_backoff.ExponentialBackoff.__next__ [function] [call site] 00031
6 google.auth._exponential_backoff._BaseExponentialBackoff._calculate_jitter [function] [call site] 00032
7 random.uniform [function] [call site] 00033
6 time.sleep [function] [call site] 00034
5 google.auth._helpers.to_bytes [function] [call site] 00035
5 _IAM_SIGN_ENDPOINT.replace [function] [call site] 00036
5 json.dumps [function] [call site] 00037
5 base64.b64encode [function] [call site] 00038
5 google.auth._exponential_backoff.ExponentialBackoff.__init__ [function] [call site] 00039
6 <builtin>.super [function] [call site] 00040
5 google.auth.api_key.Credentials.before_request [function] [call site] 00041
6 google.auth.api_key.Credentials.apply [function] [call site] 00042
5 response.data.decode [function] [call site] 00043
5 json.loads [function] [call site] 00044
4 base64.b64decode [function] [call site] 00045
3 google.auth._helpers.unpadded_urlsafe_b64encode [function] [call site] 00046
3 segments.append [function] [call site] 00047
2 google.auth.jwt.decode [function] [call site] 00048
3 google.auth.jwt._unverified_decode [function] [call site] 00049
4 google.auth._helpers.to_bytes [function] [call site] 00050
4 token.count [function] [call site] 00051
4 token.split [function] [call site] 00052
4 google.auth._helpers.padded_urlsafe_b64decode [function] [call site] 00053
5 google.auth._helpers.to_bytes [function] [call site] 00054
5 <builtin>.len [function] [call site] 00055
5 base64.urlsafe_b64decode [function] [call site] 00056
4 google.auth.jwt._decode_jwt_segment [function] [call site] 00057
5 google.auth._helpers.padded_urlsafe_b64decode [function] [call site] 00058
5 section_bytes.decode [function] [call site] 00059
5 json.loads [function] [call site] 00060
5 google.auth.exceptions.GoogleAuthError.__init__ [function] [call site] 00061
6 <builtin>.super [function] [call site] 00062
6 kwargs.get [function] [call site] 00063
4 google.auth.jwt._decode_jwt_segment [function] [call site] 00064
4 <builtin>.isinstance [function] [call site] 00065
4 <builtin>.isinstance [function] [call site] 00066
3 header.get [function] [call site] 00067
3 header.get [function] [call site] 00068
3 <builtin>.isinstance [function] [call site] 00069
3 certs.values [function] [call site] 00070
3 google.auth.crypt.verify_signature [function] [call site] 00071
4 <builtin>.isinstance [function] [call site] 00072
4 verifier_cls.from_string [function] [call site] 00073
4 verifier.verify [function] [call site] 00074
3 google.auth.jwt._verify_iat_and_exp [function] [call site] 00075
4 google.auth._helpers.utcnow [function] [call site] 00076
5 datetime.datetime.now [function] [call site] 00077
5 now.replace [function] [call site] 00078
4 google.auth._helpers.datetime_to_secs [function] [call site] 00079
5 value.utctimetuple [function] [call site] 00080
5 calendar.timegm [function] [call site] 00081
3 payload.get [function] [call site] 00082
3 <builtin>.isinstance [function] [call site] 00083