我必须使用SSPI接口实现TLS握手过程 我的应用程序实现了客户端,正如我从here看到的那样,一般流程是:
关于这些缓冲区的MSDN解释:
“在初次通话后调用此功能时,必须有两个 缓冲区。第一个类型为SECBUFFER_TOKEN并包含令牌 从服务器收到。第二个缓冲区的类型为SECBUFFER_EMPTY; 将pvBuffer和cbBuffer成员都设置为零。“
我的问题:
我将非常感谢任何帮助 谢谢!。
答案 0 :(得分:3)
1.
SChannel为您提供了一层抽象,以便能够通过安全通道传输数据缓冲区。 API的设计方式是,当您发送一个数据时,您提供两个数据缓冲区 - 实际数据(有效负载)和保存安全通道令牌/上下文的第二个缓冲区。假设您将此缓冲区附加到您正在推送的每个有效负载缓冲区,例如因为API没有设计在内部保存和管理这些数据,例如有把柄。
2.
InitializeSecurityContext
不仅适用于SChannel软件包,在其他情况下也会使用此参数,您可能会使用示例代码查看与其他软件包相关的内容,或者从那里复制或应用两者都有。