All pastes #971380 Raw Edit

Something

public text v1 · immutable
·published 2008-04-04 18:21 UTC
rendered paste body
#include <stdlib.h>
#include <stdio.h>
#include <gssapi/gssapi.h>
#define SERVICE_NAME "host@ns-server.epitech.net"

void display_status(OM_uint32 min, OM_uint32 maj)
{
 gss_OID mech;
 OM_uint32 minor, status;
 gss_buffer_desc msg;
 gss_display_status(&minor, min, GSS_C_GSS_CODE, GSS_C_NO_OID, &status, &msg);
 puts(msg.value);
 gss_display_status(&minor, maj, GSS_C_MECH_CODE, GSS_C_NO_OID, &status, &msg);
 puts(msg.value);
 exit(1);
}

void import_name(gss_name_t *gss_name)
{
 OM_uint32 min, maj;
 gss_buffer_desc buf;
 gss_OID mech;
 
 buf.value = (unsigned char *) strdup(SERVICE_NAME);
 buf.length = strlen(buf.value) + 1;
 maj = gss_import_name(&min, &buf, GSS_C_NT_HOSTBASED_SERVICE, gss_name);
 if (maj != GSS_S_COMPLETE)
  display_status(min, maj);
}

unsigned char *init_context(gss_name_t gss_name)
{
 OM_uint32 min, maj, flags, time_rec;
 gss_ctx_id_t ctx;
 gss_name_t name;
 gss_OID mech_type;
 gss_buffer_t itoken = GSS_C_NO_BUFFER;
 gss_buffer_desc otoken;

 maj = gss_init_sec_context(&min, GSS_C_NO_CREDENTIAL, &ctx, gss_name,
 GSS_C_NO_OID, 0, 0,
 GSS_C_NO_CHANNEL_BINDINGS, itoken,
 NULL, &otoken, NULL, NULL);
 if (maj != GSS_S_COMPLETE)
  display_status(min, maj);
 gss_delete_sec_context(&min, &ctx, &otoken);
}

int main(int ac, char **av)
{
 gss_name_t gss_name;
 import_name(&gss_name);
 init_context(gss_name);
 return (0);
}