Class BabelSslContextHelper

java.lang.Object
pt.unl.fct.di.novasys.babel2.ssl.BabelSslContextHelper

public final class BabelSslContextHelper extends Object
Factory helper for constructing QuicSslContext (for QUIC) and Netty SslContext (for TLS over TCP) using the Babel 2 self-signed peer identity certificate flow.
  • Field Details

    • DEFAULT_APPLICATION_PROTOCOL

      public static final String DEFAULT_APPLICATION_PROTOCOL
      Default ALPN application protocol identifier for Babel 2.
      See Also:
  • Method Details

    • buildQuicServerContext

      public static io.netty.handler.codec.quic.QuicSslContext buildQuicServerContext(CertGenerator.KeyMaterial keyMaterial, TrustManagerFactory trustManagerFactory, String applicationProtocol)
      Builds a server-side QuicSslContext for QUIC channels with mutual TLS authentication.
      Parameters:
      keyMaterial - the local ephemeral key material and certificate
      trustManagerFactory - trust manager factory for peer verification
      applicationProtocol - ALPN protocol identifier
      Returns:
      the built server QUIC SSL context
    • buildQuicServerContext

      public static io.netty.handler.codec.quic.QuicSslContext buildQuicServerContext(CertGenerator.KeyMaterial keyMaterial, TrustManager trustManager, String applicationProtocol)
      Builds a server-side QuicSslContext using a TrustManager.
      Parameters:
      keyMaterial - the local ephemeral key material
      trustManager - the trust manager for peer verification
      applicationProtocol - ALPN protocol identifier
      Returns:
      the built server QUIC SSL context
    • buildQuicServerContext

      public static io.netty.handler.codec.quic.QuicSslContext buildQuicServerContext(CertGenerator.KeyMaterial keyMaterial)
      Builds a server-side QuicSslContext with default PeerIdentityTrustManager and default "babel2" ALPN protocol.
      Parameters:
      keyMaterial - the local ephemeral key material
      Returns:
      the built server QUIC SSL context
    • buildQuicClientContext

      public static io.netty.handler.codec.quic.QuicSslContext buildQuicClientContext(CertGenerator.KeyMaterial keyMaterial, TrustManagerFactory trustManagerFactory, String applicationProtocol)
      Builds a client-side QuicSslContext for QUIC channels with mutual TLS authentication.
      Parameters:
      keyMaterial - the local ephemeral key material and certificate
      trustManagerFactory - trust manager factory for peer verification
      applicationProtocol - ALPN protocol identifier
      Returns:
      the built client QUIC SSL context
    • buildQuicClientContext

      public static io.netty.handler.codec.quic.QuicSslContext buildQuicClientContext(CertGenerator.KeyMaterial keyMaterial, TrustManager trustManager, String applicationProtocol)
      Builds a client-side QuicSslContext using a TrustManager.
      Parameters:
      keyMaterial - the local ephemeral key material
      trustManager - the trust manager for peer verification
      applicationProtocol - ALPN protocol identifier
      Returns:
      the built client QUIC SSL context
    • buildQuicClientContext

      public static io.netty.handler.codec.quic.QuicSslContext buildQuicClientContext(CertGenerator.KeyMaterial keyMaterial)
      Builds a client-side QuicSslContext with default PeerIdentityTrustManager and default "babel2" ALPN protocol.
      Parameters:
      keyMaterial - the local ephemeral key material
      Returns:
      the built client QUIC SSL context
    • buildTcpServerContext

      public static io.netty.handler.ssl.SslContext buildTcpServerContext(CertGenerator.KeyMaterial keyMaterial, TrustManagerFactory trustManagerFactory, String... applicationProtocols) throws SSLException
      Builds a server-side Netty SslContext for TCP/TLS connections with mutual authentication.
      Parameters:
      keyMaterial - the local ephemeral key material and certificate
      trustManagerFactory - trust manager factory for peer verification
      applicationProtocols - optional ALPN protocols
      Returns:
      the built server Netty SSL context
      Throws:
      SSLException - if SSL context initialization fails
    • buildTcpServerContext

      public static io.netty.handler.ssl.SslContext buildTcpServerContext(CertGenerator.KeyMaterial keyMaterial, TrustManager trustManager, String... applicationProtocols) throws SSLException
      Builds a server-side Netty SslContext using a TrustManager.
      Parameters:
      keyMaterial - the local ephemeral key material
      trustManager - the trust manager for peer verification
      applicationProtocols - optional ALPN protocols
      Returns:
      the built server Netty SSL context
      Throws:
      SSLException - if SSL context initialization fails
    • buildTcpServerContext

      public static io.netty.handler.ssl.SslContext buildTcpServerContext(CertGenerator.KeyMaterial keyMaterial) throws SSLException
      Builds a server-side Netty SslContext with default PeerIdentityTrustManager.
      Parameters:
      keyMaterial - the local ephemeral key material
      Returns:
      the built server Netty SSL context
      Throws:
      SSLException - if SSL context initialization fails
    • buildTcpClientContext

      public static io.netty.handler.ssl.SslContext buildTcpClientContext(CertGenerator.KeyMaterial keyMaterial, TrustManagerFactory trustManagerFactory, String... applicationProtocols) throws SSLException
      Builds a client-side Netty SslContext for TCP/TLS connections with mutual authentication.
      Parameters:
      keyMaterial - the local ephemeral key material and certificate
      trustManagerFactory - trust manager factory for peer verification
      applicationProtocols - optional ALPN protocols
      Returns:
      the built client Netty SSL context
      Throws:
      SSLException - if SSL context initialization fails
    • buildTcpClientContext

      public static io.netty.handler.ssl.SslContext buildTcpClientContext(CertGenerator.KeyMaterial keyMaterial, TrustManager trustManager, String... applicationProtocols) throws SSLException
      Builds a client-side Netty SslContext using a TrustManager.
      Parameters:
      keyMaterial - the local ephemeral key material
      trustManager - the trust manager for peer verification
      applicationProtocols - optional ALPN protocols
      Returns:
      the built client Netty SSL context
      Throws:
      SSLException - if SSL context initialization fails
    • buildTcpClientContext

      public static io.netty.handler.ssl.SslContext buildTcpClientContext(CertGenerator.KeyMaterial keyMaterial) throws SSLException
      Builds a client-side Netty SslContext with default PeerIdentityTrustManager.
      Parameters:
      keyMaterial - the local ephemeral key material
      Returns:
      the built client Netty SSL context
      Throws:
      SSLException - if SSL context initialization fails