Home / Class/ BoringSSLKeylessManagerFactory Class — netty Architecture

BoringSSLKeylessManagerFactory Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  691ac8cf_0ed4_aa6b_d200_9ba93f755ee7["BoringSSLKeylessManagerFactory"]
  f8d92914_3ed9_863c_bff2_0435445fa27d["BoringSSLKeylessManagerFactory.java"]
  691ac8cf_0ed4_aa6b_d200_9ba93f755ee7 -->|defined in| f8d92914_3ed9_863c_bff2_0435445fa27d
  4816b12a_c2cf_9a52_01f1_cbe35cb0386f["BoringSSLKeylessManagerFactory()"]
  691ac8cf_0ed4_aa6b_d200_9ba93f755ee7 -->|method| 4816b12a_c2cf_9a52_01f1_cbe35cb0386f

Relationship Graph

Source Code

codec-classes-quic/src/main/java/io/netty/handler/codec/quic/BoringSSLKeylessManagerFactory.java lines 48–253

public final class BoringSSLKeylessManagerFactory extends KeyManagerFactory {

    final BoringSSLAsyncPrivateKeyMethod privateKeyMethod;

    private BoringSSLKeylessManagerFactory(KeyManagerFactory keyManagerFactory,
                                           BoringSSLAsyncPrivateKeyMethod privateKeyMethod) {
        super(new KeylessManagerFactorySpi(keyManagerFactory),
                keyManagerFactory.getProvider(), keyManagerFactory.getAlgorithm());
        this.privateKeyMethod = requireNonNull(privateKeyMethod, "privateKeyMethod");
    }

    /**
     * Creates a new factory instance.
     *
     * @param privateKeyMethod              the {@link BoringSSLAsyncPrivateKeyMethod} that is used for key signing.
     * @param chain                         the {@link File} that contains the {@link X509Certificate} chain.
     * @return                              a new factory instance.
     * @throws CertificateException         on error.
     * @throws IOException                  on error.
     * @throws KeyStoreException            on error.
     * @throws NoSuchAlgorithmException     on error.
     * @throws UnrecoverableKeyException    on error.
     */
    public static BoringSSLKeylessManagerFactory newKeyless(BoringSSLAsyncPrivateKeyMethod privateKeyMethod, File chain)
            throws CertificateException, IOException,
            KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {
        try (InputStream chainInputStream = Files.newInputStream(chain.toPath())) {
            return newKeyless(privateKeyMethod, chainInputStream);
        }
    }

    /**
     * Creates a new factory instance.
     *
     * @param privateKeyMethod              the {@link BoringSSLAsyncPrivateKeyMethod} that is used for key signing.
     * @param chain                         the {@link InputStream} that contains the {@link X509Certificate} chain.
     * @return                              a new factory instance.
     * @throws CertificateException         on error.
     * @throws IOException                  on error.
     * @throws KeyStoreException            on error.
     * @throws NoSuchAlgorithmException     on error.
     * @throws UnrecoverableKeyException    on error.
     */
    public static BoringSSLKeylessManagerFactory newKeyless(BoringSSLAsyncPrivateKeyMethod privateKeyMethod,
                                                            InputStream chain)
            throws CertificateException, IOException,
            KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {
        return newKeyless(privateKeyMethod, QuicSslContext.toX509Certificates0(chain));
    }

    /**
     * Creates a new factory instance.
     *
     * @param privateKeyMethod              the {@link BoringSSLAsyncPrivateKeyMethod} that is used for key signing.
     * @param certificateChain              the {@link X509Certificate} chain.
     * @return                              a new factory instance.
     * @throws CertificateException         on error.
     * @throws IOException                  on error.
     * @throws KeyStoreException            on error.
     * @throws NoSuchAlgorithmException     on error.
     * @throws UnrecoverableKeyException    on error.
     */
    public static BoringSSLKeylessManagerFactory newKeyless(BoringSSLAsyncPrivateKeyMethod privateKeyMethod,
                                                            X509Certificate... certificateChain)
            throws CertificateException, IOException,
            KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {
        checkNotNull(certificateChain, "certificateChain");
        KeyStore store = new KeylessKeyStore(certificateChain.clone());
        store.load(null, null);
        BoringSSLKeylessManagerFactory factory = new BoringSSLKeylessManagerFactory(
                KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()), privateKeyMethod);
        factory.init(store, null);
        return factory;
    }

    private static final class KeylessManagerFactorySpi extends KeyManagerFactorySpi {

        private final KeyManagerFactory keyManagerFactory;

        KeylessManagerFactorySpi(KeyManagerFactory keyManagerFactory) {
            this.keyManagerFactory = requireNonNull(keyManagerFactory, "keyManagerFactory");

Frequently Asked Questions

What is the BoringSSLKeylessManagerFactory class?
BoringSSLKeylessManagerFactory is a class in the netty codebase, defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/BoringSSLKeylessManagerFactory.java.
Where is BoringSSLKeylessManagerFactory defined?
BoringSSLKeylessManagerFactory is defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/BoringSSLKeylessManagerFactory.java at line 48.

Analyze Your Own Codebase

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

Try Supermodel Free