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
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/17164647.html