如果没有明确设置,Indy TIdSSLIOHandlerSocketOpenSSL使用的默认协议是什么?

时间:2017-12-13 14:56:36

标签: delphi indy indy10

问候SO大脑信任。

如果没有为Indy 10 TIdSSLIOHanderSocketOpenSSL明确设置协议,那么使用的默认协议是什么?

我今天遇到了一些没有明确设置协议的代码。

  HTTPReq := TIdHTTP.Create(nil);
  IdSSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  if Assigned(HTTPReq) then begin
    HTTPReq.ReadTimeout := 180000;//set read timeout to 3 minutes
    HTTPReq.Request.ContentType := 'text/xml;charset=UTF-8';
    HTTPReq.Request.Accept := 'text/xml';
    HTTPReq.Request.AcceptEncoding := 'gzip,deflate';
    HTTPReq.HTTPOptions := [];
    HTTPReq.IOHandler := IdSSLIOHandler;
  end;

请注意,所使用的协议没有明确的设置!如果没有设置,默认使用什么?我担心的是这是使用TLS 1.0或者很快被弃用的东西。

使用Delphi 10.2 Tokyo Update 1和Indy 10.6.2.5366以及最新的1.0.2n Open SLL DLL

干杯!

TJ

1 个答案:

答案 0 :(得分:5)

默认值仅为TLS 1.0。您可以通过查看draw_ellipseSSLOptions.Method属性的声明来查看此内容。它们都设置为SSLOptions.SSLVersions,由sslvTLSv1单位中的DEF_SSLVERSIONDEF_SSLVERSIONS常量指定。