Class ZlibCertificateCompressionAlgorithm

java.lang.Object
io.netty.handler.ssl.ZlibCertificateCompressionAlgorithm
All Implemented Interfaces:
OpenSslCertificateCompressionAlgorithm

public final class ZlibCertificateCompressionAlgorithm extends java.lang.Object implements OpenSslCertificateCompressionAlgorithm
The zlib certificate compression algorithm (ID 1) as defined by RFC 8879.

This is the default algorithm used by OpenSslCertificateCompressionConfig. Use it to keep zlib when supplying a custom configuration. The singleton is thread-safe.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final int
     
    private static final int
     
    The shared instance.
    private static final int
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Return the ID for the compression algorithm provided for by a given implementation.
    byte[]
    compress(javax.net.ssl.SSLEngine engine, byte[] uncompressedCertificate)
    Compress the given input with the specified algorithm and return the compressed bytes.
    byte[]
    decompress(javax.net.ssl.SSLEngine engine, int uncompressedLen, byte[] compressedCertificate)
    Decompress the given input with the specified algorithm and return the decompressed bytes.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • ZlibCertificateCompressionAlgorithm

      private ZlibCertificateCompressionAlgorithm()
  • Method Details

    • compress

      public byte[] compress(javax.net.ssl.SSLEngine engine, byte[] uncompressedCertificate)
      Description copied from interface: OpenSslCertificateCompressionAlgorithm
      Compress the given input with the specified algorithm and return the compressed bytes.
      Specified by:
      compress in interface OpenSslCertificateCompressionAlgorithm
      Parameters:
      engine - the SSLEngine
      uncompressedCertificate - the uncompressed certificate
      Returns:
      the compressed form of the certificate
    • decompress

      public byte[] decompress(javax.net.ssl.SSLEngine engine, int uncompressedLen, byte[] compressedCertificate) throws java.util.zip.DataFormatException
      Description copied from interface: OpenSslCertificateCompressionAlgorithm
      Decompress the given input with the specified algorithm and return the decompressed bytes.

      Implementation Security Considerations

      Implementations SHOULD bound the memory usage when decompressing the CompressedCertificate message.

      Implementations MUST limit the size of the resulting decompressed chain to the specified uncompressedLen, and they MUST abort the connection (throw an exception) if the size of the output of the decompression function exceeds that limit.

      Specified by:
      decompress in interface OpenSslCertificateCompressionAlgorithm
      Parameters:
      engine - the SSLEngine
      uncompressedLen - the expected length of the decompressed certificate that will be returned.
      compressedCertificate - the compressed form of the certificate
      Returns:
      the decompressed form of the certificate
      Throws:
      java.util.zip.DataFormatException
    • algorithmId

      public int algorithmId()
      Description copied from interface: OpenSslCertificateCompressionAlgorithm
      Return the ID for the compression algorithm provided for by a given implementation.
      Specified by:
      algorithmId in interface OpenSslCertificateCompressionAlgorithm
      Returns:
      compression algorithm ID as specified by RFC8879.