Top Description Fields Constructors Methods
io.netty.handler.ssl

pack-priv final Class EnhancingX509ExtendedTrustManager

extends X509ExtendedTrustManager
Class Inheritance
Annotations
@SuppressJava6Requirement
reason:Usage guarded by java version check
Imports
io.netty.util.internal.SuppressJava6Requirement, javax.net.ssl.SSLEngine, .X509ExtendedTrustManager, .X509TrustManager, java.net.Socket, java.security.cert.CertificateException, .X509Certificate, java.util.Collection, .List

Wraps an existing X509ExtendedTrustManager and enhances the CertificateException that is thrown because of hostname validation.

Field Summary

Modifier and TypeField and Description
private final X509ExtendedTrustManager

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public void
checkClientTrusted(X509Certificate[]
the peer certificate chain
chain
,
String
the key exchange algorithm used
authType
,
Socket
the socket used for this connection. This parameter can be null, which indicates that implementations need not check the ssl parameters
socket
)

Implements abstract javax.net.ssl.X509ExtendedTrustManager.checkClientTrusted.

Given the partial or complete certificate chain provided by the peer, build and validate the certificate path based on the authentication type and ssl parameters.
public void
checkClientTrusted(X509Certificate[]
the peer certificate chain
chain
,
String
the key exchange algorithm used
authType
,
SSLEngine
the engine used for this connection. This parameter can be null, which indicates that implementations need not check the ssl parameters
engine
)

Implements abstract javax.net.ssl.X509ExtendedTrustManager.checkClientTrusted.

Given the partial or complete certificate chain provided by the peer, build and validate the certificate path based on the authentication type and ssl parameters.
public void
checkClientTrusted(X509Certificate[]
the peer certificate chain
chain
,
String
the authentication type based on the client certificate
authType
)

Implements javax.net.ssl.X509TrustManager.checkClientTrusted.

Given the partial or complete certificate chain provided by the peer, build a certificate path to a trusted root and return if it can be validated and is trusted for client SSL authentication based on the authentication type.
public void
checkServerTrusted(X509Certificate[]
the peer certificate chain
chain
,
String
the key exchange algorithm used
authType
,
Socket
the socket used for this connection. This parameter can be null, which indicates that implementations need not check the ssl parameters
socket
)

Implements abstract javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted.

Given the partial or complete certificate chain provided by the peer, build and validate the certificate path based on the authentication type and ssl parameters.
public void
checkServerTrusted(X509Certificate[]
the peer certificate chain
chain
,
String
the key exchange algorithm used
authType
,
SSLEngine
the engine used for this connection. This parameter can be null, which indicates that implementations need not check the ssl parameters
engine
)

Implements abstract javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted.

Given the partial or complete certificate chain provided by the peer, build and validate the certificate path based on the authentication type and ssl parameters.
public void
checkServerTrusted(X509Certificate[]
the peer certificate chain
chain
,
String
the key exchange algorithm used
authType
)

Implements javax.net.ssl.X509TrustManager.checkServerTrusted.

Given the partial or complete certificate chain provided by the peer, build a certificate path to a trusted root and return if it can be validated and is trusted for server SSL authentication based on the authentication type.
public X509Certificate[]
getAcceptedIssuers()

Implements javax.net.ssl.X509TrustManager.getAcceptedIssuers.

Return an array of certificate authority certificates which are trusted for authenticating peers.
private static void

Field Detail

wrappedback to summary
private final X509ExtendedTrustManager wrapped

Constructor Detail

EnhancingX509ExtendedTrustManagerback to summary
pack-priv EnhancingX509ExtendedTrustManager(X509TrustManager wrapped)

Method Detail

checkClientTrustedback to summary
public void checkClientTrusted(X509Certificate[] chain, String authType, Socket socket) throws CertificateException

Implements abstract javax.net.ssl.X509ExtendedTrustManager.checkClientTrusted.

Doc from javax.net.ssl.X509ExtendedTrustManager.checkClientTrusted.

Given the partial or complete certificate chain provided by the peer, build and validate the certificate path based on the authentication type and ssl parameters.

