Sdiff g_verify.c
  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 }