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 38 google.auth.jwt.encode call site: 00038 google.auth.iam.Signer._make_signing_request
15 79 google.auth.jwt.decode call site: 00079 google.auth.jwt._verify_iat_and_exp
14 2 ...fuzz_jwt_roundtrip.test_roundtrip_unverified call site: 00002 google.auth.crypt._python_rsa.RSASigner.from_string
2 23 ...fuzz_jwt_roundtrip.test_roundtrip_unverified call site: 00023 fdp.ConsumeString
2 26 ...fuzz_jwt_roundtrip.test_roundtrip_unverified call site: 00026 google.auth.jwt.encode
2 32 google.auth.jwt.encode call site: 00032 google.auth._helpers.unpadded_urlsafe_b64encode
2 35 google.auth._helpers.unpadded_urlsafe_b64encode call site: 00035 google.auth._helpers.unpadded_urlsafe_b64encode
1 0 EP call site: 00000 ...fuzz_jwt_roundtrip.test_roundtrip_unverified
1 30 google.auth.jwt.encode call site: 00030 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._python_rsa.RSASigner.from_string [function] [call site] 00003
3 google.auth._helpers.from_bytes [function] [call site] 00004
4 <builtin>.isinstance [function] [call site] 00005
4 value.decode [function] [call site] 00006
4 <builtin>.isinstance [function] [call site] 00007
3 pyasn1_modules.pem.readPemBlocksFromFile [function] [call site] 00008
3 io.StringIO [function] [call site] 00009
3 rsa.key.PrivateKey.load_pkcs1 [function] [call site] 00010
3 pyasn1.codec.der.decoder.decode [function] [call site] 00011
3 key_info.getComponentByName [function] [call site] 00012
3 rsa.key.PrivateKey.load_pkcs1 [function] [call site] 00013
3 private_key_info.asOctets [function] [call site] 00014
3 google.auth.crypt._python_rsa.RSASigner.__init__ [function] [call site] 00015
2 google.auth.crypt._cryptography_rsa.RSASigner.from_string [function] [call site] 00016
3 google.auth._helpers.to_bytes [function] [call site] 00017
4 <builtin>.isinstance [function] [call site] 00018
4 value.encode [function] [call site] 00019
4 <builtin>.isinstance [function] [call site] 00020
3 cryptography.hazmat.primitives.serialization.load_pem_private_key [function] [call site] 00021
3 google.auth.crypt._cryptography_rsa.RSASigner.__init__ [function] [call site] 00022
2 fdp.ConsumeIntInRange [function] [call site] 00023
2 fdp.ConsumeString [function] [call site] 00024
2 fdp.ConsumeIntInRange [function] [call site] 00025
2 fdp.ConsumeString [function] [call site] 00026
2 fdp.ConsumeString [function] [call site] 00027
2 google.auth.jwt.encode [function] [call site] 00028
3 header.update [function] [call site] 00029
3 <builtin>.isinstance [function] [call site] 00030
3 header.update [function] [call site] 00031
3 header.update [function] [call site] 00032
3 json.dumps [function] [call site] 00033
3 google.auth._helpers.unpadded_urlsafe_b64encode [function] [call site] 00034
4 base64.urlsafe_b64encode [function] [call site] 00035
3 json.dumps [function] [call site] 00036
3 google.auth._helpers.unpadded_urlsafe_b64encode [function] [call site] 00037
3 google.auth.iam.Signer.sign [function] [call site] 00038
4 google.auth.iam.Signer._make_signing_request [function] [call site] 00039
5 google.auth._exponential_backoff.ExponentialBackoff.__iter__ [function] [call site] 00040
6 google.auth._exponential_backoff._BaseExponentialBackoff._reset [function] [call site] 00041
5 google.auth._exponential_backoff.ExponentialBackoff.__next__ [function] [call site] 00042
6 google.auth._exponential_backoff._BaseExponentialBackoff._calculate_jitter [function] [call site] 00043
7 random.uniform [function] [call site] 00044
6 time.sleep [function] [call site] 00045
5 google.auth._helpers.to_bytes [function] [call site] 00046
5 _IAM_SIGN_ENDPOINT.replace [function] [call site] 00047
5 json.dumps [function] [call site] 00048
5 base64.b64encode [function] [call site] 00049
5 google.auth._exponential_backoff.ExponentialBackoff.__init__ [function] [call site] 00050
6 <builtin>.super [function] [call site] 00051
5 google.auth.api_key.Credentials.before_request [function] [call site] 00052
6 google.auth.api_key.Credentials.apply [function] [call site] 00053
5 response.data.decode [function] [call site] 00054
5 json.loads [function] [call site] 00055
4 base64.b64decode [function] [call site] 00056
3 google.auth._helpers.unpadded_urlsafe_b64encode [function] [call site] 00057
3 segments.append [function] [call site] 00058
2 google.auth.jwt.decode [function] [call site] 00059
3 google.auth.jwt._unverified_decode [function] [call site] 00060
4 google.auth._helpers.to_bytes [function] [call site] 00061
4 token.count [function] [call site] 00062
4 token.split [function] [call site] 00063
4 google.auth._helpers.padded_urlsafe_b64decode [function] [call site] 00064
5 google.auth._helpers.to_bytes [function] [call site] 00065
5 <builtin>.len [function] [call site] 00066
5 base64.urlsafe_b64decode [function] [call site] 00067
4 google.auth.jwt._decode_jwt_segment [function] [call site] 00068
5 google.auth._helpers.padded_urlsafe_b64decode [function] [call site] 00069
5 section_bytes.decode [function] [call site] 00070
5 json.loads [function] [call site] 00071
5 google.auth.exceptions.GoogleAuthError.__init__ [function] [call site] 00072
6 <builtin>.super [function] [call site] 00073
6 kwargs.get [function] [call site] 00074
4 google.auth.jwt._decode_jwt_segment [function] [call site] 00075
4 <builtin>.isinstance [function] [call site] 00076
4 <builtin>.isinstance [function] [call site] 00077
3 header.get [function] [call site] 00078
3 header.get [function] [call site] 00079
3 <builtin>.isinstance [function] [call site] 00080
3 certs.values [function] [call site] 00081
3 google.auth.crypt.verify_signature [function] [call site] 00082
4 <builtin>.isinstance [function] [call site] 00083
4 verifier_cls.from_string [function] [call site] 00084
4 verifier.verify [function] [call site] 00085
3 google.auth.jwt._verify_iat_and_exp [function] [call site] 00086
4 google.auth._helpers.utcnow [function] [call site] 00087
5 datetime.datetime.now [function] [call site] 00088
5 now.replace [function] [call site] 00089
4 google.auth._helpers.datetime_to_secs [function] [call site] 00090
5 value.utctimetuple [function] [call site] 00091
5 calendar.timegm [function] [call site] 00092
3 payload.get [function] [call site] 00093
3 <builtin>.isinstance [function] [call site] 00094