精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
联系方式
服务方向
1、首次调用InitializeSecurityContext来获取一个指向SecBufferDesc的指针。
2、提供output缓冲调用send(和Windows API功能一样)。
3、调用recv函数
4、用缓冲再次调用InitializeSecurityContext
MSDN介绍这些缓冲的说明如下:
二次调用必须包含2个缓冲,第一个缓冲类型为SECBUFFER_TOKEN,包含服务器接收的token。第二个缓冲类型为SECBUFFER_EMPTY。pvBuffer和cbBuffer和成员为0.
1、更多补充信息,比如缓冲的意义,第二个缓冲包含何信息,缓冲的目的是?
2、MSDN里说TargetDataRep输入参数不适用于Schannel,但在很多例子里设置它为SECURITY_NATIVE_DREP,那么SECURITY_NATIVE_DREP是什么标志?为什么MSDN说要把它设置为0?
InitializeSecurityContext不只适用于Schannel包,还适用于其它场景。在其它场景里用了这个参数,你看到的例子里可能是用于其它场景的。
2类缓冲,一个是负荷数据,一个是安全数据,不要假定API会能通过句柄找到安全数据。所以每次调用都要传入安全数据。