The authentication type is determined by the actual certificate used. For instance, if RSAPublicKey is used, the authType should be "RSA". Checking is case-sensitive.

If the socket parameter is an instance of javax.net.ssl.SSLSocket, and the endpoint identification algorithm of the SSLParameters is non-empty, to prevent man-in-the-middle attacks, the address that the socket connected to should be checked against the peer's identity presented in the end-entity X509 certificate, as specified in the endpoint identification algorithm.

If the socket parameter is an instance of javax.net.ssl.SSLSocket, and the algorithm constraints of the SSLParameters is non-null, for every certificate in the certification path, fields such as subject public key, the signature algorithm, key usage, extended key usage, etc. need to conform to the algorithm constraints in place on this socket.

Parameters
chain:X509Certificate[]

the peer certificate chain

authType:String

the key exchange algorithm used

socket:Socket

the socket used for this connection. This parameter can be null, which indicates that implementations need not check the ssl parameters

Annotations
@Override
Exceptions
CertificateException:
if the certificate chain is not trusted by this TrustManager
checkClientTrustedback to summary
public void checkClientTrusted(X509Certificate[] chain, String authType, SSLEngine engine) throws CertificateException

Implements abstract javax.net.ssl.X509ExtendedTrustManager.checkClientTrusted.

Doc from javax.net.ssl.X509ExtendedTrustManager.checkClientTrusted.

Given the partial or complete certificate chain provided by the peer, build and validate the certificate path based on the authentication type and ssl parameters.

The authentication type is determined by the actual certificate used. For instance, if RSAPublicKey is used, the authType should be "RSA". Checking is case-sensitive.

If the engine parameter is available, and the endpoint identification algorithm of the SSLParameters is non-empty, to prevent man-in-the-middle attacks, the address that the engine connected to should be checked against the peer's identity presented in the end-entity X509 certificate, as specified in the endpoint identification algorithm.

If the engine parameter is available, and the algorithm constraints of the SSLParameters is non-null, for every certificate in the certification path, fields such as subject public key, the signature algorithm, key usage, extended key usage, etc. need to conform to the algorithm constraints in place on this engine.

Parameters
chain:X509Certificate[]

the peer certificate chain

authType:String

the key exchange algorithm used

engine:SSLEngine

the engine used for this connection. This parameter can be null, which indicates that implementations need not check the ssl parameters

Annotations
@Override
Exceptions
CertificateException:
if the certificate chain is not trusted by this TrustManager
checkClientTrustedback to summary
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException

Implements javax.net.ssl.X509TrustManager.checkClientTrusted.

Doc from javax.net.ssl.X509TrustManager.checkClientTrusted.

Given the partial or complete certificate chain provided by the peer, build a certificate path to a trusted root and return if it can be validated and is trusted for client SSL authentication based on the authentication type.

The authentication type is determined by the actual certificate used. For instance, if RSAPublicKey is used, the authType should be "RSA". Checking is case-sensitive.

Parameters
chain:X509Certificate[]

the peer certificate chain

authType:String

the authentication type based on the client certificate

Annotations
@Override
Exceptions
CertificateException:
if the certificate chain is not trusted by this TrustManager.
checkServerTrustedback to summary
public void checkServerTrusted(X509Certificate[] chain, String authType, Socket socket) throws CertificateException

Implements abstract javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted.

Doc from javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted.

Given the partial or complete certificate chain provided by the peer, build and validate the certificate path based on the authentication type and ssl parameters.

The authentication type is the key exchange algorithm portion of the cipher suites represented as a String, such as "RSA", "DHE_DSS".

Note

for some exportable cipher suites, the key exchange algorithm is determined at run time during the handshake. For instance, for TLS_RSA_EXPORT_WITH_RC4_40_MD5, the authType should be RSA_EXPORT when an ephemeral RSA key is used for the key exchange, and RSA when the key from the server certificate is used. Checking is case-sensitive.

