mormot2 tls

mormot2 tls

mormot.net.sock.pas

TNetTlsContext = record;

典型用法

 with THttpClientSocket.Create do
 try
   TLS.WithPeerInfo := true;
   TLS.IgnoreCertificateErrors := true;
   TLS.CipherList := 'ECDHE-RSA-AES256-GCM-SHA384';
   OpenBind('synopse.info', '443', {bind=}false, {tls=}true);
   writeln(TLS.PeerInfo);
   writeln(TLS.CipherName);
   writeln(Get('/forum/', 1000), ' len=', ContentLength);
   writeln(Get('/fossil/wiki/Synopse+OpenSource', 1000));
 finally
   Free;
 end;

mormot2 默认仅用TLS 1.2+,并且始终禁用不推荐使用的SSL 2/3,不推荐使用TLS 1.0或TLS 1.1

mormot2在windows使用 SChannel API ,在linux使用openssl

OpenSSL 1.1.1以TLS 1.3为特色,是一个LTS版本(直到2023-09-11)。作为下一个主要版本,OpenSSL 3.x在某些平台上也受支持。

对于OpenSSL 1.0.x,新的1.1.1 API隐藏了大多数结构,在getter/setter函数之后,并且不需要复杂的初始化。

{.$define OPENSSLFULLAPI}

//定义这个条件以发布整个(巨大的)OpenSSL API

//-存储在mormot.lib.openssl11.full.inc分隔文件中

//-默认情况下,仅发布mORMot所需的API功能

//-完整API增加了编译时间,但保留为参考

//-完整的API库将直接/静态链接,而不是动态链接:

//如果链接时出现“找不到-lcrypto”错误,请运行以下命令:

//cd/usr/lib/x86_64-linux-gnu

//sudo ln-s libcrypto.so.1.1 libcrypt.so

//sudo ln-s libssl.so.1.1 libssl.so

 

{.$define OPENSSLUSERTLMM}

//定义它,以便OpenSSL将使用pascal RTL getmem/freemem/reallocmem

//-注意,OpenSSL没有“finalize”API,并且可能会泄漏内存-所以

//如果不检查内存泄漏(风险自负),可以尝试定义它

 

{.$define NOOPENSSL1}

//定义此选项以禁用OpenSSL 1.1.1 API

 

{.$define NOOPENSSL3}

//定义此选项以禁用OpenSSL 3.x API-现在仅限Linux和Windows

//在动态链接上,如果3.x不可用,将回退到1.1.1

 

posted @ 2023-02-28 16:00  delphi中间件  阅读(231)  评论(0编辑  收藏  举报