[ruby/openssl] ssl: do not clear existing SSL options in SSLContext#set_params
Apply SSL options set in DEFAULT_PARAMS without clearing existing options. It currently clears options in order to avoid setting one of the options included in OpenSSL::SSL::OP_ALL unless explicitly specified, namely OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS. Now that OpenSSL::SSL::OP_ALL has been removed from SSLContext#initialize, it is no longer necessary. https://github.com/ruby/openssl/commit/77c3db2d65
This commit is contained in:
parent
510c190739
commit
c9bbf7e3eb
@ -144,7 +144,7 @@ ssbzSibBsu/6iGtCOGEoXJf//////////wIBAg==
|
|||||||
# used.
|
# used.
|
||||||
def set_params(params={})
|
def set_params(params={})
|
||||||
params = DEFAULT_PARAMS.merge(params)
|
params = DEFAULT_PARAMS.merge(params)
|
||||||
self.options = params.delete(:options) # set before min_version/max_version
|
self.options |= params.delete(:options) # set before min_version/max_version
|
||||||
params.each{|name, value| self.__send__("#{name}=", value) }
|
params.each{|name, value| self.__send__("#{name}=", value) }
|
||||||
if self.verify_mode != OpenSSL::SSL::VERIFY_NONE
|
if self.verify_mode != OpenSSL::SSL::VERIFY_NONE
|
||||||
unless self.ca_file or self.ca_path or self.cert_store
|
unless self.ca_file or self.ca_path or self.cert_store
|
||||||
|
@ -57,6 +57,8 @@ class OpenSSL::TestSSL < OpenSSL::SSLTestCase
|
|||||||
assert_separately([{ "OPENSSL_CONF" => f.path }, "-ropenssl"], <<~"end;")
|
assert_separately([{ "OPENSSL_CONF" => f.path }, "-ropenssl"], <<~"end;")
|
||||||
ctx = OpenSSL::SSL::SSLContext.new
|
ctx = OpenSSL::SSL::SSLContext.new
|
||||||
assert_equal OpenSSL::SSL::OP_NO_TICKET, ctx.options & OpenSSL::SSL::OP_NO_TICKET
|
assert_equal OpenSSL::SSL::OP_NO_TICKET, ctx.options & OpenSSL::SSL::OP_NO_TICKET
|
||||||
|
ctx.set_params
|
||||||
|
assert_equal OpenSSL::SSL::OP_NO_TICKET, ctx.options & OpenSSL::SSL::OP_NO_TICKET
|
||||||
end;
|
end;
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user