On 06/14/2013 09:53 PM, James Yonan wrote:
> To get the adaptive versioning behavior in OpenSSL, you have to use 
> SSLv23_server_method() or SSLv23_client_method() and then explicitly 
> disable the versions you don't want to consider, i.e. SSL_OP_NO_SSLv2, 
> SSL_OP_NO_SSLv3, SSL_OP_NO_TLSv1, SSL_OP_NO_TLSv1_1, etc.
> 
Wow, so SSLv23_{client,server}_method() is the 'wildcard' you need to
dynamically negotiate the version. Yet it sounds like something
completely broken that should be avoided at all cost. OpenSSL keeps
amazing me.

>> Does the change to key_state_ssl_init() do anything?
> 
> I had to add ssl_flags (containing tls-version-min parameter) to 
> key_state_ssl_init because that seems like the most appropriate place to 
> configure tls-version-min for PolarSSL.
> 
> For OpenSSL, tls_ctx_set_options is the right place to configure 
> tls-version-min.
> 
The ssl_flags are already available through the tls session that is
passed as the fourth parameter. To make this a bit more clear, commit
b97e2c3 changed the type of session to struct tls session* (see
https://github.com/OpenVPN/openvpn/commit/b97e2c3c90afdbb1a24bc1357ec6b94d626defcd).

-Steffan


Reply via email to