Fuzz introspector: KeyPairVerifierFuzzer
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
34 14 [org.keycloak.common.util.Base64].decode4to3(byte[],int,byte[],int,int) call site: {node_id}
25 49 [org.keycloak.KeyPairVerifier].verify(java.lang.String,java.lang.String) call site: {node_id}
12 100 [org.keycloak.common.util.Base64Url].decode(java.lang.String) call site: {node_id}
9 0 EP call site: {node_id}
8 90 [org.keycloak.common.util.Base64Url].encode(byte[]) call site: {node_id}
6 77 [org.keycloak.common.util.Base64].encodeBytes(byte[],int,int,int) call site: {node_id}
1 84 [org.keycloak.common.util.Base64].access$300(byte[],byte[],int,int) call site: {node_id}
1 86 [org.keycloak.common.util.Base64].encode3to4(byte[],int,int,byte[],int,int) call site: {node_id}

Fuzzer calltree

0 [KeyPairVerifierFuzzer].fuzzerTestOneInput(com.code_intelligence.jazzer.api.FuzzedDataProvider) [function] [call site] 00000
1 [com.code_intelligence.jazzer.api.FuzzedDataProvider].consumeString(int) [function] [call site] 00001
1 [com.code_intelligence.jazzer.api.FuzzedDataProvider].remainingBytes() [function] [call site] 00002
1 [com.code_intelligence.jazzer.api.FuzzedDataProvider].consumeRemainingAsString() [function] [call site] 00003
1 [org.keycloak.KeyPairVerifier].verify(java.lang.String,java.lang.String) [function] [call site] 00004
2 [org.keycloak.common.util.PemUtils].decodePrivateKey(java.lang.String) [function] [call site] 00005
3 [org.keycloak.crypto.def.BCPemUtilsProvider].decodePrivateKey(java.lang.String) [function] [call site] 00006
4 [org.keycloak.common.crypto.PemUtilsProvider].pemToDer(java.lang.String) [function] [call site] 00007
5 [org.keycloak.common.crypto.PemUtilsProvider].removeBeginEnd(java.lang.String) [function] [call site] 00008
5 [org.keycloak.common.util.Base64].decode(java.lang.String) [function] [call site] 00009
6 [org.keycloak.common.util.Base64].decode(java.lang.String,int) [function] [call site] 00010
7 [org.keycloak.common.util.Base64].decode(byte[],int,int,int) [function] [call site] 00011
8 [org.keycloak.common.util.Base64].getDecodabet(int) [function] [call site] 00012
8 [org.keycloak.common.util.Base64].decode4to3(byte[],int,byte[],int,int) [function] [call site] 00013
9 [org.keycloak.common.util.Base64].getDecodabet(int) [function] [call site] 00014
5 [org.keycloak.common.util.PemException]. (java.lang.Throwable) [function] [call site] 00015
4 [org.keycloak.common.util.DerUtils].decodePrivateKey(byte[]) [function] [call site] 00016
5 [org.keycloak.crypto.def.DefaultCryptoProvider].getKeyFactory(java.lang.String) [function] [call site] 00017
5 [org.keycloak.crypto.elytron.WildFlyElytronProvider].getKeyFactory(java.lang.String) [function] [call site] 00018
5 [org.keycloak.crypto.fips.FIPS1402Provider].getKeyFactory(java.lang.String) [function] [call site] 00019
5 [org.keycloak.common.crypto.CryptoIntegration].getProvider() [function] [call site] 00020
4 [org.keycloak.common.util.PemException]. (java.lang.Throwable) [function] [call site] 00021
3 [org.keycloak.crypto.fips.BCFIPSPemUtilsProvider].decodePrivateKey(java.lang.String) [function] [call site] 00022
4 [org.keycloak.crypto.fips.BCFIPSPemUtilsProvider].readPrivateKeyObject(java.lang.String) [function] [call site] 00023
5 [org.bouncycastle.openssl.PEMParser]. (java.io.Reader) [function] [call site] 00024
4 [org.keycloak.common.util.PemUtils].addRsaPrivateKeyBeginEnd(java.lang.String) [function] [call site] 00025
4 [org.keycloak.crypto.fips.BCFIPSPemUtilsProvider].readPrivateKeyObject(java.lang.String) [function] [call site] 00026
4 [org.keycloak.common.util.PemUtils].addPrivateKeyBeginEnd(java.lang.String) [function] [call site] 00027
4 [org.keycloak.crypto.fips.BCFIPSPemUtilsProvider].readPrivateKeyObject(java.lang.String) [function] [call site] 00028
4 [org.bouncycastle.openssl.PEMKeyPair].getPrivateKeyInfo() [function] [call site] 00029
4 [org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter]. () [function] [call site] 00030
4 [org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter].setProvider(java.lang.String) [function] [call site] 00031
4 [org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter].getPrivateKey(org.bouncycastle.asn1.pkcs.PrivateKeyInfo) [function] [call site] 00032
4 [org.keycloak.common.util.PemException]. (java.lang.Throwable) [function] [call site] 00033
3 [org.keycloak.crypto.elytron.ElytronPEMUtilsProvider].decodePrivateKey(java.lang.String) [function] [call site] 00034
4 [org.keycloak.common.crypto.PemUtilsProvider].pemToDer(java.lang.String) [function] [call site] 00035
4 [org.keycloak.common.util.DerUtils].decodePrivateKey(byte[]) [function] [call site] 00036
4 [org.keycloak.common.util.PemException]. (java.lang.Throwable) [function] [call site] 00037
3 [org.keycloak.crypto.fips.FIPS1402Provider].getPemUtils() [function] [call site] 00038
4 [org.keycloak.crypto.fips.BCFIPSPemUtilsProvider]. () [function] [call site] 00039
5 [org.keycloak.common.crypto.PemUtilsProvider]. () [function] [call site] 00040
3 [org.keycloak.crypto.def.DefaultCryptoProvider].getPemUtils() [function] [call site] 00041
4 [org.keycloak.crypto.def.BCPemUtilsProvider]. () [function] [call site] 00042
5 [org.keycloak.common.crypto.PemUtilsProvider]. () [function] [call site] 00043
3 [org.keycloak.crypto.elytron.WildFlyElytronProvider].getPemUtils() [function] [call site] 00044
4 [org.keycloak.crypto.elytron.ElytronPEMUtilsProvider]. () [function] [call site] 00045
5 [org.keycloak.common.crypto.PemUtilsProvider]. () [function] [call site] 00046
5 [org.jboss.logging.Logger].getLogger(java.lang.Class) [function] [call site] 00047
3 [org.keycloak.common.crypto.CryptoIntegration].getProvider() [function] [call site] 00048
2 [org.keycloak.common.VerificationException]. (java.lang.String,java.lang.Throwable) [function] [call site] 00049
2 [org.keycloak.common.util.PemUtils].decodePublicKey(java.lang.String) [function] [call site] 00050
3 [org.keycloak.common.crypto.PemUtilsProvider].decodePublicKey(java.lang.String) [function] [call site] 00051
4 [org.keycloak.common.crypto.PemUtilsProvider].decodePublicKey(java.lang.String,java.lang.String) [function] [call site] 00052
5 [org.keycloak.common.crypto.PemUtilsProvider].pemToDer(java.lang.String) [function] [call site] 00053
5 [org.keycloak.common.util.DerUtils].decodePublicKey(byte[],java.lang.String) [function] [call site] 00054
6 [org.keycloak.crypto.def.DefaultCryptoProvider].getKeyFactory(java.lang.String) [function] [call site] 00055
6 [org.keycloak.crypto.elytron.WildFlyElytronProvider].getKeyFactory(java.lang.String) [function] [call site] 00056
6 [org.keycloak.crypto.fips.FIPS1402Provider].getKeyFactory(java.lang.String) [function] [call site] 00057
6 [org.keycloak.common.crypto.CryptoIntegration].getProvider() [function] [call site] 00058
5 [org.keycloak.common.util.PemException]. (java.lang.Throwable) [function] [call site] 00059
3 [org.keycloak.crypto.fips.FIPS1402Provider].getPemUtils() [function] [call site] 00060
3 [org.keycloak.crypto.def.DefaultCryptoProvider].getPemUtils() [function] [call site] 00061
3 [org.keycloak.crypto.elytron.WildFlyElytronProvider].getPemUtils() [function] [call site] 00062
3 [org.keycloak.common.crypto.CryptoIntegration].getProvider() [function] [call site] 00063
2 [org.keycloak.common.VerificationException]. (java.lang.String,java.lang.Throwable) [function] [call site] 00064
2 [org.keycloak.jose.jws.JWSBuilder]. () [function] [call site] 00065
2 [org.keycloak.jose.jws.JWSBuilder].content(byte[]) [function] [call site] 00066
3 [org.keycloak.jose.jws.JWSBuilder$EncodingBuilder]. (org.keycloak.jose.jws.JWSBuilder) [function] [call site] 00067
2 [org.keycloak.jose.jws.JWSBuilder$EncodingBuilder].rsa256(java.security.PrivateKey) [function] [call site] 00068
3 [org.keycloak.jose.jws.JWSBuilder$EncodingBuilder].sign(org.keycloak.jose.jws.Algorithm,java.security.PrivateKey) [function] [call site] 00069
4 [org.keycloak.jose.jws.JWSBuilder].marshalContent() [function] [call site] 00070
4 [org.keycloak.jose.jws.JWSBuilder].encode(org.keycloak.jose.jws.Algorithm,byte[],java.lang.StringBuilder) [function] [call site] 00071
5 [org.keycloak.jose.jws.JWSBuilder].encode(java.lang.String,byte[],java.lang.StringBuilder) [function] [call site] 00072
6 [org.keycloak.jose.jws.JWSBuilder].encodeHeader(java.lang.String) [function] [call site] 00073
7 [org.keycloak.common.util.Base64Url].encode(byte[]) [function] [call site] 00074
8 [org.keycloak.common.util.Base64].encodeBytes(byte[]) [function] [call site] 00075
9 [org.keycloak.common.util.Base64].encodeBytes(byte[],int,int,int) [function] [call site] 00076
10 [org.keycloak.common.util.Base64].encodeBytesToBytes(byte[],int,int,int) [function] [call site] 00077
11 [org.keycloak.common.util.Base64$OutputStream]. (java.io.OutputStream,int) [function] [call site] 00078
12 [org.keycloak.common.util.Base64].access$000(int) [function] [call site] 00079
13 [org.keycloak.common.util.Base64].getDecodabet(int) [function] [call site] 00080
11 [org.keycloak.common.util.Base64$OutputStream].close() [function] [call site] 00081
12 [org.keycloak.common.util.Base64$OutputStream].flushBase64() [function] [call site] 00082
13 [org.keycloak.common.util.Base64].access$300(byte[],byte[],int,int) [function] [call site] 00083
14 [org.keycloak.common.util.Base64].encode3to4(byte[],byte[],int,int) [function] [call site] 00084
15 [org.keycloak.common.util.Base64].encode3to4(byte[],int,int,byte[],int,int) [function] [call site] 00085
16 [org.keycloak.common.util.Base64].getAlphabet(int) [function] [call site] 00086
11 [org.keycloak.common.util.Base64$OutputStream].close() [function] [call site] 00087
11 [org.keycloak.common.util.Base64].encode3to4(byte[],int,int,byte[],int,int) [function] [call site] 00088
11 [org.keycloak.common.util.Base64].encode3to4(byte[],int,int,byte[],int,int) [function] [call site] 00089
8 [org.keycloak.common.util.Base64Url].encodeBase64ToBase64Url(java.lang.String) [function] [call site] 00090
6 [org.keycloak.common.util.Base64Url].encode(byte[]) [function] [call site] 00091
4 [org.keycloak.jose.jws.crypto.RSAProvider].sign(byte[],org.keycloak.jose.jws.Algorithm,java.security.PrivateKey) [function] [call site] 00092
5 [org.keycloak.jose.jws.crypto.RSAProvider].getSignature(org.keycloak.jose.jws.Algorithm) [function] [call site] 00093
6 [org.keycloak.jose.jws.crypto.RSAProvider].getJavaAlgorithm(org.keycloak.jose.jws.Algorithm) [function] [call site] 00094
4 [org.keycloak.jose.jws.JWSBuilder].encodeAll(java.lang.StringBuilder,byte[]) [function] [call site] 00095
5 [org.keycloak.common.util.Base64Url].encode(byte[]) [function] [call site] 00096
2 [org.keycloak.jose.jws.JWSInput]. (java.lang.String) [function] [call site] 00097
3 [org.keycloak.common.util.Base64Url].decode(java.lang.String) [function] [call site] 00098
4 [org.keycloak.common.util.Base64Url].encodeBase64UrlToBase64(java.lang.String) [function] [call site] 00099
4 [org.keycloak.common.util.Base64].decode(java.lang.String) [function] [call site] 00100
3 [org.keycloak.common.util.Base64Url].decode(java.lang.String) [function] [call site] 00101
3 [org.keycloak.common.util.Base64Url].decode(java.lang.String) [function] [call site] 00102
3 [org.keycloak.util.JsonSerialization].readValue(byte[],java.lang.Class) [function] [call site] 00103
3 [org.keycloak.jose.jws.JWSInputException]. (java.lang.Throwable) [function] [call site] 00104
2 [org.keycloak.jose.jws.crypto.RSAProvider].verify(org.keycloak.jose.jws.JWSInput,java.security.PublicKey) [function] [call site] 00105
3 [org.keycloak.jose.jws.JWSHeader].getAlgorithm() [function] [call site] 00106
3 [org.keycloak.jose.jws.JWSInput].getHeader() [function] [call site] 00107
3 [org.keycloak.jose.jws.crypto.RSAProvider].getSignature(org.keycloak.jose.jws.Algorithm) [function] [call site] 00108
3 [org.keycloak.jose.jws.JWSInput].getEncodedSignatureInput() [function] [call site] 00109
3 [org.keycloak.jose.jws.JWSInput].getSignature() [function] [call site] 00110
2 [org.keycloak.common.VerificationException]. (java.lang.String) [function] [call site] 00111
2 [org.keycloak.common.VerificationException]. (java.lang.String) [function] [call site] 00112