Home / Class/ BouncyCastleUtilTest Class — netty Architecture

BouncyCastleUtilTest Class — netty Architecture

Architecture documentation for the BouncyCastleUtilTest class in BouncyCastleUtilTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  69779651_3cfe_cac5_f002_965f5a9fabc3["BouncyCastleUtilTest"]
  02d134e1_7861_fced_d49d_66821561ff5f["BouncyCastleUtilTest.java"]
  69779651_3cfe_cac5_f002_965f5a9fabc3 -->|defined in| 02d134e1_7861_fced_d49d_66821561ff5f
  9d83de7c_a636_3ee9_0512_6f47208f3019["testBouncyCastleProviderLoaded()"]
  69779651_3cfe_cac5_f002_965f5a9fabc3 -->|method| 9d83de7c_a636_3ee9_0512_6f47208f3019
  88c1405b_1646_a4ad_de7f_638f4e2ff84a["testBouncyCastleFipsProviderLoaded()"]
  69779651_3cfe_cac5_f002_965f5a9fabc3 -->|method| 88c1405b_1646_a4ad_de7f_638f4e2ff84a

Relationship Graph

Source Code

handler/src/test/java/io/netty/handler/ssl/util/BouncyCastleUtilTest.java lines 30–76

@Isolated("Provider value stored in the BouncyCastlePemReader#bcProvider field is also used by other tests")
public class BouncyCastleUtilTest {

    @Test
    public void testBouncyCastleProviderLoaded() {
        // tests org.bouncycastle.jce.provider.BouncyCastleProvider is detected as available
        // because provider with matching name is present in 'java.security.Security'

        assertTrue(BouncyCastleUtil.isBcProvAvailable());
        assertTrue(BouncyCastleUtil.isBcPkixAvailable());
        assertTrue(BouncyCastleUtil.isBcTlsAvailable());
        Provider bcProvider = BouncyCastleUtil.getBcProviderJce();
        assertNotNull(bcProvider);
        assertNotNull(BouncyCastleUtil.getBcProviderJsse());
        BouncyCastleUtil.reset();

        Provider bouncyCastleProvider = new BouncyCastleProvider();
        Security.addProvider(bouncyCastleProvider);
        assertTrue(BouncyCastleUtil.isBcProvAvailable());
        bcProvider = BouncyCastleUtil.getBcProviderJce();
        assertSame(bouncyCastleProvider, bcProvider);
        Security.removeProvider(bouncyCastleProvider.getName());
        BouncyCastleUtil.reset();
    }

    @Test
    public void testBouncyCastleFipsProviderLoaded() {
        // tests org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider is detected as available
        // because provider with matching name is present in 'java.security.Security'

        assertTrue(BouncyCastleUtil.isBcProvAvailable());
        Provider bcProvider = BouncyCastleUtil.getBcProviderJce();
        assertInstanceOf(BouncyCastleProvider.class, bcProvider);
        BouncyCastleUtil.reset();

        // we don't expect to have both BC and BCFIPS available, but BouncyCastleProvider is on the classpath
        // hence we need to add a fake BouncyCastleFipsProvider provider
        Provider fakeBouncyCastleFipsProvider = new Provider("BCFIPS", 1.000205,
                "BouncyCastle Security Provider (FIPS edition) v1.0.2.5") { };
        Security.addProvider(fakeBouncyCastleFipsProvider);
        assertTrue(BouncyCastleUtil.isBcProvAvailable());
        bcProvider = BouncyCastleUtil.getBcProviderJce();
        assertSame(fakeBouncyCastleFipsProvider, bcProvider);
        Security.removeProvider(fakeBouncyCastleFipsProvider.getName());
        BouncyCastleUtil.reset();
    }
}

Frequently Asked Questions

What is the BouncyCastleUtilTest class?
BouncyCastleUtilTest is a class in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/util/BouncyCastleUtilTest.java.
Where is BouncyCastleUtilTest defined?
BouncyCastleUtilTest is defined in handler/src/test/java/io/netty/handler/ssl/util/BouncyCastleUtilTest.java at line 30.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free