(3rd Round) Proposed API Changes for JEP 114: TLS Server Name Indication (SNI) Extension

Sean Mullan sean.mullan at oracle.com
Tue Aug 14 16:54:02 UTC 2012


SSLParameters:

In your README, you write:

"Unknown server name type will be expressed as "sni-<integer>", and the
value of the name is encoded as UTF-8 string."

This needs to be documented in the APIs. I think you should also be more
specific about what <integer> means - I assume this is the type value in the SNI
extension?

- It might be useful to add a public String constant for the "host_name" type,
ex: SSLParameters.SNI_HOST_NAME.

setServerName:

"In client mode, it is recommended that, by default, providers should include
the server name indication whenever the server can be located by a supported
name type."

If we say "recommended" it means that it isn't a violation of the specification
if a provider doesn't do this, and that makes it impossible to test compliance
and harder for apps to depend on consistent behavior across different providers.
I think we should strongly consider changing "recommended" and "should" to
"required" and "must" here. Is there any reason why a provider wouldn't want to
do this?

--Sean

On 8/12/12 8:50 AM, Xuelei Fan wrote:
> Hi,
> 
> Please review the spec of JEP 114, TLS Server Name Indication (SNI)
> Extension.
> 
>     http://cr.openjdk.java.net./~xuelei/7068321/webrev_spec.04/
> 
> Please read the README to help you understanding the the specification:
> 
>    http://cr.openjdk.java.net./~xuelei/7068321/README_04.txt
> 
> The major differences comparing with previous webrev are:
> 1. client mode and server mode will use separated API set.
>    For client, the related APIs are:
>      setServerName(String type, String value)
>      clearServerName(String type)
>      disableServerName(String type)
>      enableServerName(String type)
>      isDisabledServerName(String type)
>      getServerNames()
> 
>    For server side, the related APIs are:
>      setServerNamePattern(String type, Pattern pattern)
>      clearServerNamePattern(String type)
>      getServerNamePatterns()
> 
> 2. close the door to use the generated socket in client mode.
> 
>    SSLSocketFactory.createSocket(Socket s,
>        InputStream consumed, boolean autoClose)
> 
>    The returned socket was set in server mode.
> 
> Regards,
> Xuelei
> 



More information about the security-dev mailing list