If the socket parameter is an instance of javax.net.ssl.SSLSocket, and the endpoint identification algorithm of the SSLParameters is non-empty, to prevent man-in-the-middle attacks, the address that the socket connected to should be checked against the peer's identity presented in the end-entity X509 certificate, as specified in the endpoint identification algorithm.

If the socket parameter is an instance of javax.net.ssl.SSLSocket, and the algorithm constraints of the SSLParameters is non-null, for every certificate in the certification path, fields such as subject public key, the signature algorithm, key usage, extended key usage, etc. need to conform to the algorithm constraints in place on this socket.

Parameters
chain:X509Certificate[]

the peer certificate chain

authType:String

the key exchange algorithm used

socket:Socket

the socket used for this connection. This parameter can be null, which indicates that implementations need not check the ssl parameters

Annotations
@Override
Exceptions
CertificateException:
if the certificate chain is not trusted by this TrustManager
checkServerTrustedback to summary
public void checkServerTrusted(X509Certificate[] chain, String authType, SSLEngine engine) throws CertificateException

Implements abstract javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted.

Doc from javax.net.ssl.X509ExtendedTrustManager.checkServerTrusted.

Given the partial or complete certificate chain provided by the peer, build and validate the certificate path based on the authentication type and ssl parameters.

The authentication type is the key exchange algorithm portion of the cipher suites represented as a String, such as "RSA", "DHE_DSS".

Note

for some exportable cipher suites, the key exchange algorithm is determined at run time during the handshake. For instance, for TLS_RSA_EXPORT_WITH_RC4_40_MD5, the authType should be RSA_EXPORT when an ephemeral RSA key is used for the key exchange, and RSA when the key from the server certificate is used. Checking is case-sensitive.

If the engine parameter is available, and the endpoint identification algorithm of the SSLParameters is non-empty, to prevent man-in-the-middle attacks, the address that the engine connected to should be checked against the peer's identity presented in the end-entity X509 certificate, as specified in the endpoint identification algorithm.

If the engine parameter is available, and the algorithm constraints of the SSLParameters is non-null, for every certificate in the certification path, fields such as subject public key, the signature algorithm, key usage, extended key usage, etc. need to conform to the algorithm constraints in place on this engine.

Parameters
chain:X509Certificate[]

the peer certificate chain

authType:String

the key exchange algorithm used

engine:SSLEngine

the engine used for this connection. This parameter can be null, which indicates that implementations need not check the ssl parameters

Annotations
@Override
Exceptions
CertificateException:
if the certificate chain is not trusted by this TrustManager
checkServerTrustedback to summary
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException

Implements javax.net.ssl.X509TrustManager.checkServerTrusted.

Doc from javax.net.ssl.X509TrustManager.checkServerTrusted.

Given the partial or complete certificate chain provided by the peer, build a certificate path to a trusted root and return if it can be validated and is trusted for server SSL authentication based on the authentication type.

The authentication type is the key exchange algorithm portion of the cipher suites represented as a String, such as "RSA", "DHE_DSS".

Note

for some exportable cipher suites, the key exchange algorithm is determined at run time during the handshake. For instance, for TLS_RSA_EXPORT_WITH_RC4_40_MD5, the authType should be RSA_EXPORT when an ephemeral RSA key is used for the key exchange, and RSA when the key from the server certificate is used. Checking is case-sensitive.

Parameters
chain:X509Certificate[]

the peer certificate chain

authType:String

the key exchange algorithm used

Annotations
@Override
Exceptions
CertificateException:
if the certificate chain is not trusted by this TrustManager.
getAcceptedIssuersback to summary
public X509Certificate[] getAcceptedIssuers()

Implements javax.net.ssl.X509TrustManager.getAcceptedIssuers.

Doc from javax.net.ssl.X509TrustManager.getAcceptedIssuers.

Return an array of certificate authority certificates which are trusted for authenticating peers.

Returns:X509Certificate[]

a non-null (possibly empty) array of acceptable CA issuer certificates.

Annotations
@Override
throwEnhancedCertificateExceptionback to summary
private static void throwEnhancedCertificateException(X509Certificate[] chain, CertificateException e) throws CertificateException