我正在尝试将SNI添加到使用Microsoft SDK的Schannel API for TLS的客户端程序(C / C ++)中。
我到处搜索但找不到有关Schannel如何支持SNI扩展的任何文档。
我查看了AcquireCredentialsHandle()
,InitializeSecurityContext()
的文档,但没有成功。
那么,有人可以帮我一些示例代码吗?
答案 0 :(得分:0)
SNI被指定为part of the ClientHello,由InitializeSecurityContext()
生成。具体而言,Schannel使用该函数的第3个参数进行证书验证,也称为SNI;但并非所有版本的Windows都支持TLS扩展(包括SNI)。
TLS扩展首先在Internet Explorer 7 beta 3 on Windows Vista中引入。此外,即使您的操作系统支持它,TLS也可能是turned off, by default。
有一个working example on CodeProject显示来自客户端和服务器端的SNI。