下表列出了 GSS-API 返回的调用错误。这些错误特定于特定语言绑定(在本例中为 C)。
表 B–1 GSS-API 调用错误
错误 |
字段中的值 |
含义 |
---|---|---|
GSS_S_CALL_INACCESSIBLE_READ |
1 |
不能读取所需的输入参数 |
GSS_S_CALL_INACCESSIBLE_WRITE |
2 |
不能写入所需的输出参数 |
GSS_S_CALL_BAD_STRUCTURE |
3 |
参数格式错误 |
下表列出了 GSS-API 例程错误,即 GSS-API 函数返回的一般错误。
表 B–2 GSS-API 例程错误
错误 |
字段中的值 |
含义 |
---|---|---|
GSS_S_BAD_MECH |
1 |
请求不受支持的机制。 |
GSS_S_BAD_NAME |
2 |
提供无效名称。 |
GSS_S_BAD_NAMETYPE |
3 |
提供的名称属于不受支持的类型。 |
GSS_S_BAD_BINDINGS |
4 |
提供不正确的通道绑定。 |
GSS_S_BAD_STATUS |
5 |
提供无效状态码。 |
GSS_S_BAD_MIC、GSS_S_BAD_SIG |
6 |
令牌具有无效的 MIC。 |
GSS_S_NO_CRED |
7 |
凭证不可用、不可访问或不受支持。 |
GSS_S_NO_CONTEXT |
8 |
未建立上下文。 |
GSS_S_DEFECTIVE_TOKEN |
9 |
令牌无效。 |
GSS_S_DEFECTIVE_CREDENTIAL |
10 |
凭证无效。 |
GSS_S_CREDENTIALS_EXPIRED |
11 |
引用的凭证已过期。 |
GSS_S_CONTEXT_EXPIRED |
12 |
上下文已过期。 |
GSS_S_FAILURE |
13 |
各种故障。基础机制检测到未定义特定 GSS–API 状态码的错误。 机制特定状态码(即次状态码)提供了有关错误的更多详细信息。 |
GSS_S_BAD_QOP |
14 |
无法提供请求的保护质量。 |
GSS_S_UNAUTHORIZED |
15 |
本地安全策略禁止该操作。 |
GSS_S_UNAVAILABLE |
16 |
操作或选项不可用。 |
GSS_S_DUPLICATE_ELEMENT |
17 |
请求的凭证元素已存在。 |
GSS_S_NAME_NOT_MN |
18 |
提供的名称不是机制名称 (mechanism name, MN)。 |
名称 GSS_S_COMPLETE(零值)指示缺少 API 错误或补充信息位。
下表列出了 GSS-API 函数返回的补充信息值。
表 B–3 GSS-API 补充信息代码
代码 |
位数 |
含义 |
---|---|---|
GSS_S_CONTINUE_NEEDED |
0 (LSB) |
仅由 gss_init_sec_context() 或 gss_accept_sec_context() 返回。必须再次调用例程才能完成其函数。 |
GSS_S_DUPLICATE_TOKEN |
1 |
该令牌是早期令牌的副本。 |
GSS_S_OLD_TOKEN |
2 |
令牌的有效期限已过期。 |
GSS_S_UNSEQ_TOKEN |
3 |
已处理后面的令牌。 |
GSS_S_GAP_TOKEN |
4 |
未收到预期的每条消息令牌。 |
有关状态码的更多信息,请参见GSS-API 状态码。