程序可以使用 gss_get_mic() 向消息添加加密 MIC。接收者可以通过调用 gss_verify_mic() 检查消息的 MIC。
与 gss_wrap() 相比,gss_get_mic() 会针对消息和 MIC 生成不同的输出,这意味着发送者应用程序必须既能发送消息又能发送随附的 MIC。更重要的是,接收者必须能够区分消息和 MIC。以下方法可确保对消息和 MIC 进行正确的处理:
通过程序控制(即状态)。接收者应用程序可能知道对接收函数调用了两次,第一次用于获取消息,第二次用于获取消息的 MIC。
通过标志。发送者和接收者可以标记所包含令牌的类型。
通过用户定义的同时包含消息和 MIC 的令牌结构。
如果 gss_get_mic() 成功完成,则将返回 GSS_S_COMPLETE。如果指定的 QOP 无效,则将返回 GSS_S_BAD_QOP。有关更多信息,请参见 gss_get_mic(3GSS)。