Solaris 开发者安全性指南

消息的签名和返回

此时,sign_server() 函数需要对消息进行签名。对消息进行签名需要将消息的消息完整性代码(即 MIC)返回到客户机。返回消息可证明消息已成功发送和展开。为了获取 MIC,sign_server() 将使用 gss_get_mic() 函数:

maj_stat = gss_get_mic(&min_stat, context, GSS_C_QOP_DEFAULT,

                            &msg_buf, &xmit_buf);

gss_get_mic()msg_buf 中查找该消息,生成 MIC,并将该 MIC 存储到 xmit_buf 中。然后,服务器会使用 send_token() 将该 MIC 发回到客户机。客户机会使用 gss_verify_mic() 来检验该 MIC。请参见读取和检验 GSS-API 客户机中的签名块

最后,sign_server() 会执行一些清除操作。sign_server() 会使用 gss_release_buffer() 来释放 GSS-API 缓冲区 msg_bufxmit_buf。然后,sign_server() 会使用 gss_delete_sec_context() 来销毁上下文。