Package com.rabbitmq.client.impl
Class TlsUtils
java.lang.Object
com.rabbitmq.client.impl.TlsUtils
Utility to extract information from X509 certificates.
- Since:
- 5.7.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Map
<String, BiFunction<byte[], X509Certificate, String>> private static final org.slf4j.Logger
private static String
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static String
authorityKeyIdentifier
(byte[] derOctetString) private static String
basicConstraints
(byte[] derOctetString) private static String
extendedKeyUsage
(byte[] derOctetString, X509Certificate certificate) static String
extensionPrettyPrint
(String oid, byte[] derOctetString, X509Certificate certificate) Human-readable representation of an X509 certificate extension.private static String
extensions
(X509Certificate certificate) private static String
hexDump
(int start, byte[] derOctetString) private static String
keyUsageBitString
(boolean[] keyUsage, byte[] derOctetString) static void
logPeerCertificateInfo
(SSLSession session) Log details on peer certificate and certification chain.private static String
octetStringHexDump
(byte[] derOctetString) static String
peerCertificateInfo
(Certificate certificate, String prefix) Get a string representation of certificate info.private static String
sans
(X509Certificate c, String separator) static String
Strips carriage return (CR) and line feed (LF) characters to mitigate CWE-117.
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
KEY_USAGE
-
EXTENDED_KEY_USAGE
-
PARSING_ERROR
-
EXTENSIONS
-
-
Constructor Details
-
TlsUtils
public TlsUtils()
-
-
Method Details
-
logPeerCertificateInfo
Log details on peer certificate and certification chain.The log level is debug. Common X509 extensions are displayed in a best-effort fashion, a hexadecimal dump is made for less commonly used extensions.
- Parameters:
session
- theSSLSession
to extract the certificates from
-
peerCertificateInfo
Get a string representation of certificate info.- Parameters:
certificate
- the certificate to analyzeprefix
- the line prefix- Returns:
- information about the certificate
-
sans
- Throws:
CertificateParsingException
-
extensionPrettyPrint
public static String extensionPrettyPrint(String oid, byte[] derOctetString, X509Certificate certificate) Human-readable representation of an X509 certificate extension.Common extensions are supported in a best-effort fashion, less commonly used extensions are displayed as an hexadecimal dump.
Extensions come encoded as a DER Octet String, which itself can contain other DER-encoded objects, making a comprehensive support in this utility impossible.
- Parameters:
oid
- extension OIDderOctetString
- the extension value as a DER octet stringcertificate
- the certificate- Returns:
- the OID and the value
- See Also:
-
stripCRLF
Strips carriage return (CR) and line feed (LF) characters to mitigate CWE-117.- Returns:
- sanitised string value
-
extensions
-
octetStringHexDump
-
hexDump
-
keyUsageBitString
-
basicConstraints
-
authorityKeyIdentifier
-
extendedKeyUsage
-