关闭 Schannel 连接

Shutting Down an Schannel Connection

据说要关闭 schannel 连接要遵循以下步骤: 1)调用ApplyControlToken函数,指定SCHANNEL_SHUTDOWN控制令牌。

2)从 ApplyControlToken 接收到 SEC_E_OK return 值后,调用 InitializeSecurityContext (Schannel)(客户端)或 AcceptSecurityContext (Schannel)(服务器)函数,传入空缓冲区。

3) 就像您的应用程序正在创建新连接一样继续操作,直到函数 returns SEC_I_CONTEXT_EXPIRED 或 SEC_E_OK 指示连接已关闭。 将最终的输出信息,如果有的话,发送给对方。

4)Call DeleteSecurityContext to free resources held by the connection.

来自 link Shutting Down an Schannel Connection 但是,我们是否需要同时传递来自客户端和服务器的信息。传递信息后,我们需要在远程端如何处理该信息。

我们可以从您发送最后一条消息的那一侧传递结束语。 Decrypt Message 将 return SEC_I_CONTEXT_EXPIRED 当远程连接发送关闭消息时。