1 /*
2 * Copyright (c) 1996,1997, by Sun Microsystems, Inc.
3 * All rights reserved.
4 */
5
6 #pragma ident "@(#)g_verify.c 1.14 04/09/08 SMI"
7
8 /*
9 * glue routine for gss_verify
10 */
11
12 #include <mechglueP.h>
13
14 OM_uint32
15 gss_verify(minor_status,
16 context_handle,
17 message_buffer,
18 token_buffer,
19 qop_state)
20
21 OM_uint32 * minor_status;
22 gss_ctx_id_t context_handle;
23 gss_buffer_t message_buffer;
24 gss_buffer_t token_buffer;
25 int * qop_state;
26 {
27 OM_uint32 status;
28 gss_union_ctx_id_t ctx;
29 gss_mechanism mech;
30
31 if (context_handle == GSS_C_NO_CONTEXT)
32 return GSS_S_NO_CONTEXT;
33
34 /*
35 * select the approprate underlying mechanism routine and
36 * call it.
37 */
38
39 ctx = (gss_union_ctx_id_t) context_handle;
40 mech = __gss_get_mechanism(ctx->mech_type);
41
42 if (mech) {
43 if (mech->gss_verify)
44 status = mech->gss_verify(
45 mech->context,
46 minor_status,
47 ctx->internal_ctx_id,
48 message_buffer,
49 token_buffer,
50 qop_state);
51 else
52 status = GSS_S_BAD_BINDINGS;
53
54 return (status);
55 }
56
57 return (GSS_S_NO_CONTEXT);
58 }
59
60 OM_uint32
61 gss_verify_mic(minor_status,
62 context_handle,
63 message_buffer,
64 token_buffer,
65 qop_state)
66
67 OM_uint32 * minor_status;
68 const gss_ctx_id_t context_handle;
69 const gss_buffer_t message_buffer;
70 const gss_buffer_t token_buffer;
71 gss_qop_t * qop_state;
72
73 {
74 return (gss_verify(minor_status, (gss_ctx_id_t)context_handle,
75 (gss_buffer_t)message_buffer,
76 (gss_buffer_t)token_buffer, (int *) qop_state));
77 }
|
1 /*
2 * Copyright (c) 1996,1997, by Sun Microsystems, Inc.
3 * All rights reserved.
4 */
5
6 #pragma ident "@(#)g_verify.c 1.13 98/04/23 SMI"
7
8 /*
9 * glue routine for gss_verify
10 */
11
12 #include <mechglueP.h>
13
14 OM_uint32
15 gss_verify(minor_status,
16 context_handle,
17 message_buffer,
18 token_buffer,
19 qop_state)
20
21 OM_uint32 * minor_status;
22 gss_ctx_id_t context_handle;
23 gss_buffer_t message_buffer;
24 gss_buffer_t token_buffer;
25 int * qop_state;
26 {
27 OM_uint32 status;
28 gss_union_ctx_id_t ctx;
29 gss_mechanism mech;
30
31
32 if (minor_status == NULL)
33 return (GSS_S_CALL_INACCESSIBLE_WRITE);
34 *minor_status = 0;
35
36 if (context_handle == GSS_C_NO_CONTEXT)
37 return (GSS_S_CALL_INACCESSIBLE_READ | GSS_S_NO_CONTEXT);
38
39 if ((message_buffer == NULL) || GSS_EMPTY_BUFFER(token_buffer))
40 return (GSS_S_CALL_INACCESSIBLE_READ);
41
42 /*
43 * select the approprate underlying mechanism routine and
44 * call it.
45 */
46
47 ctx = (gss_union_ctx_id_t) context_handle;
48 mech = __gss_get_mechanism(ctx->mech_type);
49
50 if (mech) {
51 if (mech->gss_verify)
52 status = mech->gss_verify(
53 mech->context,
54 minor_status,
55 ctx->internal_ctx_id,
56 message_buffer,
57 token_buffer,
58 qop_state);
59 else
60 status = GSS_S_UNAVAILABLE;
61
62 return (status);
63 }
64
65 return (GSS_S_BAD_MECH);
66 }
67
68 OM_uint32
69 gss_verify_mic(minor_status,
70 context_handle,
71 message_buffer,
72 token_buffer,
73 qop_state)
74
75 OM_uint32 * minor_status;
76 const gss_ctx_id_t context_handle;
77 const gss_buffer_t message_buffer;
78 const gss_buffer_t token_buffer;
79 gss_qop_t * qop_state;
80
81 {
82 return (gss_verify(minor_status, (gss_ctx_id_t)context_handle,
83 (gss_buffer_t)message_buffer,
84 (gss_buffer_t)token_buffer, (int *) qop_state));
85 }
|