AI-generated Key Takeaways
- 
          ExtendedSSLSessionextends theSSLSessioninterface to support additional session attributes like signature algorithms and server names.
- 
          It provides methods to retrieve the supported signature algorithms of both the local and peer sides for TLS 1.2 and later. 
- 
          It allows access to the requested Server Name Indication (SNI) extension data, useful for server certificate selection and client endpoint identification. 
- 
          Developers can use this class to gain insights into the SSL/TLS session beyond the standard SSLSessioncapabilities.
Extends the SSLSession interface to support additional
 session attributes.
Public Constructor Summary
Public Method Summary
| abstract String[] | 
                getLocalSupportedSignatureAlgorithms()
                
                 Obtains an array of supported signature algorithms that the local side
 is willing to use. | 
| abstract String[] | 
                getPeerSupportedSignatureAlgorithms()
                
                 Obtains an array of supported signature algorithms that the peer is
 able to use. | 
| List<SNIServerName> | 
                getRequestedServerNames()
                
                 Obtains a  Listcontaining allSNIServerNames
 of the requested Server Name Indication (SNI) extension. | 
Inherited Method Summary
Public Constructors
public ExtendedSSLSession ()
Public Methods
public abstract String[] getLocalSupportedSignatureAlgorithms ()
Obtains an array of supported signature algorithms that the local side is willing to use.
Note: this method is used to indicate to the peer which signature algorithms may be used for digital signatures in TLS 1.2. It is not meaningful for TLS versions prior to 1.2.
The signature algorithm name must be a standard Java Security name (such as "SHA1withRSA", "SHA256withECDSA", and so on). See Appendix A in the Java Cryptography Architecture API Specification & Reference for information about standard algorithm names.
 Note: the local supported signature algorithms should conform to
 the algorithm constraints specified by
 getAlgorithmConstraints()
 method in SSLParameters.
Returns
- An array of supported signature algorithms, in descending order of preference. The return value is an empty array if no signature algorithm is supported.
public abstract String[] getPeerSupportedSignatureAlgorithms ()
Obtains an array of supported signature algorithms that the peer is able to use.
Note: this method is used to indicate to the local side which signature algorithms may be used for digital signatures in TLS 1.2. It is not meaningful for TLS versions prior to 1.2.
The signature algorithm name must be a standard Java Security name (such as "SHA1withRSA", "SHA256withECDSA", and so on). See Appendix A in the Java Cryptography Architecture API Specification & Reference for information about standard algorithm names.
Returns
- An array of supported signature algorithms, in descending order of preference. The return value is an empty array if the peer has not sent the supported signature algorithms.
public List<SNIServerName> getRequestedServerNames ()
Obtains a List containing all SNIServerNames
 of the requested Server Name Indication (SNI) extension.
 
 In server mode, unless the return List is empty,
 the server should use the requested server names to guide its
 selection of an appropriate authentication certificate, and/or
 other aspects of security policy.
 
 In client mode, unless the return List is empty,
 the client should use the requested server names to guide its
 endpoint identification of the peer's identity, and/or
 other aspects of security policy.
Returns
- a non-null immutable list of SNIServerNames of the requested server name indications. The returned list may be empty if no server name indications were requested.
Throws
| UnsupportedOperationException | if the underlying provider does not implement the operation | 
|---|
