1 2#include <KerberosHelper/KerberosHelper.h> 3#include <CoreFoundation/CoreFoundation.h> 4#include <GSS/gssapi.h> 5#include <err.h> 6 7int 8main(int argc, char **argv) 9{ 10 gss_buffer_desc empty = { 0, NULL }, out; 11 OM_uint32 maj_stat, min_stat; 12 gss_ctx_id_t ctx = GSS_C_NO_CONTEXT; 13 14 maj_stat = gss_accept_sec_context(&min_stat, &ctx, GSS_C_NO_CREDENTIAL, 15 &empty, GSS_C_NO_CHANNEL_BINDINGS, 16 NULL, NULL, &out, NULL, NULL, NULL); 17 if (maj_stat != GSS_S_CONTINUE_NEEDED) 18 errx(1, "gss_accept_sec_context"); 19 20 CFDataRef data = CFDataCreateWithBytesNoCopy(NULL, out.value, out.length, kCFAllocatorNull); 21 22 CFDictionaryRef dict = KRBDecodeNegTokenInit(NULL, data); 23 if (dict == NULL) 24 errx(1, "KRBDecodeNegTokenInit"); 25 26 CFShow(dict); 27 CFRelease(dict); 28 29 CFRelease(data); 30 31 gss_release_buffer(&min_stat, &out); 32 gss_delete_sec_context(&min_stat, &ctx, NULL); 33 34 return 0; 35} 36