diff --git a/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceConfigInstrumentation.java b/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceConfigInstrumentation.java index 549466cf9d..d798482ac6 100644 --- a/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceConfigInstrumentation.java +++ b/dd-java-agent/instrumentation/trace-annotation/src/main/java/datadog/trace/instrumentation/trace_annotation/TraceConfigInstrumentation.java @@ -48,7 +48,7 @@ public class TraceConfigInstrumentation implements Instrumenter { private boolean validateConfigString(String configString) { for (String clazz : configString.split(";")) { - if (!clazz.matches(CONFIG_FORMAT)) { + if (!clazz.trim().matches(CONFIG_FORMAT)) { return false; } } @@ -56,11 +56,7 @@ public class TraceConfigInstrumentation implements Instrumenter { } public TraceConfigInstrumentation() { - this(Config.get().getTraceMethods()); - } - - public TraceConfigInstrumentation(final String configString) { - + String configString = Config.get().getTraceMethods(); if (configString == null || configString.trim().isEmpty()) { classMethodsToTrace = Collections.emptyMap(); diff --git a/dd-java-agent/instrumentation/trace-annotation/src/test/groovy/TraceConfigInstrumentationTest.groovy b/dd-java-agent/instrumentation/trace-annotation/src/test/groovy/TraceConfigInstrumentationTest.groovy deleted file mode 100644 index 96f0326a24..0000000000 --- a/dd-java-agent/instrumentation/trace-annotation/src/test/groovy/TraceConfigInstrumentationTest.groovy +++ /dev/null @@ -1,102 +0,0 @@ -import datadog.trace.agent.test.AgentTestRunner -import datadog.trace.agent.test.utils.ConfigUtils -import datadog.trace.instrumentation.trace_annotation.TraceConfigInstrumentation - -class TraceConfigInstrumentationTest extends AgentTestRunner { - - def "test no arg constructor simple"() { - final interestingClass = "java.lang.String[toString]" - setup: - ConfigUtils.updateConfig { - System.setProperty("dd.trace.methods", interestingClass) - } - def traceConfigInstrumentation - - when: - traceConfigInstrumentation = new TraceConfigInstrumentation() - - then: - traceConfigInstrumentation.classMethodsToTrace.size() == 1 - traceConfigInstrumentation.classMethodsToTrace.containsKey("java.lang.String") - traceConfigInstrumentation.classMethodsToTrace.get("java.lang.String").contains("toString") - } - - def "test no arg constructor multi"() { - final interestingClass = "java.lang.String[toString];java.math.BigDecimal[negate, floatValue];" - setup: - ConfigUtils.updateConfig { - System.setProperty("dd.trace.methods", interestingClass) - } - def traceConfigInstrumentation - - when: - traceConfigInstrumentation = new TraceConfigInstrumentation() - - then: - traceConfigInstrumentation.classMethodsToTrace.size() == 2 - traceConfigInstrumentation.classMethodsToTrace.containsKey("java.lang.String") - traceConfigInstrumentation.classMethodsToTrace.containsKey("java.math.BigDecimal") - traceConfigInstrumentation.classMethodsToTrace.get("java.math.BigDecimal").contains("negate") - traceConfigInstrumentation.classMethodsToTrace.get("java.math.BigDecimal").contains("floatValue") - } - - def "test large list valid"() { - final interestingClasses = "org.bouncycastle.crypto.AsymmetricCipherKeyPair[getPublic,getPrivate];org.bouncycastle.crypto.BufferedAsymmetricBlockCipher[getUnderlyingCipher,getBufferPosition,init,getInputBlockSize,getOutputBlockSize,processByte,processBytes,doFinal,reset];org.bouncycastle.crypto.BufferedBlockCipher[getUnderlyingCipher,init,getBlockSize,getUpdateOutputSize,getOutputSize,processByte,processBytes,doFinal,reset];org.bouncycastle.crypto.CipherKeyGenerator[init,generateKey];org.bouncycastle.crypto.Commitment[getSecret,getCommitment];org.bouncycastle.crypto.CryptoServicesPermission[implies,equals,hashCode,getActions];org.bouncycastle.crypto.CryptoServicesRegistrar[getSecureRandom,setSecureRandom,getProperty,getSizedProperty,getSizedProperty,setThreadProperty,setGlobalProperty,clearGlobalProperty,clearThreadProperty];org.bouncycastle.crypto.EphemeralKeyPair[getKeyPair,getEncodedPublicKey];org.bouncycastle.crypto.KeyGenerationParameters[getRandom,getStrength];org.bouncycastle.crypto.PBEParametersGenerator[init,getPassword,getSalt,getIterationCount,PKCS5PasswordToBytes,PKCS5PasswordToUTF8Bytes,PKCS12PasswordToBytes];org.bouncycastle.crypto.PasswordConverter[values,valueOf];org.bouncycastle.crypto.StreamBlockCipher[getUnderlyingCipher,returnByte,processBytes];org.bouncycastle.crypto.agreement.DHAgreement[init,calculateMessage,calculateAgreement];org.bouncycastle.crypto.agreement.DHBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.DHUnifiedAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECDHBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECDHCBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECDHCUnifiedAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECMQVBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECVKOAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.MQVBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.SM2KeyExchange[init,calculateKey,calculateKeyWithConfirmation];org.bouncycastle.crypto.agreement.jpake.JPAKEParticipant[getState,createRound1PayloadToSend,validateRound1PayloadReceived,createRound2PayloadToSend,validateRound2PayloadReceived,calculateKeyingMaterial,createRound3PayloadToSend,validateRound3PayloadReceived];org.bouncycastle.crypto.agreement.jpake.JPAKEPrimeOrderGroup[getP,getQ,getG];org.bouncycastle.crypto.agreement.jpake.JPAKERound1Payload[getParticipantId,getGx1,getGx2,getKnowledgeProofForX1,getKnowledgeProofForX2];org.bouncycastle.crypto.agreement.jpake.JPAKERound2Payload[getParticipantId,getA,getKnowledgeProofForX2s];org.bouncycastle.crypto.agreement.jpake.JPAKERound3Payload[getParticipantId,getMacTag];org.bouncycastle.crypto.agreement.jpake.JPAKEUtil[generateX1,generateX2,calculateS,calculateGx,calculateGA,calculateX2s,calculateA,calculateZeroKnowledgeProof,validateGx4,validateGa,validateZeroKnowledgeProof,calculateKeyingMaterial,validateParticipantIdsDiffer,validateParticipantIdsEqual,validateNotNull,calculateMacTag,validateMacTag];org.bouncycastle.crypto.agreement.kdf.ConcatenationKDFGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.agreement.kdf.DHKDFParameters[getAlgorithm,getKeySize,getZ,getExtraInfo];org.bouncycastle.crypto.agreement.kdf.DHKEKGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.agreement.kdf.ECDHKEKGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.agreement.kdf.GSKKDFParameters[getZ,getStartCounter,getNonce];org.bouncycastle.crypto.agreement.kdf.GSKKFDGenerator[getDigest,init,generateBytes];org.bouncycastle.crypto.agreement.srp.SRP6Client[init,init,generateClientCredentials,calculateSecret,calculateClientEvidenceMessage,verifyServerEvidenceMessage,calculateSessionKey];org.bouncycastle.crypto.agreement.srp.SRP6Server[init,init,generateServerCredentials,calculateSecret,verifyClientEvidenceMessage,calculateServerEvidenceMessage,calculateSessionKey];org.bouncycastle.crypto.agreement.srp.SRP6Util[calculateK,calculateU,calculateX,generatePrivateValue,validatePublicValue,calculateM1,calculateM2,calculateKey];org.bouncycastle.crypto.agreement.srp.SRP6VerifierGenerator[init,init,generateVerifier];org.bouncycastle.crypto.commitments.GeneralHashCommitter[commit,isRevealed];org.bouncycastle.crypto.commitments.HashCommitter[commit,isRevealed];org.bouncycastle.crypto.digests.Blake2bDigest[update,update,doFinal,reset,getAlgorithmName,getDigestSize,getByteLength,clearKey,clearSalt];org.bouncycastle.crypto.digests.Blake2sDigest[update,update,doFinal,reset,getAlgorithmName,getDigestSize,getByteLength,clearKey,clearSalt];org.bouncycastle.crypto.digests.DSTU7564Digest[getAlgorithmName,getDigestSize,getByteLength,update,update,doFinal,reset,copy,reset];org.bouncycastle.crypto.digests.GOST3411Digest[getAlgorithmName,getDigestSize,update,update,doFinal,reset,getByteLength,copy,reset];org.bouncycastle.crypto.digests.GOST3411_2012Digest[getByteLength,update,update,doFinal,reset,reset];org.bouncycastle.crypto.digests.GOST3411_2012_256Digest[getAlgorithmName,getDigestSize,doFinal,copy];org.bouncycastle.crypto.digests.GOST3411_2012_512Digest[getAlgorithmName,getDigestSize,copy];org.bouncycastle.crypto.digests.GeneralDigest[update,update,finish,reset,getByteLength];org.bouncycastle.crypto.digests.KeccakDigest[getAlgorithmName,getDigestSize,update,update,doFinal,reset,getByteLength];org.bouncycastle.crypto.digests.LongDigest[update,update,finish,reset,getByteLength];org.bouncycastle.crypto.digests.MD2Digest[getAlgorithmName,getDigestSize,doFinal,reset,update,update,getByteLength,copy,reset];org.bouncycastle.crypto.digests.MD4Digest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,finish];org.bouncycastle.crypto.digests.MD5Digest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,getEncodedState,finish];org.bouncycastle.crypto.digests.NonMemoableDigest[getAlgorithmName,getDigestSize,update,update,doFinal,reset,getByteLength];org.bouncycastle.crypto.digests.NullDigest[getAlgorithmName,getDigestSize,update,update,doFinal,reset];org.bouncycastle.crypto.digests.RIPEMD128Digest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,finish];org.bouncycastle.crypto.digests.RIPEMD160Digest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,finish];org.bouncycastle.crypto.digests.RIPEMD256Digest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,finish];org.bouncycastle.crypto.digests.RIPEMD320Digest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,finish];org.bouncycastle.crypto.digests.SHA1Digest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,getEncodedState,finish];org.bouncycastle.crypto.digests.SHA224Digest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,getEncodedState,finish];org.bouncycastle.crypto.digests.SHA256Digest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,getEncodedState,finish];org.bouncycastle.crypto.digests.SHA384Digest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,getEncodedState,finish];org.bouncycastle.crypto.digests.SHA3Digest[getAlgorithmName,doFinal];org.bouncycastle.crypto.digests.SHA512Digest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,getEncodedState,finish];org.bouncycastle.crypto.digests.SHA512tDigest[getAlgorithmName,getDigestSize,doFinal,reset,copy,reset,getEncodedState,finish];org.bouncycastle.crypto.digests.SHAKEDigest[getAlgorithmName,doFinal,doFinal,doOutput];org.bouncycastle.crypto.digests.SM3Digest[getAlgorithmName,getDigestSize,copy,reset,reset,doFinal,finish];org.bouncycastle.crypto.digests.ShortenedDigest[getAlgorithmName,getDigestSize,update,update,doFinal,reset,getByteLength];org.bouncycastle.crypto.digests.SkeinDigest[reset,copy,getAlgorithmName,getDigestSize,getByteLength,init,reset,update,update,doFinal];org.bouncycastle.crypto.digests.SkeinEngine[copy,reset,getOutputSize,getBlockSize,init,reset,update,update,doFinal];org.bouncycastle.crypto.digests.TigerDigest[getAlgorithmName,getDigestSize,update,update,unpackWord,doFinal,reset,getByteLength,copy,reset];org.bouncycastle.crypto.digests.WhirlpoolDigest[getAlgorithmName,getDigestSize,doFinal,reset,update,update,getByteLength,copy,reset];org.bouncycastle.crypto.ec.CustomNamedCurves[getByName,getByOID,getOID,getName,getNames];org.bouncycastle.crypto.ec.ECElGamalDecryptor[init,decrypt];org.bouncycastle.crypto.ec.ECElGamalEncryptor[init,encrypt];org.bouncycastle.crypto.ec.ECFixedTransform[init,transform,getTransformValue];org.bouncycastle.crypto.ec.ECNewPublicKeyTransform[init,transform];org.bouncycastle.crypto.ec.ECNewRandomnessTransform[init,transform,getTransformValue];org.bouncycastle.crypto.ec.ECPair[getX,getY,equals,equals,hashCode];org.bouncycastle.crypto.encodings.ISO9796d1Encoding[getUnderlyingCipher,init,getInputBlockSize,getOutputBlockSize,setPadBits,getPadBits,processBlock];org.bouncycastle.crypto.encodings.OAEPEncoding[getUnderlyingCipher,init,getInputBlockSize,getOutputBlockSize,processBlock,encodeBlock,decodeBlock];org.bouncycastle.crypto.encodings.PKCS1Encoding[getUnderlyingCipher,init,getInputBlockSize,getOutputBlockSize,processBlock];org.bouncycastle.crypto.engines.AESEngine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.AESFastEngine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.AESLightEngine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.ARIAEngine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.BlowfishEngine[init,getAlgorithmName,processBlock,reset,getBlockSize];org.bouncycastle.crypto.engines.CAST5Engine[init,getAlgorithmName,processBlock,reset,getBlockSize];org.bouncycastle.crypto.engines.CAST6Engine[getAlgorithmName,reset,getBlockSize];org.bouncycastle.crypto.engines.CamelliaEngine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.CamelliaLightEngine[getAlgorithmName,getBlockSize,init,processBlock,reset];org.bouncycastle.crypto.engines.ChaCha7539Engine[getAlgorithmName,salsaCore];org.bouncycastle.crypto.engines.ChaChaEngine[getAlgorithmName,chachaCore,salsaCore];org.bouncycastle.crypto.engines.CramerShoupCiphertext[getU1,setU1,getU2,setU2,getE,setE,getV,setV,toString,toByteArray];org.bouncycastle.crypto.engines.CramerShoupCoreEngine[init,init,getInputBlockSize,getOutputBlockSize,convertInput,convertOutput,encryptBlock,decryptBlock];org.bouncycastle.crypto.engines.CryptoProWrapEngine[init];org.bouncycastle.crypto.engines.DESEngine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.DESedeEngine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.DESedeWrapEngine[init,getAlgorithmName,wrap,unwrap];org.bouncycastle.crypto.engines.DSTU7624Engine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.DSTU7624WrapEngine[init,getAlgorithmName,wrap,unwrap];org.bouncycastle.crypto.engines.ElGamalEngine[init,getInputBlockSize,getOutputBlockSize,processBlock];org.bouncycastle.crypto.engines.GOST28147Engine[init,getAlgorithmName,getBlockSize,processBlock,reset,getSBox,getSBoxName];org.bouncycastle.crypto.engines.GOST28147WrapEngine[init,getAlgorithmName,wrap,unwrap];org.bouncycastle.crypto.engines.GOST3412_2015Engine[getAlgorithmName,getBlockSize,init,processBlock,reset];org.bouncycastle.crypto.engines.Grain128Engine[getAlgorithmName,init,processBytes,reset,returnByte];org.bouncycastle.crypto.engines.Grainv1Engine[getAlgorithmName,init,processBytes,reset,returnByte];org.bouncycastle.crypto.engines.HC128Engine[getAlgorithmName,init,processBytes,reset,returnByte];org.bouncycastle.crypto.engines.HC256Engine[getAlgorithmName,init,processBytes,reset,returnByte];org.bouncycastle.crypto.engines.IDEAEngine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.IESEngine[init,init,init,getCipher,getMac,processBlock];org.bouncycastle.crypto.engines.ISAACEngine[init,returnByte,processBytes,getAlgorithmName,reset];org.bouncycastle.crypto.engines.NaccacheSternEngine[init,setDebug,getInputBlockSize,getOutputBlockSize,processBlock,encrypt,addCryptedBlocks,processData];org.bouncycastle.crypto.engines.NoekeonEngine[getAlgorithmName,getBlockSize,init,processBlock,reset];org.bouncycastle.crypto.engines.NullEngine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.OldIESEngine[init,init,init,getCipher,getMac,processBlock];org.bouncycastle.crypto.engines.RC2Engine[init,reset,getAlgorithmName,getBlockSize,processBlock];org.bouncycastle.crypto.engines.RC2WrapEngine[init,getAlgorithmName,wrap,unwrap];org.bouncycastle.crypto.engines.RC4Engine[init,getAlgorithmName,returnByte,processBytes,reset];org.bouncycastle.crypto.engines.RC532Engine[getAlgorithmName,getBlockSize,init,processBlock,reset];org.bouncycastle.crypto.engines.RC564Engine[getAlgorithmName,getBlockSize,init,processBlock,reset];org.bouncycastle.crypto.engines.RC6Engine[getAlgorithmName,getBlockSize,init,processBlock,reset];org.bouncycastle.crypto.engines.RFC3211WrapEngine[init,getAlgorithmName,wrap,unwrap];org.bouncycastle.crypto.engines.RFC3394WrapEngine[init,getAlgorithmName,wrap,unwrap];org.bouncycastle.crypto.engines.RFC5649WrapEngine[init,getAlgorithmName,wrap,unwrap];org.bouncycastle.crypto.engines.RSABlindedEngine[init,getInputBlockSize,getOutputBlockSize,processBlock];org.bouncycastle.crypto.engines.RSABlindingEngine[init,getInputBlockSize,getOutputBlockSize,processBlock];org.bouncycastle.crypto.engines.RSAEngine[init,getInputBlockSize,getOutputBlockSize,processBlock];org.bouncycastle.crypto.engines.RijndaelEngine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.SEEDEngine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.SM2Engine[init,processBlock];org.bouncycastle.crypto.engines.SM4Engine[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.Salsa20Engine[init,getAlgorithmName,returnByte,processBytes,skip,seekTo,getPosition,reset,salsaCore];org.bouncycastle.crypto.engines.SerpentEngineBase[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.engines.Shacal2Engine[reset,getAlgorithmName,getBlockSize,init,setKey,processBlock];org.bouncycastle.crypto.engines.SkipjackEngine[init,getAlgorithmName,getBlockSize,processBlock,reset,encryptBlock,decryptBlock];org.bouncycastle.crypto.engines.TEAEngine[getAlgorithmName,getBlockSize,init,processBlock,reset];org.bouncycastle.crypto.engines.ThreefishEngine[init,init,getAlgorithmName,getBlockSize,reset,processBlock,processBlock,bytesToWord,wordToBytes];org.bouncycastle.crypto.engines.TnepresEngine[getAlgorithmName];org.bouncycastle.crypto.engines.TwofishEngine[init,getAlgorithmName,processBlock,reset,getBlockSize];org.bouncycastle.crypto.engines.VMPCEngine[getAlgorithmName,init,processBytes,reset,returnByte];org.bouncycastle.crypto.engines.VMPCKSA3Engine[getAlgorithmName];org.bouncycastle.crypto.engines.XSalsa20Engine[getAlgorithmName,salsaCore];org.bouncycastle.crypto.engines.XTEAEngine[getAlgorithmName,getBlockSize,init,processBlock,reset];org.bouncycastle.crypto.examples.DESExample[main];org.bouncycastle.crypto.examples.JPAKEExample[main];org.bouncycastle.crypto.generators.BCrypt[passwordToByteArray,generate];org.bouncycastle.crypto.generators.BaseKDFBytesGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.generators.CramerShoupKeyPairGenerator[init,generateKeyPair];org.bouncycastle.crypto.generators.CramerShoupParametersGenerator[init,generateParameters,generateParameters];org.bouncycastle.crypto.generators.DESKeyGenerator[init,generateKey];org.bouncycastle.crypto.generators.DESedeKeyGenerator[init,generateKey];org.bouncycastle.crypto.generators.DHBasicKeyPairGenerator[init,generateKeyPair];org.bouncycastle.crypto.generators.DHKeyPairGenerator[init,generateKeyPair];org.bouncycastle.crypto.generators.DHParametersGenerator[init,generateParameters];org.bouncycastle.crypto.generators.DSAKeyPairGenerator[init,generateKeyPair];org.bouncycastle.crypto.generators.DSAParametersGenerator[init,init,generateParameters];org.bouncycastle.crypto.generators.DSTU4145KeyPairGenerator[generateKeyPair];org.bouncycastle.crypto.generators.ECKeyPairGenerator[init,generateKeyPair];org.bouncycastle.crypto.generators.ElGamalKeyPairGenerator[init,generateKeyPair];org.bouncycastle.crypto.generators.ElGamalParametersGenerator[init,generateParameters];org.bouncycastle.crypto.generators.EphemeralKeyPairGenerator[generate];org.bouncycastle.crypto.generators.GOST3410KeyPairGenerator[init,generateKeyPair];org.bouncycastle.crypto.generators.GOST3410ParametersGenerator[init,generateParameters];org.bouncycastle.crypto.generators.HKDFBytesGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.generators.KDFCounterBytesGenerator[init,getMac,generateBytes];org.bouncycastle.crypto.generators.KDFDoublePipelineIterationBytesGenerator[init,getMac,generateBytes];org.bouncycastle.crypto.generators.KDFFeedbackBytesGenerator[init,getMac,generateBytes];org.bouncycastle.crypto.generators.MGF1BytesGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.generators.NaccacheSternKeyPairGenerator[init,generateKeyPair];org.bouncycastle.crypto.generators.OpenBSDBCrypt[generate,generate,checkPassword];org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator[init,generateDerivedParameters,generateDerivedParameters,generateDerivedMacParameters,init,getPassword,getSalt,getIterationCount,PKCS5PasswordToBytes,PKCS5PasswordToUTF8Bytes,PKCS12PasswordToBytes];org.bouncycastle.crypto.generators.PKCS12ParametersGenerator[generateDerivedParameters,generateDerivedParameters,generateDerivedMacParameters,init,getPassword,getSalt,getIterationCount,PKCS5PasswordToBytes,PKCS5PasswordToUTF8Bytes,PKCS12PasswordToBytes];org.bouncycastle.crypto.generators.PKCS5S1ParametersGenerator[generateDerivedParameters,generateDerivedParameters,generateDerivedMacParameters,init,getPassword,getSalt,getIterationCount,PKCS5PasswordToBytes,PKCS5PasswordToUTF8Bytes,PKCS12PasswordToBytes];org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator[generateDerivedParameters,generateDerivedParameters,generateDerivedMacParameters,init,getPassword,getSalt,getIterationCount,PKCS5PasswordToBytes,PKCS5PasswordToUTF8Bytes,PKCS12PasswordToBytes];org.bouncycastle.crypto.generators.Poly1305KeyGenerator[init,generateKey,clamp,checkKey];org.bouncycastle.crypto.generators.RSABlindingFactorGenerator[init,generateBlindingFactor];org.bouncycastle.crypto.generators.RSAKeyPairGenerator[init,generateKeyPair];org.bouncycastle.crypto.generators.SCrypt[generate];org.bouncycastle.crypto.io.CipherInputStream[read,read,read,skip,available,close,mark,reset,markSupported];org.bouncycastle.crypto.io.CipherOutputStream[write,write,write,flush,close];org.bouncycastle.crypto.io.DigestInputStream[read,read,getDigest];org.bouncycastle.crypto.io.DigestOutputStream[write,write,getDigest];org.bouncycastle.crypto.io.MacInputStream[read,read,getMac];org.bouncycastle.crypto.io.MacOutputStream[write,write,getMac];org.bouncycastle.crypto.io.SignerInputStream[read,read,getSigner];org.bouncycastle.crypto.io.SignerOutputStream[write,write,getSigner];org.bouncycastle.crypto.kems.ECIESKeyEncapsulation[init,encrypt,encrypt,decrypt,decrypt];org.bouncycastle.crypto.kems.RSAKeyEncapsulation[init,encrypt,encrypt,decrypt,decrypt];org.bouncycastle.crypto.macs.BlockCipherMac[getAlgorithmName,init,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.CBCBlockCipherMac[getAlgorithmName,init,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.CFBBlockCipherMac[getAlgorithmName,init,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.CMac[getAlgorithmName,init,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.DSTU7564Mac[init,getAlgorithmName,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.DSTU7624Mac[init,getAlgorithmName,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.GMac[init,getAlgorithmName,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.GOST28147Mac[init,getAlgorithmName,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.HMac[getAlgorithmName,getUnderlyingDigest,init,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.ISO9797Alg3Mac[getAlgorithmName,init,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.KGMac[init,getAlgorithmName,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.OldHMac[getAlgorithmName,getUnderlyingDigest,init,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.Poly1305[init,getAlgorithmName,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.macs.SipHash[getAlgorithmName,getMacSize,init,update,update,doFinal,doFinal,reset];org.bouncycastle.crypto.macs.SkeinMac[getAlgorithmName,init,getMacSize,reset,update,update,doFinal];org.bouncycastle.crypto.macs.VMPCMac[doFinal,getAlgorithmName,getMacSize,init,reset,update,update];org.bouncycastle.crypto.modes.CBCBlockCipher[getUnderlyingCipher,init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.modes.CCMBlockCipher[getUnderlyingCipher,init,getAlgorithmName,processAADByte,processAADBytes,processByte,processBytes,doFinal,reset,getMac,getUpdateOutputSize,getOutputSize,processPacket,processPacket];org.bouncycastle.crypto.modes.CFBBlockCipher[init,getAlgorithmName,getBlockSize,processBlock,encryptBlock,decryptBlock,getCurrentIV,reset,getUnderlyingCipher];org.bouncycastle.crypto.modes.CTSBlockCipher[getUpdateOutputSize,getOutputSize,processByte,processBytes,doFinal,getUnderlyingCipher,init,getBlockSize,reset];org.bouncycastle.crypto.modes.EAXBlockCipher[getAlgorithmName,getUnderlyingCipher,getBlockSize,init,reset,processAADByte,processAADBytes,processByte,processBytes,doFinal,getMac,getUpdateOutputSize,getOutputSize];org.bouncycastle.crypto.modes.G3413CBCBlockCipher[init,getAlgorithmName,getBlockSize,processBlock,reset];org.bouncycastle.crypto.modes.G3413CFBBlockCipher[init,getAlgorithmName,getBlockSize,processBlock,reset,getUnderlyingCipher];org.bouncycastle.crypto.modes.G3413CTRBlockCipher[init,getAlgorithmName,getBlockSize,processBlock,reset,getUnderlyingCipher];org.bouncycastle.crypto.modes.G3413OFBBlockCipher[init,getAlgorithmName,getBlockSize,processBlock,reset,getUnderlyingCipher];org.bouncycastle.crypto.modes.GCFBBlockCipher[init,getAlgorithmName,getBlockSize,processBlock,reset,getUnderlyingCipher];org.bouncycastle.crypto.modes.GCMBlockCipher[getUnderlyingCipher,getAlgorithmName,init,getMac,getOutputSize,getUpdateOutputSize,processAADByte,processAADBytes,processByte,processBytes,doFinal,reset];org.bouncycastle.crypto.modes.GOFBBlockCipher[init,getAlgorithmName,getBlockSize,processBlock,reset,getUnderlyingCipher];org.bouncycastle.crypto.modes.KCCMBlockCipher[init,getAlgorithmName,getUnderlyingCipher,processAADByte,processAADBytes,processByte,processBytes,processPacket,doFinal,getMac,getUpdateOutputSize,getOutputSize,reset];org.bouncycastle.crypto.modes.KCTRBlockCipher[init,getAlgorithmName,getBlockSize,processBlock,reset,getUnderlyingCipher];org.bouncycastle.crypto.modes.KGCMBlockCipher[init,getAlgorithmName,getUnderlyingCipher,processAADByte,processAADBytes,processByte,processBytes,doFinal,getMac,getUpdateOutputSize,getOutputSize,reset];org.bouncycastle.crypto.modes.KXTSBlockCipher[getOutputSize,getUpdateOutputSize,init,processByte,processBytes,doFinal,reset,getUnderlyingCipher,getBlockSize];org.bouncycastle.crypto.modes.NISTCTSBlockCipher[getUpdateOutputSize,getOutputSize,processByte,processBytes,doFinal,getUnderlyingCipher,init,getBlockSize,reset];org.bouncycastle.crypto.modes.OCBBlockCipher[getUnderlyingCipher,getAlgorithmName,init,getMac,getOutputSize,getUpdateOutputSize,processAADByte,processAADBytes,processByte,processBytes,doFinal,reset];org.bouncycastle.crypto.modes.OFBBlockCipher[init,getAlgorithmName,getBlockSize,processBlock,reset,getUnderlyingCipher];org.bouncycastle.crypto.modes.OldCTSBlockCipher[getUpdateOutputSize,getOutputSize,processByte,processBytes,doFinal,getUnderlyingCipher,init,getBlockSize,reset];org.bouncycastle.crypto.modes.OpenPGPCFBBlockCipher[getUnderlyingCipher,getAlgorithmName,getBlockSize,processBlock,reset,init];org.bouncycastle.crypto.modes.PGPCFBBlockCipher[getUnderlyingCipher,getAlgorithmName,getBlockSize,processBlock,reset,init];org.bouncycastle.crypto.modes.PaddedBlockCipher[getOutputSize,getUpdateOutputSize,processByte,processBytes,doFinal,getUnderlyingCipher,init,getBlockSize,reset];org.bouncycastle.crypto.modes.SICBlockCipher[init,getAlgorithmName,getBlockSize,processBlock,reset,skip,seekTo,getPosition,getUnderlyingCipher];org.bouncycastle.crypto.modes.gcm.BasicGCMExponentiator[init,exponentiateX];org.bouncycastle.crypto.modes.gcm.BasicGCMMultiplier[init,multiplyH];org.bouncycastle.crypto.modes.gcm.GCMUtil[oneAsBytes,oneAsInts,oneAsLongs,asBytes,asBytes,asBytes,asBytes,asInts,asInts,asLongs,asLongs,copy,copy,divideP,multiply,multiply,multiply,multiplyP,multiplyP,multiplyP,multiplyP,multiplyP3,multiplyP4,multiplyP7,multiplyP8,multiplyP8,multiplyP8,multiplyP8,pAsLongs,square,xor,xor,xor,xor,xor,xor,xor,xor,xor,xor];org.bouncycastle.crypto.modes.gcm.Tables1kGCMExponentiator[init,exponentiateX];org.bouncycastle.crypto.modes.gcm.Tables4kGCMMultiplier[init,multiplyH];org.bouncycastle.crypto.modes.gcm.Tables64kGCMMultiplier[init,multiplyH];org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier[init,multiplyH];org.bouncycastle.crypto.modes.kgcm.BasicKGCMMultiplier_128[init,multiplyH];org.bouncycastle.crypto.modes.kgcm.BasicKGCMMultiplier_256[init,multiplyH];org.bouncycastle.crypto.modes.kgcm.BasicKGCMMultiplier_512[init,multiplyH];org.bouncycastle.crypto.modes.kgcm.KGCMUtil_128[add,copy,equal,multiply,multiplyX,multiplyX8,one,square,x,zero];org.bouncycastle.crypto.modes.kgcm.KGCMUtil_256[add,copy,equal,multiply,multiplyX,multiplyX8,one,square,x,zero];org.bouncycastle.crypto.modes.kgcm.KGCMUtil_512[add,copy,equal,multiply,multiplyX,multiplyX8,one,square,x,zero];org.bouncycastle.crypto.modes.kgcm.Tables16kKGCMMultiplier_512[init,multiplyH];org.bouncycastle.crypto.modes.kgcm.Tables4kKGCMMultiplier_128[init,multiplyH];org.bouncycastle.crypto.modes.kgcm.Tables8kKGCMMultiplier_256[init,multiplyH];org.bouncycastle.crypto.paddings.ISO10126d2Padding[init,getPaddingName,addPadding,padCount];org.bouncycastle.crypto.paddings.ISO7816d4Padding[init,getPaddingName,addPadding,padCount];org.bouncycastle.crypto.paddings.PKCS7Padding[init,getPaddingName,addPadding,padCount];org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher[init,getOutputSize,getUpdateOutputSize,processByte,processBytes,doFinal,getUnderlyingCipher,getBlockSize,reset];org.bouncycastle.crypto.paddings.TBCPadding[init,getPaddingName,addPadding,padCount];org.bouncycastle.crypto.paddings.X923Padding[init,getPaddingName,addPadding,padCount];org.bouncycastle.crypto.paddings.ZeroBytePadding[init,getPaddingName,addPadding,padCount];org.bouncycastle.crypto.params.AEADParameters[getKey,getMacSize,getAssociatedText,getNonce];org.bouncycastle.crypto.params.AsymmetricKeyParameter[isPrivate];org.bouncycastle.crypto.params.CCMParameters[getKey,getMacSize,getAssociatedText,getNonce];org.bouncycastle.crypto.params.CramerShoupKeyGenerationParameters[getParameters,getRandom,getStrength];org.bouncycastle.crypto.params.CramerShoupKeyParameters[getParameters,equals,hashCode,isPrivate];org.bouncycastle.crypto.params.CramerShoupParameters[equals,hashCode,getG1,getG2,getP,getH];org.bouncycastle.crypto.params.CramerShoupPrivateKeyParameters[getX1,getX2,getY1,getY2,getZ,setPk,getPk,hashCode,equals,getParameters,isPrivate];org.bouncycastle.crypto.params.CramerShoupPublicKeyParameters[getC,getD,getH,hashCode,equals,getParameters,isPrivate];org.bouncycastle.crypto.params.DESParameters[isWeakKey,setOddParity,getKey];org.bouncycastle.crypto.params.DESedeParameters[isWeakKey,isWeakKey,isRealEDEKey,isReal2Key,isReal3Key,setOddParity,getKey];org.bouncycastle.crypto.params.DHKeyGenerationParameters[getParameters,getRandom,getStrength];org.bouncycastle.crypto.params.DHKeyParameters[getParameters,equals,hashCode,isPrivate];org.bouncycastle.crypto.params.DHMQVPrivateParameters[getStaticPrivateKey,getEphemeralPrivateKey,getEphemeralPublicKey];org.bouncycastle.crypto.params.DHMQVPublicParameters[getStaticPublicKey,getEphemeralPublicKey];org.bouncycastle.crypto.params.DHParameters[getP,getG,getQ,getJ,getM,getL,getValidationParameters,equals,hashCode];org.bouncycastle.crypto.params.DHPrivateKeyParameters[getX,hashCode,equals,getParameters,isPrivate];org.bouncycastle.crypto.params.DHPublicKeyParameters[getY,hashCode,equals,getParameters,isPrivate];org.bouncycastle.crypto.params.DHUPrivateParameters[getStaticPrivateKey,getEphemeralPrivateKey,getEphemeralPublicKey];org.bouncycastle.crypto.params.DHUPublicParameters[getStaticPublicKey,getEphemeralPublicKey];org.bouncycastle.crypto.params.DHValidationParameters[getCounter,getSeed,equals,hashCode];org.bouncycastle.crypto.params.DSAKeyGenerationParameters[getParameters,getRandom,getStrength];org.bouncycastle.crypto.params.DSAKeyParameters[getParameters,isPrivate];org.bouncycastle.crypto.params.DSAParameterGenerationParameters[getL,getN,getCertainty,getRandom,getUsageIndex];org.bouncycastle.crypto.params.DSAParameters[getP,getQ,getG,getValidationParameters,equals,hashCode];org.bouncycastle.crypto.params.DSAPrivateKeyParameters[getX,getParameters,isPrivate];org.bouncycastle.crypto.params.DSAPublicKeyParameters[getY,getParameters,isPrivate];org.bouncycastle.crypto.params.DSAValidationParameters[getCounter,getSeed,getUsageIndex,hashCode,equals];org.bouncycastle.crypto.params.ECDHUPrivateParameters[getStaticPrivateKey,getEphemeralPrivateKey,getEphemeralPublicKey];org.bouncycastle.crypto.params.ECDHUPublicParameters[getStaticPublicKey,getEphemeralPublicKey];org.bouncycastle.crypto.params.ECDomainParameters[getCurve,getG,getN,getH,getHInv,getSeed,equals,hashCode];org.bouncycastle.crypto.params.ECKeyGenerationParameters[getDomainParameters,getRandom,getStrength];org.bouncycastle.crypto.params.ECKeyParameters[getParameters,isPrivate];org.bouncycastle.crypto.params.ECNamedDomainParameters[getName,getCurve,getG,getN,getH,getHInv,getSeed,equals,hashCode];org.bouncycastle.crypto.params.ECPrivateKeyParameters[getD,getParameters,isPrivate];org.bouncycastle.crypto.params.ECPublicKeyParameters[getQ,getParameters,isPrivate];org.bouncycastle.crypto.params.ElGamalKeyGenerationParameters[getParameters,getRandom,getStrength];org.bouncycastle.crypto.params.ElGamalKeyParameters[getParameters,hashCode,equals,isPrivate];org.bouncycastle.crypto.params.ElGamalParameters[getP,getG,getL,equals,hashCode];org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters[getX,equals,hashCode,getParameters,isPrivate];org.bouncycastle.crypto.params.ElGamalPublicKeyParameters[getY,hashCode,equals,getParameters,isPrivate];org.bouncycastle.crypto.params.GOST3410KeyGenerationParameters[getParameters,getRandom,getStrength];org.bouncycastle.crypto.params.GOST3410KeyParameters[getParameters,isPrivate];org.bouncycastle.crypto.params.GOST3410Parameters[getP,getQ,getA,getValidationParameters,hashCode,equals];org.bouncycastle.crypto.params.GOST3410PrivateKeyParameters[getX,getParameters,isPrivate];org.bouncycastle.crypto.params.GOST3410PublicKeyParameters[getY,getParameters,isPrivate];org.bouncycastle.crypto.params.GOST3410ValidationParameters[getC,getX0,getCL,getX0L,equals,hashCode];org.bouncycastle.crypto.params.HKDFParameters[skipExtractParameters,defaultParameters,getIKM,skipExtract,getSalt,getInfo];org.bouncycastle.crypto.params.IESParameters[getDerivationV,getEncodingV,getMacKeySize];org.bouncycastle.crypto.params.IESWithCipherParameters[getCipherKeySize,getDerivationV,getEncodingV,getMacKeySize];org.bouncycastle.crypto.params.ISO18033KDFParameters[getSeed];org.bouncycastle.crypto.params.KDFCounterParameters[getKI,getFixedInputData,getFixedInputDataCounterPrefix,getFixedInputDataCounterSuffix,getR];org.bouncycastle.crypto.params.KDFDoublePipelineIterationParameters[createWithCounter,createWithoutCounter,getKI,useCounter,getR,getFixedInputData];org.bouncycastle.crypto.params.KDFFeedbackParameters[createWithCounter,createWithoutCounter,getKI,getIV,useCounter,getR,getFixedInputData];org.bouncycastle.crypto.params.KDFParameters[getSharedSecret,getIV];org.bouncycastle.crypto.params.KeyParameter[getKey];org.bouncycastle.crypto.params.MGFParameters[getSeed];org.bouncycastle.crypto.params.MQVPrivateParameters[getStaticPrivateKey,getEphemeralPrivateKey,getEphemeralPublicKey];org.bouncycastle.crypto.params.MQVPublicParameters[getStaticPublicKey,getEphemeralPublicKey];org.bouncycastle.crypto.params.NaccacheSternKeyGenerationParameters[getCertainty,getCntSmallPrimes,isDebug,getRandom,getStrength];org.bouncycastle.crypto.params.NaccacheSternKeyParameters[getG,getLowerSigmaBound,getModulus,isPrivate];org.bouncycastle.crypto.params.NaccacheSternPrivateKeyParameters[getPhi_n,getSmallPrimes,getG,getLowerSigmaBound,getModulus,isPrivate];org.bouncycastle.crypto.params.ParametersWithID[getID,getParameters];org.bouncycastle.crypto.params.ParametersWithIV[getIV,getParameters];org.bouncycastle.crypto.params.ParametersWithRandom[getRandom,getParameters];org.bouncycastle.crypto.params.ParametersWithSBox[getSBox,getParameters];org.bouncycastle.crypto.params.ParametersWithSalt[getSalt,getParameters];org.bouncycastle.crypto.params.ParametersWithUKM[getUKM,getParameters];org.bouncycastle.crypto.params.RC2Parameters[getEffectiveKeyBits,getKey];org.bouncycastle.crypto.params.RC5Parameters[getKey,getRounds];org.bouncycastle.crypto.params.RSABlindingParameters[getPublicKey,getBlindingFactor];org.bouncycastle.crypto.params.RSAKeyGenerationParameters[getPublicExponent,getCertainty,getRandom,getStrength];org.bouncycastle.crypto.params.RSAKeyParameters[getModulus,getExponent,isPrivate];org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters[getPublicExponent,getP,getQ,getDP,getDQ,getQInv,getModulus,getExponent,isPrivate];org.bouncycastle.crypto.params.SM2KeyExchangePrivateParameters[isInitiator,getStaticPrivateKey,getStaticPublicPoint,getEphemeralPrivateKey,getEphemeralPublicPoint];org.bouncycastle.crypto.params.SM2KeyExchangePublicParameters[getStaticPublicKey,getEphemeralPublicKey];org.bouncycastle.crypto.params.SRP6GroupParameters[getG,getN];org.bouncycastle.crypto.params.SkeinParameters[getParameters,getKey,getPersonalisation,getPublicKey,getKeyIdentifier,getNonce];org.bouncycastle.crypto.params.TweakableBlockCipherParameters[getKey,getTweak];org.bouncycastle.crypto.parsers.DHIESPublicKeyParser[readKey];org.bouncycastle.crypto.parsers.ECIESPublicKeyParser[readKey];org.bouncycastle.crypto.prng.BasicEntropySourceProvider[get];org.bouncycastle.crypto.prng.DigestRandomGenerator[addSeedMaterial,addSeedMaterial,nextBytes,nextBytes];org.bouncycastle.crypto.prng.EntropyUtil[generateSeed];org.bouncycastle.crypto.prng.FixedSecureRandom[nextBytes,generateSeed,nextInt,nextLong,isExhausted];org.bouncycastle.crypto.prng.ReversedWindowGenerator[addSeedMaterial,addSeedMaterial,nextBytes,nextBytes];org.bouncycastle.crypto.prng.SP800SecureRandom[setSeed,setSeed,nextBytes,generateSeed,reseed];org.bouncycastle.crypto.prng.SP800SecureRandomBuilder[setPersonalizationString,setSecurityStrength,setEntropyBitsRequired,buildHash,buildCTR,buildHMAC];org.bouncycastle.crypto.prng.ThreadedSeedGenerator[generateSeed];org.bouncycastle.crypto.prng.VMPCRandomGenerator[addSeedMaterial,addSeedMaterial,nextBytes,nextBytes];org.bouncycastle.crypto.prng.X931SecureRandom[setSeed,setSeed,nextBytes,generateSeed];org.bouncycastle.crypto.prng.X931SecureRandomBuilder[setDateTimeVector,build];org.bouncycastle.crypto.prng.drbg.CTRSP800DRBG[getBlockSize,generate,reseed];org.bouncycastle.crypto.prng.drbg.DualECPoints[getSeedLen,getMaxOutlen,getP,getQ,getSecurityStrength,getCofactor];org.bouncycastle.crypto.prng.drbg.DualECSP800DRBG[getBlockSize,generate,reseed];org.bouncycastle.crypto.prng.drbg.HMacSP800DRBG[getBlockSize,generate,reseed];org.bouncycastle.crypto.prng.drbg.HashSP800DRBG[getBlockSize,generate,reseed];org.bouncycastle.crypto.signers.DSADigestSigner[init,update,update,generateSignature,verifySignature,reset];org.bouncycastle.crypto.signers.DSASigner[init,generateSignature,verifySignature];org.bouncycastle.crypto.signers.DSTU4145Signer[init,generateSignature,verifySignature];org.bouncycastle.crypto.signers.ECDSASigner[init,generateSignature,verifySignature];org.bouncycastle.crypto.signers.ECGOST3410Signer[init,generateSignature,verifySignature];org.bouncycastle.crypto.signers.ECGOST3410_2012Signer[init,generateSignature,verifySignature];org.bouncycastle.crypto.signers.ECNRSigner[init,generateSignature,verifySignature];org.bouncycastle.crypto.signers.GOST3410Signer[init,generateSignature,verifySignature];org.bouncycastle.crypto.signers.GenericSigner[init,update,update,generateSignature,verifySignature,reset];org.bouncycastle.crypto.signers.HMacDSAKCalculator[isDeterministic,init,init,nextK];org.bouncycastle.crypto.signers.ISO9796d2PSSSigner[init,updateWithRecoveredMessage,update,update,reset,generateSignature,verifySignature,hasFullMessage,getRecoveredMessage];org.bouncycastle.crypto.signers.ISO9796d2Signer[init,updateWithRecoveredMessage,update,update,reset,generateSignature,verifySignature,hasFullMessage,getRecoveredMessage];org.bouncycastle.crypto.signers.ISOTrailers[getTrailer,noTrailerAvailable];org.bouncycastle.crypto.signers.PSSSigner[init,update,update,reset,generateSignature,verifySignature];org.bouncycastle.crypto.signers.RSADigestSigner[getAlgorithmName,init,update,update,generateSignature,verifySignature,reset];org.bouncycastle.crypto.signers.RandomDSAKCalculator[isDeterministic,init,init,nextK];org.bouncycastle.crypto.signers.SM2Signer[init,update,update,verifySignature,reset,generateSignature];org.bouncycastle.crypto.signers.X931Signer[init,update,update,reset,generateSignature,verifySignature];org.bouncycastle.crypto.tls.AbstractTlsCipherFactory[createCipher];org.bouncycastle.crypto.tls.AbstractTlsClient[init,getSessionToResume,getClientHelloRecordLayerVersion,getClientVersion,isFallback,getClientExtensions,getMinimumVersion,notifyServerVersion,getCompressionMethods,notifySessionID,notifySelectedCipherSuite,notifySelectedCompressionMethod,processServerExtensions,processServerSupplementalData,getClientSupplementalData,getCompression,getCipher,notifyNewSessionTicket];org.bouncycastle.crypto.tls.AbstractTlsKeyExchange[init,processServerCertificate,processServerCredentials,requiresServerKeyExchange,generateServerKeyExchange,skipServerKeyExchange,processServerKeyExchange,skipClientCredentials,processClientCertificate,processClientKeyExchange];org.bouncycastle.crypto.tls.AbstractTlsPeer[shouldUseGMTUnixTime,notifySecureRenegotiation,notifyAlertRaised,notifyAlertReceived,notifyHandshakeComplete];org.bouncycastle.crypto.tls.AbstractTlsServer[init,notifyClientVersion,notifyFallback,notifyOfferedCipherSuites,notifyOfferedCompressionMethods,processClientExtensions,getServerVersion,getSelectedCipherSuite,getSelectedCompressionMethod,getServerExtensions,getServerSupplementalData,getCertificateStatus,getCertificateRequest,processClientSupplementalData,notifyClientCertificate,getCompression,getCipher,getNewSessionTicket];org.bouncycastle.crypto.tls.AbstractTlsSigner[init,generateRawSignature,verifyRawSignature,createSigner,createVerifyer];org.bouncycastle.crypto.tls.AbstractTlsSignerCredentials[getSignatureAndHashAlgorithm];org.bouncycastle.crypto.tls.AlertDescription[getName,getText];org.bouncycastle.crypto.tls.AlertLevel[getName,getText];org.bouncycastle.crypto.tls.BasicTlsPSKIdentity[skipIdentityHint,notifyIdentityHint,getPSKIdentity,getPSK];org.bouncycastle.crypto.tls.ByteQueue[nextTwoPow,addData,available,copyTo,read,readFrom,removeData,removeData,removeData,shrink];org.bouncycastle.crypto.tls.ByteQueueInputStream[addBytes,peek,read,read,read,skip,available,close];org.bouncycastle.crypto.tls.ByteQueueOutputStream[getBuffer,write,write];org.bouncycastle.crypto.tls.CertChainType[isValid];org.bouncycastle.crypto.tls.Certificate[getCertificateList,getCertificateAt,getLength,isEmpty,encode,parse];org.bouncycastle.crypto.tls.CertificateRequest[getCertificateTypes,getSupportedSignatureAlgorithms,getCertificateAuthorities,encode,parse];org.bouncycastle.crypto.tls.CertificateStatus[getStatusType,getResponse,getOCSPResponse,encode,parse];org.bouncycastle.crypto.tls.CertificateStatusRequest[getStatusType,getRequest,getOCSPStatusRequest,encode,parse];org.bouncycastle.crypto.tls.CertificateURL[getType,getURLAndHashList,encode,parse];org.bouncycastle.crypto.tls.Chacha20Poly1305[getPlaintextLimit,encodePlaintext,decodeCiphertext];org.bouncycastle.crypto.tls.CipherSuite[isSCSV];org.bouncycastle.crypto.tls.DTLSClientProtocol[connect];org.bouncycastle.crypto.tls.DTLSServerProtocol[getVerifyRequests,setVerifyRequests,accept];org.bouncycastle.crypto.tls.DTLSTransport[getReceiveLimit,getSendLimit,receive,send,close];org.bouncycastle.crypto.tls.DefaultTlsAgreementCredentials[getCertificate,generateAgreement];org.bouncycastle.crypto.tls.DefaultTlsCipherFactory[createCipher];org.bouncycastle.crypto.tls.DefaultTlsClient[getCipherSuites,getKeyExchange,getMinimumVersion];org.bouncycastle.crypto.tls.DefaultTlsEncryptionCredentials[getCertificate,decryptPreMasterSecret];org.bouncycastle.crypto.tls.DefaultTlsSRPGroupVerifier[accept];org.bouncycastle.crypto.tls.DefaultTlsServer[getCredentials,getKeyExchange];org.bouncycastle.crypto.tls.DefaultTlsSignerCredentials[getCertificate,generateCertificateSignature,getSignatureAndHashAlgorithm];org.bouncycastle.crypto.tls.DigitallySigned[getAlgorithm,getSignature,encode,parse];org.bouncycastle.crypto.tls.ECBasisType[isValid];org.bouncycastle.crypto.tls.FiniteFieldDHEGroup[isValid];org.bouncycastle.crypto.tls.HashAlgorithm[getName,getText,isPrivate];org.bouncycastle.crypto.tls.HeartbeatExtension[getMode,encode,parse];org.bouncycastle.crypto.tls.HeartbeatMessage[encode,parse];org.bouncycastle.crypto.tls.HeartbeatMessageType[isValid];org.bouncycastle.crypto.tls.HeartbeatMode[isValid];org.bouncycastle.crypto.tls.MaxFragmentLength[isValid];org.bouncycastle.crypto.tls.NameType[isValid];org.bouncycastle.crypto.tls.NamedCurve[isValid,refersToASpecificNamedCurve];org.bouncycastle.crypto.tls.NewSessionTicket[getTicketLifetimeHint,getTicket,encode,parse];org.bouncycastle.crypto.tls.OCSPStatusRequest[getResponderIDList,getRequestExtensions,encode,parse];org.bouncycastle.crypto.tls.PSKTlsClient[getCipherSuites,getKeyExchange,getAuthentication,getMinimumVersion];org.bouncycastle.crypto.tls.PSKTlsServer[getCredentials,getKeyExchange];org.bouncycastle.crypto.tls.ProtocolVersion[getFullVersion,getMajorVersion,getMinorVersion,isDTLS,isSSL,isTLS,getEquivalentTLSVersion,isEqualOrEarlierVersionOf,isLaterVersionOf,equals,equals,hashCode,get,toString];org.bouncycastle.crypto.tls.SRPTlsClient[getCipherSuites,getClientExtensions,processServerExtensions,getKeyExchange,getAuthentication,getMinimumVersion];org.bouncycastle.crypto.tls.SRPTlsServer[processClientExtensions,getSelectedCipherSuite,getCredentials,getKeyExchange];org.bouncycastle.crypto.tls.SSL3Mac[getAlgorithmName,getUnderlyingDigest,init,getMacSize,update,update,doFinal,reset];org.bouncycastle.crypto.tls.SecurityParameters[getEntity,getCipherSuite,getCompressionAlgorithm,getPrfAlgorithm,getVerifyDataLength,getMasterSecret,getClientRandom,getServerRandom,getSessionHash,getPskIdentity,getPSKIdentity,getSRPIdentity];org.bouncycastle.crypto.tls.ServerDHParams[getPublicKey,encode,parse];org.bouncycastle.crypto.tls.ServerName[getNameType,getName,getHostName,encode,parse];org.bouncycastle.crypto.tls.ServerNameList[getServerNameList,encode,parse];org.bouncycastle.crypto.tls.ServerOnlyTlsAuthentication[getClientCredentials];org.bouncycastle.crypto.tls.ServerSRPParams[getB,getG,getN,getS,encode,parse];org.bouncycastle.crypto.tls.SessionParameters[clear,copy,getCipherSuite,getCompressionAlgorithm,getMasterSecret,getPeerCertificate,getPskIdentity,getPSKIdentity,getSRPIdentity,readServerExtensions];org.bouncycastle.crypto.tls.SignatureAndHashAlgorithm[getHash,getSignature,equals,hashCode,encode,parse];org.bouncycastle.crypto.tls.SimulatedTlsSRPIdentityManager[getRFC5054Default,getLoginParameters];org.bouncycastle.crypto.tls.SupplementalDataEntry[getDataType,getData];org.bouncycastle.crypto.tls.TlsAEADCipher[getPlaintextLimit,encodePlaintext,decodeCiphertext];org.bouncycastle.crypto.tls.TlsBlockCipher[getWriteMac,getReadMac,getPlaintextLimit,encodePlaintext,decodeCiphertext];org.bouncycastle.crypto.tls.TlsClientProtocol[connect,getOutputStream,getInputStream,closeInput,offerInput,getAvailableInputBytes,readInput,offerOutput,getAvailableOutputBytes,readOutput,close,isClosed];org.bouncycastle.crypto.tls.TlsDHEKeyExchange[processServerCredentials,generateServerKeyExchange,processServerKeyExchange];org.bouncycastle.crypto.tls.TlsDHKeyExchange[init,skipServerCredentials,processServerCertificate,requiresServerKeyExchange,generateServerKeyExchange,processServerKeyExchange,validateCertificateRequest,processClientCredentials,generateClientKeyExchange,processClientCertificate,processClientKeyExchange,generatePremasterSecret];org.bouncycastle.crypto.tls.TlsDHUtils[addNegotiatedDHEGroupsClientExtension,addNegotiatedDHEGroupsServerExtension,getNegotiatedDHEGroupsClientExtension,getNegotiatedDHEGroupsServerExtension,createNegotiatedDHEGroupsClientExtension,createNegotiatedDHEGroupsServerExtension,readNegotiatedDHEGroupsClientExtension,readNegotiatedDHEGroupsServerExtension,getParametersForDHEGroup,containsDHECipherSuites,isDHECipherSuite,areCompatibleParameters,calculateDHBasicAgreement,generateDHKeyPair,generateEphemeralClientKeyExchange,generateEphemeralServerKeyExchange,validateDHParameters,validateDHPublicKey,readDHParameter,writeDHParameter];org.bouncycastle.crypto.tls.TlsDSASigner[generateRawSignature,verifyRawSignature,createSigner,createVerifyer];org.bouncycastle.crypto.tls.TlsDSSSigner[isValidPublicKey];org.bouncycastle.crypto.tls.TlsECCUtils[addSupportedEllipticCurvesExtension,addSupportedPointFormatsExtension,getSupportedEllipticCurvesExtension,getSupportedPointFormatsExtension,createSupportedEllipticCurvesExtension,createSupportedPointFormatsExtension,readSupportedEllipticCurvesExtension,readSupportedPointFormatsExtension,getNameOfNamedCurve,getParametersForNamedCurve,hasAnySupportedNamedCurves,containsECCCipherSuites,isECCCipherSuite,areOnSameCurve,isSupportedNamedCurve,isCompressionPreferred,serializeECFieldElement,serializeECPoint,serializeECPublicKey,deserializeECFieldElement,deserializeECPoint,deserializeECPublicKey,calculateECDHBasicAgreement,generateECKeyPair,generateEphemeralClientKeyExchange,validateECPublicKey,readECExponent,readECFieldElement,readECParameter,readECParameters,writeECExponent,writeECFieldElement,writeECFieldElement,writeECParameter,writeExplicitECParameters,writeECPoint,writeNamedECParameters];org.bouncycastle.crypto.tls.TlsECDHEKeyExchange[processServerCredentials,generateServerKeyExchange,processServerKeyExchange,validateCertificateRequest,processClientCredentials];org.bouncycastle.crypto.tls.TlsECDHKeyExchange[init,skipServerCredentials,processServerCertificate,requiresServerKeyExchange,generateServerKeyExchange,processServerKeyExchange,validateCertificateRequest,processClientCredentials,generateClientKeyExchange,processClientCertificate,processClientKeyExchange,generatePremasterSecret];org.bouncycastle.crypto.tls.TlsECDSASigner[isValidPublicKey];org.bouncycastle.crypto.tls.TlsExtensionsUtils[ensureExtensionsInitialised,addEncryptThenMACExtension,addExtendedMasterSecretExtension,addHeartbeatExtension,addMaxFragmentLengthExtension,addPaddingExtension,addServerNameExtension,addStatusRequestExtension,addTruncatedHMacExtension,getHeartbeatExtension,getMaxFragmentLengthExtension,getPaddingExtension,getServerNameExtension,getStatusRequestExtension,hasEncryptThenMACExtension,hasExtendedMasterSecretExtension,hasTruncatedHMacExtension,createEmptyExtensionData,createEncryptThenMACExtension,createExtendedMasterSecretExtension,createHeartbeatExtension,createMaxFragmentLengthExtension,createPaddingExtension,createServerNameExtension,createStatusRequestExtension,createTruncatedHMacExtension,readEncryptThenMACExtension,readExtendedMasterSecretExtension,readHeartbeatExtension,readMaxFragmentLengthExtension,readPaddingExtension,readServerNameExtension,readStatusRequestExtension,readTruncatedHMacExtension];org.bouncycastle.crypto.tls.TlsFatalAlert[getAlertDescription,getCause];org.bouncycastle.crypto.tls.TlsFatalAlertReceived[getAlertDescription,getCause];org.bouncycastle.crypto.tls.TlsMac[getMACSecret,getSize,calculateMac,calculateMacConstantTime];org.bouncycastle.crypto.tls.TlsNullCipher[getPlaintextLimit,encodePlaintext,decodeCiphertext];org.bouncycastle.crypto.tls.TlsNullCompression[compress,decompress];org.bouncycastle.crypto.tls.TlsPSKKeyExchange[skipServerCredentials,processServerCredentials,generateServerKeyExchange,processServerCertificate,requiresServerKeyExchange,processServerKeyExchange,validateCertificateRequest,processClientCredentials,generateClientKeyExchange,processClientKeyExchange,generatePremasterSecret];org.bouncycastle.crypto.tls.TlsProtocol[getOutputStream,getInputStream,closeInput,offerInput,getAvailableInputBytes,readInput,offerOutput,getAvailableOutputBytes,readOutput,close,isClosed];org.bouncycastle.crypto.tls.TlsRSAKeyExchange[skipServerCredentials,processServerCredentials,processServerCertificate,validateCertificateRequest,processClientCredentials,generateClientKeyExchange,processClientKeyExchange,generatePremasterSecret];org.bouncycastle.crypto.tls.TlsRSASigner[generateRawSignature,verifyRawSignature,createSigner,createVerifyer,isValidPublicKey];org.bouncycastle.crypto.tls.TlsRSAUtils[generateEncryptedPreMasterSecret,safeDecryptPreMasterSecret];org.bouncycastle.crypto.tls.TlsSRPKeyExchange[init,skipServerCredentials,processServerCertificate,processServerCredentials,requiresServerKeyExchange,generateServerKeyExchange,processServerKeyExchange,validateCertificateRequest,processClientCredentials,generateClientKeyExchange,processClientKeyExchange,generatePremasterSecret];org.bouncycastle.crypto.tls.TlsSRPLoginParameters[getGroup,getSalt,getVerifier];org.bouncycastle.crypto.tls.TlsSRPUtils[addSRPExtension,getSRPExtension,createSRPExtension,readSRPExtension,readSRPParameter,writeSRPParameter,isSRPCipherSuite];org.bouncycastle.crypto.tls.TlsSRTPUtils[addUseSRTPExtension,getUseSRTPExtension,createUseSRTPExtension,readUseSRTPExtension];org.bouncycastle.crypto.tls.TlsServerProtocol[accept,getOutputStream,getInputStream,closeInput,offerInput,getAvailableInputBytes,readInput,offerOutput,getAvailableOutputBytes,readOutput,close,isClosed];org.bouncycastle.crypto.tls.TlsStreamCipher[getPlaintextLimit,encodePlaintext,decodeCiphertext];org.bouncycastle.crypto.tls.TlsUtils[checkUint8,checkUint8,checkUint8,checkUint16,checkUint16,checkUint24,checkUint24,checkUint32,checkUint48,checkUint64,isValidUint8,isValidUint8,isValidUint8,isValidUint16,isValidUint16,isValidUint24,isValidUint24,isValidUint32,isValidUint48,isValidUint64,isSSL,isTLSv11,isTLSv11,isTLSv12,isTLSv12,writeUint8,writeUint8,writeUint8,writeUint8,writeUint16,writeUint16,writeUint24,writeUint24,writeUint32,writeUint32,writeUint48,writeUint48,writeUint64,writeUint64,writeOpaque8,writeOpaque16,writeOpaque24,writeUint8Array,writeUint8Array,writeUint8ArrayWithUint8Length,writeUint8ArrayWithUint8Length,writeUint16Array,writeUint16Array,writeUint16ArrayWithUint16Length,writeUint16ArrayWithUint16Length,encodeOpaque8,encodeUint8ArrayWithUint8Length,encodeUint16ArrayWithUint16Length,readUint8,readUint8,readUint16,readUint16,readUint24,readUint24,readUint32,readUint32,readUint48,readUint48,readAllOrNothing,readFully,readFully,readOpaque8,readOpaque16,readOpaque24,readUint8Array,readUint16Array,readVersion,readVersion,readVersionRaw,readVersionRaw,readASN1Object,readDERObject,writeGMTUnixTime,writeVersion,writeVersion,getAllSignatureAlgorithms,getDefaultDSSSignatureAlgorithms,getDefaultECDSASignatureAlgorithms,getDefaultRSASignatureAlgorithms,getDefaultSupportedSignatureAlgorithms,getSignatureAndHashAlgorithm,getExtensionData,hasExpectedEmptyExtensionData,importSession,isSignatureAlgorithmsExtensionAllowed,addSignatureAlgorithmsExtension,getSignatureAlgorithmsExtension,createSignatureAlgorithmsExtension,readSignatureAlgorithmsExtension,encodeSupportedSignatureAlgorithms,parseSupportedSignatureAlgorithms,verifySupportedSignatureAlgorithm,PRF,PRF_legacy,createHash,createHash,cloneHash,createPRFHash,clonePRFHash,getHashAlgorithmForPRFAlgorithm,getOIDForHashAlgorithm,hasSigningCapability,createTlsSigner,getCipherType,getEncryptionAlgorithm,getKeyExchangeAlgorithm,getMACAlgorithm,getMinimumVersion,isAEADCipherSuite,isBlockCipherSuite,isStreamCipherSuite,isValidCipherSuiteForSignatureAlgorithms,isValidCipherSuiteForVersion,getUsableSignatureAlgorithms];org.bouncycastle.crypto.tls.UDPTransport[getReceiveLimit,getSendLimit,receive,send,close];org.bouncycastle.crypto.tls.URLAndHash[getURL,getSHA1Hash,encode,parse];org.bouncycastle.crypto.tls.UseSRTPData[getProtectionProfiles,getMki];org.bouncycastle.crypto.util.DERMacData[getMacData];org.bouncycastle.crypto.util.DEROtherInfo[getEncoded];org.bouncycastle.crypto.util.DigestFactory[createMD5,createSHA1,createSHA224,createSHA256,createSHA384,createSHA512,createSHA512_224,createSHA512_256,createSHA3_224,createSHA3_256,createSHA3_384,createSHA3_512];org.bouncycastle.crypto.util.PBKDF2Config[getIterationCount,getPRF,getSaltLength,getAlgorithm];org.bouncycastle.crypto.util.PBKDFConfig[getAlgorithm];org.bouncycastle.crypto.util.Pack[bigEndianToInt,bigEndianToInt,intToBigEndian,intToBigEndian,intToBigEndian,intToBigEndian,bigEndianToLong,bigEndianToLong,longToBigEndian,longToBigEndian,longToBigEndian,longToBigEndian,littleEndianToInt,littleEndianToInt,littleEndianToInt,intToLittleEndian,intToLittleEndian,intToLittleEndian,intToLittleEndian,littleEndianToLong,littleEndianToLong,longToLittleEndian,longToLittleEndian,longToLittleEndian,longToLittleEndian];org.bouncycastle.crypto.util.PrivateKeyFactory[createKey,createKey,createKey];org.bouncycastle.crypto.util.PrivateKeyInfoFactory[createPrivateKeyInfo];org.bouncycastle.crypto.util.PublicKeyFactory[createKey,createKey,createKey,createKey];org.bouncycastle.crypto.util.ScryptConfig[getCostParameter,getBlockSize,getParallelizationParameter,getSaltLength,getAlgorithm];org.bouncycastle.crypto.util.SubjectPublicKeyInfoFactory[createSubjectPublicKeyInfo]" - setup: - def traceConfigInstrumentation - - when: - traceConfigInstrumentation = new TraceConfigInstrumentation(interestingClasses) - - then: - traceConfigInstrumentation.classMethodsToTrace.size() == 471 - } - - def "test list invalid method list"() { - final interestingClasses = "org.bouncycastle.crypto.AsymmetricCipherKeyPair[getPublic,getPrivate];org.bouncycastle.crypto.BufferedAsymmetricBlockCipher[getUnderlyingCipher,getBufferPosition,init,getInputBlockSize,getOutputBlockSize,processByte,processBytes,doFinal,reset];org.bouncycastle.crypto.BufferedBlockCipher[getUnderlyingCipher,init,getBlockSize,getUpdateOutputSize,getOutputSize,processByte,processBytes,doFinal,reset];org.bouncycastle.crypto.CipherKeyGenerator[init,generateKey];org.bouncycastle.crypto.Commitment[getSecret,getCommitment];org.bouncycastle.crypto.CryptoServicesPermission[implies,equals,hashCode,getActions];org.bouncycastle.crypto.CryptoServicesRegistrar[getSecureRandom,setSecureRandom,getProperty,getSizedProperty,getSizedProperty,setThreadProperty,setGlobalProperty,clearGlobalProperty,clearThreadProperty];org.bouncycastle.crypto.EphemeralKeyPair[getKeyPair,getEncodedPublicKey];org.bouncycastle.crypto.KeyGenerationParameters[getRandom,getStrength];org.bouncycastle.crypto.PBEParametersGenerator[init,getPassword,getSalt,getIterationCount,PKCS5PasswordToBytes,PKCS5PasswordToUTF8Bytes,PKCS12PasswordToBytes];org.bouncycastle.crypto.PasswordConverter[values,valueOf];org.bouncycastle.crypto.StreamBlockCipher[getUnderlyingCipher,returnByte,processBytes];org.bouncycastle.crypto.agreement.DHAgreement[init,calculateMessage,calculateAgreement];org.bouncycastle.crypto.agreement.DHBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.DHUnifiedAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECDHBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECDHCBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECDHCUnifiedAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECMQVBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECVKOAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.MQVBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.SM2KeyExchange[init,calculateKey,calculateKeyWithConfirmation];org.bouncycastle.crypto.agreement.jpake.JPAKEParticipant[getState,createRound1PayloadToSend,validateRound1PayloadReceived,createRound2PayloadToSend,validateRound2PayloadReceived,calculateKeyingMaterial,createRound3PayloadToSend,validateRound3PayloadReceived];org.bouncycastle.crypto.agreement.jpake.JPAKEPrimeOrderGroup[getP,getQ,getG];org.bouncycastle.crypto.agreement.jpake.JPAKERound1Payload[getParticipantId,getGx1,getGx2,getKnowledgeProofForX1,getKnowledgeProofForX2];org.bouncycastle.crypto.agreement.jpake.JPAKERound2Payload[getParticipantId,getA,getKnowledgeProofForX2s];org.bouncycastle.crypto.agreement.jpake.JPAKERound3Payload[getParticipantId,getMacTag];org.bouncycastle.crypto.agreement.jpake.JPAKEUtil[generateX1,generateX2,calculateS,calculateGx,calculateGA,calculateX2s,calculateA,calculateZeroKnowledgeProof,validateGx4,validateGa,validateZeroKnowledgeProof,calculateKeyingMaterial,validateParticipantIdsDiffer,validateParticipantIdsEqual,validateNotNull,calculateMacTag,validateMacTag];org.bouncycastle.crypto.agreement.kdf.ConcatenationKDFGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.agreement.kdf.DHKDFParameters[getAlgorithm,getKeySize,getZ,getExtraInfo];org.bouncycastle.crypto.agreement.kdf.DHKEKGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.agreement.kdf.ECDHKEKGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.agreement.kdf.GSKKDFParameters[getZ,getStartCounter,getNonce];org.bouncycastle.crypto.agreement.kdf.GSKKFDGenerator[getDigest,init,generateBytes];org.bouncycastle.crypto.agreement.srp.SRP6Client[init,init,generateClientCredentials,calculateSecret,calculateClientEvidenceMessage,verifyServerEvidenceMessage,calculateSessionKey];org.bouncycastle.crypto.agreement.srp.SRP6Server[];org.bouncycastle.crypto.agreement.srp.SRP6Util[calculateK,calculateU,calculateX,generatePrivateValue,validatePublicValue,calculateM1,calculateM2,calculateKey];" - setup: - def traceConfigInstrumentation - - when: - traceConfigInstrumentation = new TraceConfigInstrumentation(interestingClasses) - - then: - traceConfigInstrumentation.classMethodsToTrace.size() == 0 - } - - def "test list invalid separation"() { - final interestingClasses = "org.bouncycastle.crypto.AsymmetricCipherKeyPair[getPublic,getPrivate];org.bouncycastle.crypto.BufferedAsymmetricBlockCipher[getUnderlyingCipher,getBufferPosition,init,getInputBlockSize,getOutputBlockSize,processByte,processBytes,doFinal,reset];org.bouncycastle.crypto.BufferedBlockCipher[getUnderlyingCipher,init,getBlockSize,getUpdateOutputSize,getOutputSize,processByte,processBytes,doFinal,reset];org.bouncycastle.crypto.CipherKeyGenerator[init,generateKey];org.bouncycastle.crypto.Commitment[getSecret,getCommitment];org.bouncycastle.crypto.CryptoServicesPermission[implies,equals,hashCode,getActions];org.bouncycastle.crypto.CryptoServicesRegistrar[getSecureRandom,setSecureRandom,getProperty,getSizedProperty,getSizedProperty,setThreadProperty,setGlobalProperty,clearGlobalProperty,clearThreadProperty];org.bouncycastle.crypto.EphemeralKeyPair[getKeyPair,getEncodedPublicKey];org.bouncycastle.crypto.KeyGenerationParameters[getRandom,getStrength];org.bouncycastle.crypto.PBEParametersGenerator[init,getPassword,getSalt,getIterationCount,PKCS5PasswordToBytes,PKCS5PasswordToUTF8Bytes,PKCS12PasswordToBytes];org.bouncycastle.crypto.PasswordConverter[values,valueOf];org.bouncycastle.crypto.StreamBlockCipher[getUnderlyingCipher,returnByte,processBytes];org.bouncycastle.crypto.agreement.DHAgreement[init,calculateMessage,calculateAgreement];org.bouncycastle.crypto.agreement.DHBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.DHUnifiedAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECDHBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECDHCBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECDHCUnifiedAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECMQVBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.ECVKOAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.MQVBasicAgreement[init,getFieldSize,calculateAgreement];org.bouncycastle.crypto.agreement.SM2KeyExchange[init,calculateKey,calculateKeyWithConfirmation];org.bouncycastle.crypto.agreement.jpake.JPAKEParticipant[getState,createRound1PayloadToSend,validateRound1PayloadReceived,createRound2PayloadToSend,validateRound2PayloadReceived,calculateKeyingMaterial,createRound3PayloadToSend,validateRound3PayloadReceived];org.bouncycastle.crypto.agreement.jpake.JPAKEPrimeOrderGroup[getP,getQ,getG];org.bouncycastle.crypto.agreement.jpake.JPAKERound1Payload[getParticipantId,getGx1,getGx2,getKnowledgeProofForX1,getKnowledgeProofForX2];org.bouncycastle.crypto.agreement.jpake.JPAKERound2Payload[getParticipantId,getA,getKnowledgeProofForX2s];org.bouncycastle.crypto.agreement.jpake.JPAKERound3Payload[getParticipantId,getMacTag];org.bouncycastle.crypto.agreement.jpake.JPAKEUtil[generateX1,generateX2,calculateS,calculateGx,calculateGA,calculateX2s,calculateA,calculateZeroKnowledgeProof,validateGx4,validateGa,validateZeroKnowledgeProof,calculateKeyingMaterial,validateParticipantIdsDiffer,validateParticipantIdsEqual,validateNotNull,calculateMacTag,validateMacTag];org.bouncycastle.crypto.agreement.kdf.ConcatenationKDFGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.agreement.kdf.DHKDFParameters[getAlgorithm,getKeySize,getZ,getExtraInfo];org.bouncycastle.crypto.agreement.kdf.DHKEKGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.agreement.kdf.ECDHKEKGenerator[init,getDigest,generateBytes];org.bouncycastle.crypto.agreement.kdf.GSKKDFParameters[getZ,getStartCounter,getNonce];org.bouncycastle.crypto.agreement.kdf.GSKKFDGenerator[getDigest,init,generateBytes];org.bouncycastle.crypto.agreement.srp.SRP6Client[init,init,generateClientCredentials,calculateSecret,calculateClientEvidenceMessage,verifyServerEvidenceMessage,calculateSessionKey]org.bouncycastle.crypto.agreement.srp.SRP6Util[calculateK,calculateU,calculateX,generatePrivateValue,validatePublicValue,calculateM1,calculateM2,calculateKey];" - setup: - def traceConfigInstrumentation - - when: - traceConfigInstrumentation = new TraceConfigInstrumentation(interestingClasses) - - then: - traceConfigInstrumentation.classMethodsToTrace.size() == 0 - } - - def "test list invalid class"() { - final interestingClasses = "orgbouncycastlecrypto@3AsymmetricCipherKeyPair[getPublic,getPrivate];org.bouncycastle.crypto.BufferedAsymmetricBlockCipher[getUnderlyingCipher,getBufferPosition,init,getInputBlockSize,getOutputBlockSize,processByte,processBytes,doFinal,reset];" - setup: - def traceConfigInstrumentation - - when: - traceConfigInstrumentation = new TraceConfigInstrumentation(interestingClasses) - - then: - traceConfigInstrumentation.classMethodsToTrace.size() == 0 - } - - def "test list without trailing semi-colon"() { - final interestingClasses = "org.bouncycastle.crypto.AsymmetricCipherKeyPair[getPublic,getPrivate];org.bouncycastle.crypto.BufferedAsymmetricBlockCipher[getUnderlyingCipher,getBufferPosition,init,getInputBlockSize,getOutputBlockSize,processByte,processBytes,doFinal,reset]" - setup: - def traceConfigInstrumentation - - when: - traceConfigInstrumentation = new TraceConfigInstrumentation(interestingClasses) - - then: - traceConfigInstrumentation.classMethodsToTrace.size() == 2 - } -}