示例#1
0
/* Read a wrap token from stdin and verify that it says "userwrap". */
static void
read_wrap_token(gss_ctx_id_t ctx)
{
    OM_uint32 major, minor;
    gss_buffer_desc wrapped, buf;

    read_data(STDIN_FILENO, &wrapped.value, &wrapped.length);
    major = krb5_gss_unwrap(&minor, ctx, &wrapped, &buf, NULL, NULL);
    check(major, minor, "krb5_gss_unwrap");
    assert(buf.length == 8 && memcmp(buf.value, "userwrap", 8) == 0);
    free(buf.value);
    free(wrapped.value);
}
示例#2
0
文件: iakerb.c 项目: greghudson/krb5
OM_uint32 KRB5_CALLCONV
iakerb_gss_unwrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
                  gss_buffer_t input_message_buffer,
                  gss_buffer_t output_message_buffer, int *conf_state,
                  gss_qop_t *qop_state)
{
    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;

    if (ctx->gssc == GSS_C_NO_CONTEXT)
        return GSS_S_NO_CONTEXT;

    return krb5_gss_unwrap(minor_status, ctx->gssc, input_message_buffer,
                           output_message_buffer, conf_state, qop_state);
}