org.bouncycastle.jsse.provider.ProvAlgorithmDecomposer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bctls-lts8on Show documentation
Show all versions of bctls-lts8on Show documentation
The Bouncy Castle Java APIs for the TLS, including a JSSE provider. The APIs are designed primarily to be used in conjunction with the BC LTS provider but may also be used with other providers providing cryptographic services.
package org.bouncycastle.jsse.provider;
import java.util.Set;
import org.bouncycastle.tls.CipherSuite;
class ProvAlgorithmDecomposer
extends JcaAlgorithmDecomposer
{
static final ProvAlgorithmDecomposer INSTANCE_TLS = new ProvAlgorithmDecomposer(true);
static final ProvAlgorithmDecomposer INSTANCE_X509 = new ProvAlgorithmDecomposer(false);
private final boolean enableTLSAlgorithms;
private ProvAlgorithmDecomposer(boolean enableTLSAlgorithms)
{
this.enableTLSAlgorithms = enableTLSAlgorithms;
}
public Set decompose(String algorithm)
{
if (algorithm.startsWith("TLS_"))
{
CipherSuiteInfo cipherSuiteInfo = ProvSSLContextSpi.getCipherSuiteInfo(algorithm);
if (null != cipherSuiteInfo && !CipherSuite.isSCSV(cipherSuiteInfo.getCipherSuite()))
{
return enableTLSAlgorithms
? cipherSuiteInfo.getDecompositionTLS()
: cipherSuiteInfo.getDecompositionX509();
}
}
return super.decompose(algorithm);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy