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
FieldsModifier and TypeFieldDescriptionprivate static final intprivate static final intstatic final ZlibCertificateCompressionAlgorithmThe shared instance.private static final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintReturn 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
-
INSTANCE
The shared instance. -
ALGORITHM_ID
private static final int ALGORITHM_ID- See Also:
-
BUFFER_SIZE
private static final int BUFFER_SIZE- See Also:
-
MAX_UNCOMPRESSED_CERTIFICATE_LENGTH
private static final int MAX_UNCOMPRESSED_CERTIFICATE_LENGTH- See Also:
-
-
Constructor Details
-
ZlibCertificateCompressionAlgorithm
private ZlibCertificateCompressionAlgorithm()
-
-
Method Details
-
compress
public byte[] compress(javax.net.ssl.SSLEngine engine, byte[] uncompressedCertificate) Description copied from interface:OpenSslCertificateCompressionAlgorithmCompress the given input with the specified algorithm and return the compressed bytes.- Specified by:
compressin interfaceOpenSslCertificateCompressionAlgorithm- Parameters:
engine- theSSLEngineuncompressedCertificate- 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:OpenSslCertificateCompressionAlgorithmDecompress 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:
decompressin interfaceOpenSslCertificateCompressionAlgorithm- Parameters:
engine- theSSLEngineuncompressedLen- 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:OpenSslCertificateCompressionAlgorithmReturn the ID for the compression algorithm provided for by a given implementation.- Specified by:
algorithmIdin interfaceOpenSslCertificateCompressionAlgorithm- Returns:
- compression algorithm ID as specified by RFC8879.
-