All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.jsse.provider.ProvAlgorithmDecomposer Maven / Gradle / Ivy

Go to download

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.

There is a newer version: 2.73.7
Show newest version
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