/* * This file was generated automatically by xsubpp version 1.9508 from the * contents of GSSAPI.xs. Do not edit this file, edit GSSAPI.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ #line 1 "GSSAPI.xs" #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #define __KRB5_MECHTYPE_OID &mygss_mech_krb5 #define __KRB5_OLD_MECHTYPE_OID &mygss_mech_krb5_old #define __SPNEGO_MECHTYPE_OID &myspnego_oid_desc #define __GSS_KRB5_NT_USER_NAME &mygss_nt_krb5_name #define __GSS_KRB5_NT_PRINCIPAL_NAME &mygss_nt_krb5_principal #define __gss_mech_krb5_v2 &mygss_mech_krb5_v2 #if defined(HEIMDAL) #include #endif #if !defined(HEIMDAL) #include #include #include #if defined(MITKERB12) /* symbols not defined in MIT Kerberos 1.2.x */ #define GSS_C_NT_USER_NAME gss_nt_user_name #define GSS_C_NT_MACHINE_UID_NAME gss_nt_machine_uid_name #define GSS_C_NT_STRING_UID_NAME gss_nt_string_uid_name #define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name #define GSS_C_NT_EXPORT_NAME gss_nt_exported_name #endif #endif /* See http://mailman.mit.edu/pipermail/krbdev/2005-February/003193.html " */ static gss_OID_desc mygss_mech_krb5 = {9, (void *) "\x2a\x86\x48\x86\xf7\x12\x01\x02\x02"}; static gss_OID_desc mygss_mech_krb5_old = {5, (void *) "\x2b\x05\x01\x05\x02"}; static gss_OID_desc myspnego_oid_desc = {6, (void *) "\x2b\x06\x01\x05\x05\x02"}; static gss_OID_desc mygss_nt_krb5_name = {10, (void *) "\052\206\110\206\367\022\001\002\002\001"}; static gss_OID_desc mygss_nt_krb5_principal = {10, (void *) "\052\206\110\206\367\022\001\002\002\002"}; static gss_OID_desc mygss_mech_krb5_v2 = {9, (void *) "\052\206\110\206\367\022\001\002\003"}; static double constant(char *name, int len, int arg) { warn("GSSAPI.xs - function constant() should never be called"); return 0; } /* * These are not part of the GSSAPI C bindings, so we can't count on * them being defined. They are part of the Kerberos 1.2 GSSAPI binding * so we'll provide them */ #ifndef GSS_CALLING_ERROR_FIELD #define GSS_CALLING_ERROR_FIELD(x) \ (((x) >> GSS_C_CALLING_ERROR_OFFSET) & GSS_C_CALLING_ERROR_MASK) #endif #ifndef GSS_ROUTINE_ERROR_FIELD #define GSS_ROUTINE_ERROR_FIELD(x) \ (((x) >> GSS_C_ROUTINE_ERROR_OFFSET) & GSS_C_ROUTINE_ERROR_MASK) #endif #ifndef GSS_SUPPLEMENTARY_INFO_FIELD #define GSS_SUPPLEMENTARY_INFO_FIELD(x) \ (((x) >> GSS_C_SUPPLEMENTARY_OFFSET) & GSS_C_SUPPLEMENTARY_MASK) #endif typedef struct { OM_uint32 major, minor; } gss_status_desc; typedef gss_status_desc GSSAPI__Status; typedef gss_name_t GSSAPI__Name; typedef gss_OID GSSAPI__OID; typedef gss_OID_set GSSAPI__OID__Set; typedef gss_cred_id_t GSSAPI__Cred; typedef gss_ctx_id_t GSSAPI__Context; typedef gss_channel_bindings_t GSSAPI__Binding; typedef const gss_OID_desc * GSSAPI__OID_const; typedef const gss_OID_set_desc * GSSAPI__OID__Set_const; typedef gss_ctx_id_t GSSAPI__Context_Iopt; typedef gss_name_t GSSAPI__Name_out; typedef gss_OID GSSAPI__OID_out; typedef gss_OID_set GSSAPI__OID__Set_out; typedef gss_cred_id_t GSSAPI__Cred_out; typedef gss_ctx_id_t GSSAPI__Context_out; typedef gss_channel_bindings_t GSSAPI__Binding_out; typedef I32 I32_out; typedef int int_out; typedef gss_cred_usage_t gss_cred_usage_t_out; typedef U32 U32_out; typedef OM_uint32 OM_uint32_out; typedef gss_name_t * GSSAPI__Name_optout; typedef gss_OID * GSSAPI__OID_optout; typedef gss_OID_set * GSSAPI__OID__Set_optout; typedef gss_cred_id_t * GSSAPI__Cred_optout; typedef I32 * I32_optout; typedef int * int_optout; typedef gss_cred_usage_t * gss_cred_usage_t_optout; typedef U32 * U32_optout; typedef OM_uint32 * OM_uint32_optout; typedef gss_name_t GSSAPI__Name_opt; typedef gss_OID GSSAPI__OID_opt; typedef gss_OID_set GSSAPI__OID__Set_opt; typedef gss_channel_bindings_t GSSAPI__Binding_opt; typedef gss_cred_id_t GSSAPI__Cred_opt; typedef gss_ctx_id_t GSSAPI__Context_opt; typedef gss_buffer_desc gss_buffer_desc_out; typedef gss_buffer_desc gss_buffer_desc_copy; typedef gss_buffer_desc gss_buffer_str; typedef gss_buffer_desc gss_buffer_str_out; typedef void * GSSAPI_obj; int oid_set_is_dynamic(GSSAPI__OID__Set oidset) { return 1; /* 2006-02-13 all static sets are deleted */ } #line 151 "GSSAPI.c" XS(XS_GSSAPI_gssapi_implementation_is_heimdal); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI_gssapi_implementation_is_heimdal) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::gssapi_implementation_is_heimdal()"); { int RETVAL; dXSTARG; #line 371 "GSSAPI.xs" #if defined(HEIMDAL) RETVAL = 1; #endif #if !defined(HEIMDAL) RETVAL = 0; #endif #line 169 "GSSAPI.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI_constant); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI_constant) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::constant(sv, arg)"); { #line 384 "GSSAPI.xs" STRLEN len; #line 185 "GSSAPI.c" SV * sv = ST(0); char * s = SvPV(sv, len); int arg = (int)SvIV(ST(1)); double RETVAL; dXSTARG; #line 390 "GSSAPI.xs" RETVAL = constant(s,len,arg); #line 193 "GSSAPI.c" XSprePUSH; PUSHn((double)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI_indicate_mechs); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI_indicate_mechs) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::indicate_mechs(oidset)"); { GSSAPI__OID__Set_out oidset; GSSAPI__Status RETVAL; if (SvREADONLY(ST(0))) { croak("Modification of a read-only value attempted, oidset"); } oidset = NULL; #line 399 "GSSAPI.xs" RETVAL.major = gss_indicate_mechs(&RETVAL.minor, &oidset); #line 216 "GSSAPI.c" sv_setref_iv(ST(0), "GSSAPI::OID::Set", (IV)(void*)oidset); SvSETMAGIC(ST(0)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI_is_valid); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI_is_valid) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::is_valid(object)"); { GSSAPI_obj object; bool RETVAL; if (!SvOK(ST(0))) { object = NULL; } else if (sv_derived_from(ST(0), "GSSAPI")) { SV *tmp = SvRV(ST(0)); object = (GSSAPI_obj) SvIV(tmp); } else { croak("object is not of type GSSAPI"); }; #line 408 "GSSAPI.xs" RETVAL = (object != NULL); #line 250 "GSSAPI.c" ST(0) = boolSV(RETVAL); sv_2mortal(ST(0)); } XSRETURN(1); } /* INCLUDE: Including 'xs/Status.xs' from 'GSSAPI.xs' */ XS(XS_GSSAPI__Status_new); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Status_new) { dXSARGS; if (items != 3) Perl_croak(aTHX_ "Usage: GSSAPI::Status::new(class, major, minor)"); { char * class = (char *)SvPV_nolen(ST(0)); U32 major = (unsigned long)SvUV(ST(1)); U32 minor = (unsigned long)SvUV(ST(2)); GSSAPI__Status RETVAL; #line 7 "xs/Status.xs" RETVAL.major = major; RETVAL.minor = minor; #line 275 "GSSAPI.c" ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Status_major); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Status_major) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Status::major(status)"); { GSSAPI__Status status; U32 RETVAL; dXSTARG; if (!SvOK(ST(0))) { Zero(&status, 1, GSSAPI__Status); } else if (sv_derived_from(ST(0), "GSSAPI::Status")) { SV * tmp = SvRV(ST(0)); STRLEN len; char * tmpc = SvPV(tmp, len); if (len != sizeof(status)) { croak("status is not of type GSSAPI::Status (wrong size)"); } Copy(tmpc, &status, 1, GSSAPI__Status); } else { croak("status is not of type GSSAPI::Status"); }; #line 16 "xs/Status.xs" RETVAL = status.major; #line 312 "GSSAPI.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Status_minor); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Status_minor) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Status::minor(status)"); { GSSAPI__Status status; U32 RETVAL; dXSTARG; if (!SvOK(ST(0))) { Zero(&status, 1, GSSAPI__Status); } else if (sv_derived_from(ST(0), "GSSAPI::Status")) { SV * tmp = SvRV(ST(0)); STRLEN len; char * tmpc = SvPV(tmp, len); if (len != sizeof(status)) { croak("status is not of type GSSAPI::Status (wrong size)"); } Copy(tmpc, &status, 1, GSSAPI__Status); } else { croak("status is not of type GSSAPI::Status"); }; #line 24 "xs/Status.xs" RETVAL = status.minor; #line 347 "GSSAPI.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Status_GSS_CALLING_ERROR); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Status_GSS_CALLING_ERROR) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Status::GSS_CALLING_ERROR(code)"); { U32 code = (unsigned long)SvUV(ST(0)); U32 RETVAL; dXSTARG; RETVAL = GSS_CALLING_ERROR(code); XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Status_GSS_ROUTINE_ERROR); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Status_GSS_ROUTINE_ERROR) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Status::GSS_ROUTINE_ERROR(code)"); { U32 code = (unsigned long)SvUV(ST(0)); U32 RETVAL; dXSTARG; RETVAL = GSS_ROUTINE_ERROR(code); XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Status_GSS_SUPPLEMENTARY_INFO); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Status_GSS_SUPPLEMENTARY_INFO) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Status::GSS_SUPPLEMENTARY_INFO(code)"); { U32 code = (unsigned long)SvUV(ST(0)); U32 RETVAL; dXSTARG; RETVAL = GSS_SUPPLEMENTARY_INFO(code); XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Status_GSS_ERROR); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Status_GSS_ERROR) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Status::GSS_ERROR(code)"); { U32 code = (unsigned long)SvUV(ST(0)); bool RETVAL; #line 44 "xs/Status.xs" RETVAL = GSS_ERROR(code) != 0; #line 419 "GSSAPI.c" ST(0) = boolSV(RETVAL); sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_GSSAPI__Status_GSS_CALLING_ERROR_FIELD); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Status_GSS_CALLING_ERROR_FIELD) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Status::GSS_CALLING_ERROR_FIELD(code)"); { U32 code = (unsigned long)SvUV(ST(0)); U32 RETVAL; dXSTARG; RETVAL = GSS_CALLING_ERROR_FIELD(code); XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Status_GSS_ROUTINE_ERROR_FIELD); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Status_GSS_ROUTINE_ERROR_FIELD) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Status::GSS_ROUTINE_ERROR_FIELD(code)"); { U32 code = (unsigned long)SvUV(ST(0)); U32 RETVAL; dXSTARG; RETVAL = GSS_ROUTINE_ERROR_FIELD(code); XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Status_GSS_SUPPLEMENTARY_INFO_FIELD); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Status_GSS_SUPPLEMENTARY_INFO_FIELD) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Status::GSS_SUPPLEMENTARY_INFO_FIELD(code)"); { U32 code = (unsigned long)SvUV(ST(0)); U32 RETVAL; dXSTARG; RETVAL = GSS_SUPPLEMENTARY_INFO_FIELD(code); XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Status_display_status); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Status_display_status) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::Status::display_status(code, type)"); SP -= items; { U32 code = (unsigned long)SvUV(ST(0)); int type = (int)SvIV(ST(1)); #line 65 "xs/Status.xs" OM_uint32 major_status, minor_status; unsigned int msg_ctx; gss_buffer_desc msg; #line 495 "GSSAPI.c" #line 69 "xs/Status.xs" msg_ctx = 0; do { major_status = gss_display_status(&minor_status, code, type, GSS_C_NO_OID, &msg_ctx, &msg); if (GSS_ERROR(major_status)) { gss_release_buffer(&minor_status, &msg); break; } XPUSHs(sv_2mortal(newSVpvn(msg.value, msg.length))); gss_release_buffer(&minor_status, &msg); } while (msg_ctx); #line 509 "GSSAPI.c" PUTBACK; return; } } /* INCLUDE: Returning to 'GSSAPI.xs' from 'xs/Status.xs' */ /* INCLUDE: Including 'xs/Name.xs' from 'GSSAPI.xs' */ XS(XS_GSSAPI__Name_new); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Name_new) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Name::new(class)"); { char * class = (char *)SvPV_nolen(ST(0)); GSSAPI__Name_out RETVAL; #line 5 "xs/Name.xs" RETVAL = NULL; #line 533 "GSSAPI.c" ST(0) = sv_newmortal(); sv_setref_iv(ST(0), "GSSAPI::Name", (IV)(void*)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Name_DESTROY); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Name_DESTROY) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Name::DESTROY(name)"); { GSSAPI__Name_opt name; #line 13 "xs/Name.xs" OM_uint32 minor; #line 552 "GSSAPI.c" if (!SvOK(ST(0))) { name = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Name")) { SV *tmp = SvRV(ST(0)); name = (GSSAPI__Name_opt) SvIV(tmp); } else { croak("name is not of type GSSAPI::Name"); }; #line 15 "xs/Name.xs" if (name != NULL) { (void)gss_release_name(&minor, &name); } #line 568 "GSSAPI.c" } XSRETURN_EMPTY; } XS(XS_GSSAPI__Name_import); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Name_import) { dXSARGS; if (items < 3) Perl_croak(aTHX_ "Usage: GSSAPI::Name::import(class, dest, name, ...)"); { char * class = (char *)SvPV_nolen(ST(0)); GSSAPI__Name_out dest; gss_buffer_str name; #line 26 "xs/Name.xs" GSSAPI__OID nametype = GSS_C_NO_OID; #line 586 "GSSAPI.c" GSSAPI__Status RETVAL; if (SvREADONLY(ST(1))) { croak("Modification of a read-only value attempted, dest"); } dest = NULL; name.value = SvPV(ST(2), name.length); if (name.length) { if (((char*)name.value)[name.length-2] != '\0' && ((char*)name.value)[name.length-1] == '\0') name.length++; } else if (((char*)name.value)[0] == '\0') { name.length++; }; #line 29 "xs/Name.xs" if (items > 3) { if (! SvOK(ST(3))) { /* do nothing */ } else if (sv_isa(ST(3), "GSSAPI::OID")) { SV *tmp = SvRV(ST(3)); nametype = (GSSAPI__OID) SvIV(tmp); } else { croak("nametype is not of type GSSAPI::OID"); } } RETVAL.major = gss_import_name(&RETVAL.minor, &name, nametype, &dest); #line 615 "GSSAPI.c" sv_setref_iv(ST(1), "GSSAPI::Name", (IV)(void*)dest); SvSETMAGIC(ST(1)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Name_duplicate); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Name_duplicate) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::Name::duplicate(src, dest)"); { GSSAPI__Name_opt src; GSSAPI__Name_out dest; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { src = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Name")) { SV *tmp = SvRV(ST(0)); src = (GSSAPI__Name_opt) SvIV(tmp); } else { croak("src is not of type GSSAPI::Name"); }; if (SvREADONLY(ST(1))) { croak("Modification of a read-only value attempted, dest"); } dest = NULL; #line 51 "xs/Name.xs" RETVAL.major = gss_duplicate_name(&RETVAL.minor, src, &dest); #line 655 "GSSAPI.c" sv_setref_iv(ST(1), "GSSAPI::Name", (IV)(void*)dest); SvSETMAGIC(ST(1)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Name_display); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Name_display) { dXSARGS; if (items < 2) Perl_croak(aTHX_ "Usage: GSSAPI::Name::display(src, output, ...)"); { GSSAPI__Name_opt src; gss_buffer_str_out output; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { src = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Name")) { SV *tmp = SvRV(ST(0)); src = (GSSAPI__Name_opt) SvIV(tmp); } else { croak("src is not of type GSSAPI::Name"); }; output.length = 0; output.value = NULL; #line 63 "xs/Name.xs" if (items > 2) { GSSAPI__OID outputtype = GSS_C_NO_OID; RETVAL.major = gss_display_name(&RETVAL.minor, src, &output, &outputtype); sv_setref_pvn(ST(2), "GSSAPI::OID", (void*)&outputtype, sizeof(outputtype)); } else { RETVAL.major = gss_display_name(&RETVAL.minor, src, &output, NULL); } #line 701 "GSSAPI.c" if (output.value != NULL) { sv_setpv(ST(1), output.value); SvSETMAGIC(ST(1)); } else { sv_setsv_mg(ST(1), &PL_sv_undef); } { OM_uint32 minor; gss_release_buffer(&minor, &output); } SvSETMAGIC(ST(1)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Name_compare); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Name_compare) { dXSARGS; if (items != 3) Perl_croak(aTHX_ "Usage: GSSAPI::Name::compare(arg1, arg2, ret)"); { GSSAPI__Name_opt arg1; GSSAPI__Name_opt arg2; int_out ret; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { arg1 = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Name")) { SV *tmp = SvRV(ST(0)); arg1 = (GSSAPI__Name_opt) SvIV(tmp); } else { croak("arg1 is not of type GSSAPI::Name"); }; if (!SvOK(ST(1))) { arg2 = NULL; } else if (sv_derived_from(ST(1), "GSSAPI::Name")) { SV *tmp = SvRV(ST(1)); arg2 = (GSSAPI__Name_opt) SvIV(tmp); } else { croak("arg2 is not of type GSSAPI::Name"); }; if (SvREADONLY(ST(2))) { croak("Modification of a read-only value attempted, ret"); } ret = 0; #line 83 "xs/Name.xs" RETVAL.major = gss_compare_name(&RETVAL.minor, arg1, arg2, &ret); #line 764 "GSSAPI.c" sv_setiv_mg(ST(2), ret); SvSETMAGIC(ST(2)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Name_canonicalize); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Name_canonicalize) { dXSARGS; if (items != 3) Perl_croak(aTHX_ "Usage: GSSAPI::Name::canonicalize(src, type, dest)"); { GSSAPI__Name_opt src; GSSAPI__OID type; GSSAPI__Name_out dest; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { src = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Name")) { SV *tmp = SvRV(ST(0)); src = (GSSAPI__Name_opt) SvIV(tmp); } else { croak("src is not of type GSSAPI::Name"); }; if (sv_derived_from(ST(1), "GSSAPI::OID")) { SV *tmp = SvRV(ST(1)); type = (GSSAPI__OID) SvIV(tmp); if (type == NULL) { croak("type has no value"); } } else { croak("type is not of type GSSAPI::OID"); }; if (SvREADONLY(ST(2))) { croak("Modification of a read-only value attempted, dest"); } dest = NULL; #line 108 "xs/Name.xs" RETVAL.major = gss_canonicalize_name(&RETVAL.minor, src, type, &dest); #line 816 "GSSAPI.c" sv_setref_iv(ST(2), "GSSAPI::Name", (IV)(void*)dest); SvSETMAGIC(ST(2)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Name_export); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Name_export) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::Name::export(name, output)"); { GSSAPI__Name_opt name; gss_buffer_str_out output; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { name = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Name")) { SV *tmp = SvRV(ST(0)); name = (GSSAPI__Name_opt) SvIV(tmp); } else { croak("name is not of type GSSAPI::Name"); }; output.length = 0; output.value = NULL; #line 119 "xs/Name.xs" RETVAL.major = gss_export_name(&RETVAL.minor, name, &output); #line 854 "GSSAPI.c" if (output.value != NULL) { sv_setpv(ST(1), output.value); SvSETMAGIC(ST(1)); } else { sv_setsv_mg(ST(1), &PL_sv_undef); } { OM_uint32 minor; gss_release_buffer(&minor, &output); } SvSETMAGIC(ST(1)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } /* INCLUDE: Returning to 'GSSAPI.xs' from 'xs/Name.xs' */ /* INCLUDE: Including 'xs/OID.xs' from 'GSSAPI.xs' */ XS(XS_GSSAPI__OID_new); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_new) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::OID::new(class)"); { char * class = (char *)SvPV_nolen(ST(0)); GSSAPI__OID_out RETVAL; #line 6 "xs/OID.xs" RETVAL = NULL; #line 894 "GSSAPI.c" ST(0) = sv_newmortal(); sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__OID_DESTROY); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_DESTROY) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::OID::DESTROY(oid)"); SP -= items; { GSSAPI__OID oid; #line 14 "xs/OID.xs" OM_uint32 minor; #line 914 "GSSAPI.c" if (sv_derived_from(ST(0), "GSSAPI::OID")) { SV *tmp = SvRV(ST(0)); oid = (GSSAPI__OID) SvIV(tmp); if (oid == NULL) { croak("oid has no value"); } } else { croak("oid is not of type GSSAPI::OID"); }; #line 16 "xs/OID.xs" #if !defined(HEIMDAL) if (oid != NULL && oid != __KRB5_MECHTYPE_OID && oid != __KRB5_OLD_MECHTYPE_OID && oid != __GSS_KRB5_NT_USER_NAME && oid != __GSS_KRB5_NT_PRINCIPAL_NAME && oid != __SPNEGO_MECHTYPE_OID && oid != __gss_mech_krb5_v2 ) { (void)gss_release_oid(&minor, &oid); } #endif #if defined(HEIMDAL) #endif #line 940 "GSSAPI.c" PUTBACK; return; } } XS(XS_GSSAPI__OID_from_str); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_from_str) { dXSARGS; if (items != 3) Perl_croak(aTHX_ "Usage: GSSAPI::OID::from_str(class, oid, str)"); { char * class = (char *)SvPV_nolen(ST(0)); GSSAPI__OID_out oid; gss_buffer_str str; GSSAPI__Status RETVAL; if (SvREADONLY(ST(1))) { croak("Modification of a read-only value attempted, oid"); } oid = NULL; str.value = SvPV(ST(2), str.length); if (str.length) { if (((char*)str.value)[str.length-2] != '\0' && ((char*)str.value)[str.length-1] == '\0') str.length++; } else if (((char*)str.value)[0] == '\0') { str.length++; }; #line 37 "xs/OID.xs" #if !defined(HEIMDAL) RETVAL.major = gss_str_to_oid(&RETVAL.minor, &str, &oid); #endif #if defined(HEIMDAL) croak("gss_str_to_oid() is not defined in Heimdal API!"); #endif #line 979 "GSSAPI.c" sv_setref_iv(ST(1), "GSSAPI::OID", (IV)(void*)oid); SvSETMAGIC(ST(1)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_to_str); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_to_str) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::OID::to_str(oid, str)"); { GSSAPI__OID oid; gss_buffer_str_out str; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::OID")) { SV *tmp = SvRV(ST(0)); oid = (GSSAPI__OID) SvIV(tmp); if (oid == NULL) { croak("oid has no value"); } } else { croak("oid is not of type GSSAPI::OID"); }; str.length = 0; str.value = NULL; #line 52 "xs/OID.xs" if (oid == NULL) { sv_setsv_mg(ST(1), &PL_sv_undef); XSRETURN_UNDEF; } #if !defined(HEIMDAL) RETVAL.major = gss_oid_to_str(&RETVAL.minor, oid, &str); #endif #if defined(HEIMDAL) croak("gss_oid_to_str() is not defined in Heimdal API!"); #endif #line 1026 "GSSAPI.c" if (str.value != NULL) { sv_setpv(ST(1), str.value); SvSETMAGIC(ST(1)); } else { sv_setsv_mg(ST(1), &PL_sv_undef); } { OM_uint32 minor; gss_release_buffer(&minor, &str); } SvSETMAGIC(ST(1)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_inquire_names); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_inquire_names) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::OID::inquire_names(oid, oidset)"); { GSSAPI__OID oid; GSSAPI__OID__Set_out oidset; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::OID")) { SV *tmp = SvRV(ST(0)); oid = (GSSAPI__OID) SvIV(tmp); if (oid == NULL) { croak("oid has no value"); } } else { croak("oid is not of type GSSAPI::OID"); }; if (SvREADONLY(ST(1))) { croak("Modification of a read-only value attempted, oidset"); } oidset = NULL; #line 71 "xs/OID.xs" RETVAL.major = gss_inquire_names_for_mech(&RETVAL.minor, oid, &oidset); #line 1078 "GSSAPI.c" sv_setref_iv(ST(1), "GSSAPI::OID::Set", (IV)(void*)oidset); SvSETMAGIC(ST(1)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_nt_user_name); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_nt_user_name) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_nt_user_name()"); { GSSAPI__OID_const RETVAL; #line 85 "xs/OID.xs" RETVAL = GSS_C_NT_USER_NAME; #line 1100 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_nt_machine_uid_name); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_nt_machine_uid_name) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_nt_machine_uid_name()"); { GSSAPI__OID_const RETVAL; #line 92 "xs/OID.xs" RETVAL = GSS_C_NT_MACHINE_UID_NAME; #line 1120 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_nt_string_uid_name); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_nt_string_uid_name) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_nt_string_uid_name()"); { GSSAPI__OID_const RETVAL; #line 99 "xs/OID.xs" RETVAL = GSS_C_NT_STRING_UID_NAME; #line 1140 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_nt_service_name); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_nt_service_name) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_nt_service_name()"); { GSSAPI__OID_const RETVAL; #line 106 "xs/OID.xs" RETVAL = GSS_C_NT_HOSTBASED_SERVICE; #line 1160 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_nt_exported_name); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_nt_exported_name) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_nt_exported_name()"); { GSSAPI__OID_const RETVAL; #line 113 "xs/OID.xs" RETVAL = GSS_C_NT_EXPORT_NAME; #line 1180 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_nt_service_name_v2); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_nt_service_name_v2) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_nt_service_name_v2()"); { GSSAPI__OID_const RETVAL; #line 120 "xs/OID.xs" RETVAL = GSS_C_NT_HOSTBASED_SERVICE; #line 1200 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_nt_krb5_name); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_nt_krb5_name) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_nt_krb5_name()"); { GSSAPI__OID_const RETVAL; #line 132 "xs/OID.xs" RETVAL = __GSS_KRB5_NT_USER_NAME; #line 1220 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_nt_krb5_principal); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_nt_krb5_principal) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_nt_krb5_principal()"); { GSSAPI__OID_const RETVAL; #line 139 "xs/OID.xs" RETVAL = __GSS_KRB5_NT_PRINCIPAL_NAME; #line 1240 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_mech_krb5); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_mech_krb5) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_mech_krb5()"); { GSSAPI__OID_const RETVAL; #line 146 "xs/OID.xs" RETVAL = __KRB5_MECHTYPE_OID; #line 1260 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_mech_spnego); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_mech_spnego) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_mech_spnego()"); { GSSAPI__OID_const RETVAL; #line 153 "xs/OID.xs" RETVAL = __SPNEGO_MECHTYPE_OID; #line 1280 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_mech_krb5_old); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_mech_krb5_old) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_mech_krb5_old()"); { GSSAPI__OID_const RETVAL; #line 160 "xs/OID.xs" RETVAL = __KRB5_OLD_MECHTYPE_OID; #line 1300 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_mech_krb5_v2); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_mech_krb5_v2) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_mech_krb5_v2()"); { GSSAPI__OID_const RETVAL; #line 167 "xs/OID.xs" RETVAL = __gss_mech_krb5_v2; #line 1320 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID_gss_nt_hostbased_service); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID_gss_nt_hostbased_service) { dXSARGS; if (items != 0) Perl_croak(aTHX_ "Usage: GSSAPI::OID::gss_nt_hostbased_service()"); { GSSAPI__OID_const RETVAL; #line 174 "xs/OID.xs" RETVAL = GSS_C_NT_HOSTBASED_SERVICE; #line 1340 "GSSAPI.c" ST(0) = sv_newmortal(); SvREADONLY_on(sv_setref_iv(ST(0), "GSSAPI::OID", (IV)(void*)RETVAL)); } XSRETURN(1); } /* INCLUDE: Returning to 'GSSAPI.xs' from 'xs/OID.xs' */ /* INCLUDE: Including 'xs/OID__Set.xs' from 'GSSAPI.xs' */ XS(XS_GSSAPI__OID__Set_new); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID__Set_new) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::OID::Set::new(class)"); { char * class = (char *)SvPV_nolen(ST(0)); #line 5 "xs/OID__Set.xs" OM_uint32 minor_status; #line 1366 "GSSAPI.c" GSSAPI__OID__Set_out RETVAL; #line 7 "xs/OID__Set.xs" if (GSS_ERROR(gss_create_empty_oid_set(&minor_status, &RETVAL))) { XSRETURN_UNDEF; } #line 1372 "GSSAPI.c" ST(0) = sv_newmortal(); sv_setref_iv(ST(0), "GSSAPI::OID::Set", (IV)(void*)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__OID__Set_DESTROY); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID__Set_DESTROY) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::OID::Set::DESTROY(oidset)"); { GSSAPI__OID__Set oidset; #line 17 "xs/OID__Set.xs" OM_uint32 minor; #line 1391 "GSSAPI.c" if (sv_derived_from(ST(0), "GSSAPI::OID::Set")) { SV *tmp = SvRV(ST(0)); oidset = (GSSAPI__OID__Set) SvIV(tmp); if (oidset == NULL) { croak("oidset has no value"); } } else { croak("oidset is not of type GSSAPI::OID::Set"); }; #line 19 "xs/OID__Set.xs" if (oidset != 0 && oid_set_is_dynamic(oidset)) { (void)gss_release_oid_set(&minor, &oidset); } #line 1407 "GSSAPI.c" } XSRETURN_EMPTY; } XS(XS_GSSAPI__OID__Set_insert); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID__Set_insert) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::OID::Set::insert(oidset, oid)"); { GSSAPI__OID__Set oidset; GSSAPI__OID oid; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::OID::Set")) { SV *tmp = SvRV(ST(0)); oidset = (GSSAPI__OID__Set) SvIV(tmp); if (oidset == NULL) { croak("oidset has no value"); } } else { croak("oidset is not of type GSSAPI::OID::Set"); }; if (sv_derived_from(ST(1), "GSSAPI::OID")) { SV *tmp = SvRV(ST(1)); oid = (GSSAPI__OID) SvIV(tmp); if (oid == NULL) { croak("oid has no value"); } } else { croak("oid is not of type GSSAPI::OID"); }; #line 28 "xs/OID__Set.xs" if (! oid_set_is_dynamic(oidset)) { croak("oidset is not alterable"); } RETVAL.major = gss_add_oid_set_member(&RETVAL.minor, oid, &oidset); #line 1450 "GSSAPI.c" ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__OID__Set_contains); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__OID__Set_contains) { dXSARGS; if (items != 3) Perl_croak(aTHX_ "Usage: GSSAPI::OID::Set::contains(oidset, oid, isthere)"); { GSSAPI__OID__Set oidset; GSSAPI__OID oid; int isthere = (int)SvIV(ST(2)); GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::OID::Set")) { SV *tmp = SvRV(ST(0)); oidset = (GSSAPI__OID__Set) SvIV(tmp); if (oidset == NULL) { croak("oidset has no value"); } } else { croak("oidset is not of type GSSAPI::OID::Set"); }; if (sv_derived_from(ST(1), "GSSAPI::OID")) { SV *tmp = SvRV(ST(1)); oid = (GSSAPI__OID) SvIV(tmp); if (oid == NULL) { croak("oid has no value"); } } else { croak("oid is not of type GSSAPI::OID"); }; #line 41 "xs/OID__Set.xs" RETVAL.major = gss_test_oid_set_member(&RETVAL.minor, oid, oidset, &isthere); #line 1495 "GSSAPI.c" sv_setiv(ST(2), (IV)isthere); SvSETMAGIC(ST(2)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } /* INCLUDE: Returning to 'GSSAPI.xs' from 'xs/OID__Set.xs' */ /* INCLUDE: Including 'xs/Cred.xs' from 'GSSAPI.xs' */ XS(XS_GSSAPI__Cred_acquire_cred); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Cred_acquire_cred) { dXSARGS; if (items != 7) Perl_croak(aTHX_ "Usage: GSSAPI::Cred::acquire_cred(name, in_time, in_mechs, cred_usage, cred, out_mechs, out_time)"); { GSSAPI__Name_opt name; OM_uint32 in_time = (unsigned long)SvUV(ST(1)); GSSAPI__OID__Set_opt in_mechs; int cred_usage = (int)SvIV(ST(3)); #line 9 "xs/Cred.xs" GSSAPI__Cred cred_real; GSSAPI__OID__Set out_mechs_real; OM_uint32 out_time_real; #line 1527 "GSSAPI.c" GSSAPI__Cred_optout cred; GSSAPI__OID__Set_optout out_mechs; OM_uint32_optout out_time; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { name = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Name")) { SV *tmp = SvRV(ST(0)); name = (GSSAPI__Name_opt) SvIV(tmp); } else { croak("name is not of type GSSAPI::Name"); }; if (!SvOK(ST(2))) { in_mechs = NULL; } else if (sv_derived_from(ST(2), "GSSAPI::OID::Set")) { SV *tmp = SvRV(ST(2)); in_mechs = (GSSAPI__OID__Set_opt) SvIV(tmp); } else { croak("in_mechs is not of type GSSAPI::OID::Set"); }; if (SvREADONLY(ST(4))) { cred = NULL; } else { cred = &cred_real; cred_real = NULL; }; if (SvREADONLY(ST(5))) { out_mechs = NULL; } else { out_mechs = &out_mechs_real; out_mechs_real = NULL; }; if (SvREADONLY(ST(6))) { out_time = NULL; } else { out_time = &out_time_real; out_time_real = 0; }; #line 17 "xs/Cred.xs" RETVAL.major = gss_acquire_cred(&RETVAL.minor, name, in_time, in_mechs, cred_usage, cred, out_mechs, out_time); #line 1581 "GSSAPI.c" if (cred != NULL) { sv_setref_iv(ST(4), "GSSAPI::Cred", (IV)(void*)cred_real); } SvSETMAGIC(ST(4)); if (out_mechs != NULL) { sv_setref_iv(ST(5), "GSSAPI::OID::Set", (IV)(void*)out_mechs_real); } SvSETMAGIC(ST(5)); if (out_time != NULL) { sv_setiv_mg(ST(6), out_time_real); } SvSETMAGIC(ST(6)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Cred_add_cred); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Cred_add_cred) { dXSARGS; if (items != 10) Perl_croak(aTHX_ "Usage: GSSAPI::Cred::add_cred(in_cred, name, in_mech, cred_usage, in_init_time, in_acc_time, out_cred, out_mechs, out_init_time, out_acc_time)"); { GSSAPI__Cred_opt in_cred; GSSAPI__Name name; GSSAPI__OID in_mech; int cred_usage = (int)SvIV(ST(3)); OM_uint32 in_init_time = (unsigned long)SvUV(ST(4)); OM_uint32 in_acc_time = (unsigned long)SvUV(ST(5)); #line 36 "xs/Cred.xs" GSSAPI__Cred out_cred_real; GSSAPI__OID__Set out_mechs_real; OM_uint32 out_init_time_real; OM_uint32 out_acc_time_real; #line 1625 "GSSAPI.c" GSSAPI__Cred_optout out_cred; GSSAPI__OID__Set_optout out_mechs; OM_uint32_optout out_init_time; OM_uint32_optout out_acc_time; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { in_cred = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Cred")) { SV *tmp = SvRV(ST(0)); in_cred = (GSSAPI__Cred_opt) SvIV(tmp); } else { croak("in_cred is not of type GSSAPI::Cred"); }; if (sv_derived_from(ST(1), "GSSAPI::Name")) { SV *tmp = SvRV(ST(1)); name = (GSSAPI__Name) SvIV(tmp); if (name == NULL) { croak("name has no value"); } } else { croak("name is not of type GSSAPI::Name"); }; if (sv_derived_from(ST(2), "GSSAPI::OID")) { SV *tmp = SvRV(ST(2)); in_mech = (GSSAPI__OID) SvIV(tmp); if (in_mech == NULL) { croak("in_mech has no value"); } } else { croak("in_mech is not of type GSSAPI::OID"); }; if (SvREADONLY(ST(6))) { out_cred = NULL; } else { out_cred = &out_cred_real; out_cred_real = NULL; }; if (SvREADONLY(ST(7))) { out_mechs = NULL; } else { out_mechs = &out_mechs_real; out_mechs_real = NULL; }; if (SvREADONLY(ST(8))) { out_init_time = NULL; } else { out_init_time = &out_init_time_real; out_init_time_real = 0; }; if (SvREADONLY(ST(9))) { out_acc_time = NULL; } else { out_acc_time = &out_acc_time_real; out_acc_time_real = 0; }; #line 46 "xs/Cred.xs" RETVAL.major = gss_add_cred(&RETVAL.minor, in_cred, name, in_mech, cred_usage, in_init_time, in_acc_time, out_cred, out_mechs, out_init_time, out_acc_time); #line 1699 "GSSAPI.c" if (out_cred != NULL) { sv_setref_iv(ST(6), "GSSAPI::Cred", (IV)(void*)out_cred_real); } SvSETMAGIC(ST(6)); if (out_mechs != NULL) { sv_setref_iv(ST(7), "GSSAPI::OID::Set", (IV)(void*)out_mechs_real); } SvSETMAGIC(ST(7)); if (out_init_time != NULL) { sv_setiv_mg(ST(8), out_init_time_real); } SvSETMAGIC(ST(8)); if (out_acc_time != NULL) { sv_setiv_mg(ST(9), out_acc_time_real); } SvSETMAGIC(ST(9)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Cred_inquire_cred); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Cred_inquire_cred) { dXSARGS; if (items != 5) Perl_croak(aTHX_ "Usage: GSSAPI::Cred::inquire_cred(cred, name, lifetime, cred_usage, mechs)"); { GSSAPI__Cred_opt cred; #line 61 "xs/Cred.xs" GSSAPI__Name name_real; OM_uint32 lifetime_real; gss_cred_usage_t cred_usage_real; GSSAPI__OID__Set mechs_real; #line 1743 "GSSAPI.c" GSSAPI__Name_optout name; OM_uint32_optout lifetime; gss_cred_usage_t_optout cred_usage; GSSAPI__OID__Set_optout mechs; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { cred = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Cred")) { SV *tmp = SvRV(ST(0)); cred = (GSSAPI__Cred_opt) SvIV(tmp); } else { croak("cred is not of type GSSAPI::Cred"); }; if (SvREADONLY(ST(1))) { name = NULL; } else { name = &name_real; name_real = NULL; }; if (SvREADONLY(ST(2))) { lifetime = NULL; } else { lifetime = &lifetime_real; lifetime_real = 0; }; if (SvREADONLY(ST(3))) { cred_usage = NULL; } else { cred_usage = &cred_usage_real; cred_usage_real = 0; }; if (SvREADONLY(ST(4))) { mechs = NULL; } else { mechs = &mechs_real; mechs_real = NULL; }; #line 71 "xs/Cred.xs" RETVAL.major = gss_inquire_cred(&RETVAL.minor, cred, name, lifetime, cred_usage, mechs); #line 1793 "GSSAPI.c" if (name != NULL) { sv_setref_iv(ST(1), "GSSAPI::Name", (IV)(void*)name_real); } SvSETMAGIC(ST(1)); if (lifetime != NULL) { sv_setiv_mg(ST(2), lifetime_real); } SvSETMAGIC(ST(2)); if (cred_usage != NULL) { sv_setiv_mg(ST(3), cred_usage_real); } SvSETMAGIC(ST(3)); if (mechs != NULL) { sv_setref_iv(ST(4), "GSSAPI::OID::Set", (IV)(void*)mechs_real); } SvSETMAGIC(ST(4)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Cred_inquire_cred_by_mech); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Cred_inquire_cred_by_mech) { dXSARGS; if (items != 6) Perl_croak(aTHX_ "Usage: GSSAPI::Cred::inquire_cred_by_mech(cred, mech, name, init_lifetime, acc_lifetime, cred_usage)"); { GSSAPI__Cred_opt cred; GSSAPI__OID mech; #line 85 "xs/Cred.xs" GSSAPI__Name name_real; OM_uint32 init_lifetime_real; OM_uint32 acc_lifetime_real; gss_cred_usage_t cred_usage_real; #line 1838 "GSSAPI.c" GSSAPI__Name_optout name; OM_uint32_optout init_lifetime; OM_uint32_optout acc_lifetime; gss_cred_usage_t_optout cred_usage; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { cred = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Cred")) { SV *tmp = SvRV(ST(0)); cred = (GSSAPI__Cred_opt) SvIV(tmp); } else { croak("cred is not of type GSSAPI::Cred"); }; if (sv_derived_from(ST(1), "GSSAPI::OID")) { SV *tmp = SvRV(ST(1)); mech = (GSSAPI__OID) SvIV(tmp); if (mech == NULL) { croak("mech has no value"); } } else { croak("mech is not of type GSSAPI::OID"); }; if (SvREADONLY(ST(2))) { name = NULL; } else { name = &name_real; name_real = NULL; }; if (SvREADONLY(ST(3))) { init_lifetime = NULL; } else { init_lifetime = &init_lifetime_real; init_lifetime_real = 0; }; if (SvREADONLY(ST(4))) { acc_lifetime = NULL; } else { acc_lifetime = &acc_lifetime_real; acc_lifetime_real = 0; }; if (SvREADONLY(ST(5))) { cred_usage = NULL; } else { cred_usage = &cred_usage_real; cred_usage_real = 0; }; #line 95 "xs/Cred.xs" RETVAL.major = gss_inquire_cred_by_mech(&RETVAL.minor, cred, mech, name, init_lifetime, acc_lifetime, cred_usage); #line 1899 "GSSAPI.c" if (name != NULL) { sv_setref_iv(ST(2), "GSSAPI::Name", (IV)(void*)name_real); } SvSETMAGIC(ST(2)); if (init_lifetime != NULL) { sv_setiv_mg(ST(3), init_lifetime_real); } SvSETMAGIC(ST(3)); if (acc_lifetime != NULL) { sv_setiv_mg(ST(4), acc_lifetime_real); } SvSETMAGIC(ST(4)); if (cred_usage != NULL) { sv_setiv_mg(ST(5), cred_usage_real); } SvSETMAGIC(ST(5)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Cred_DESTROY); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Cred_DESTROY) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Cred::DESTROY(cred)"); { GSSAPI__Cred_opt cred; #line 112 "xs/Cred.xs" OM_uint32 minor; OM_uint32 major; #line 1940 "GSSAPI.c" if (!SvOK(ST(0))) { cred = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Cred")) { SV *tmp = SvRV(ST(0)); cred = (GSSAPI__Cred_opt) SvIV(tmp); } else { croak("cred is not of type GSSAPI::Cred"); }; #line 115 "xs/Cred.xs" if (cred != NULL) { major = gss_release_cred(&minor, &cred); if ( major != GSS_S_COMPLETE) { warn("failed gss_release_cred() module Cred.xs"); } } #line 1959 "GSSAPI.c" } XSRETURN_EMPTY; } /* INCLUDE: Returning to 'GSSAPI.xs' from 'xs/Cred.xs' */ /* INCLUDE: Including 'xs/Binding.xs' from 'GSSAPI.xs' */ XS(XS_GSSAPI__Binding_new); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Binding_new) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Binding::new(class)"); { char * class = (char *)SvPV_nolen(ST(0)); GSSAPI__Binding_out RETVAL; #line 6 "xs/Binding.xs" New(0, RETVAL, 1, struct gss_channel_bindings_struct); RETVAL->initiator_addrtype = GSS_C_AF_NULLADDR; RETVAL->initiator_address.length = 0; RETVAL->initiator_address.value = NULL; RETVAL->acceptor_addrtype = GSS_C_AF_NULLADDR; RETVAL->acceptor_address.length = 0; RETVAL->acceptor_address.value = NULL; RETVAL->application_data.length = 0; RETVAL->application_data.value = NULL; #line 1990 "GSSAPI.c" ST(0) = sv_newmortal(); sv_setref_iv(ST(0), "GSSAPI::Binding", (IV)(void*)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Binding_DESTROY); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Binding_DESTROY) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Binding::DESTROY(self)"); { GSSAPI__Binding self; if (sv_derived_from(ST(0), "GSSAPI::Binding")) { SV *tmp = SvRV(ST(0)); self = (GSSAPI__Binding) SvIV(tmp); if (self == NULL) { croak("self has no value"); } } else { croak("self is not of type GSSAPI::Binding"); }; #line 22 "xs/Binding.xs" if (self->initiator_address.value) Safefree(self->initiator_address.value); if (self->acceptor_address.value) Safefree(self->acceptor_address.value); if (self->application_data.value) Safefree(self->application_data.value); Safefree(self); #line 2026 "GSSAPI.c" } XSRETURN_EMPTY; } XS(XS_GSSAPI__Binding_set_initiator); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Binding_set_initiator) { dXSARGS; if (items != 3) Perl_croak(aTHX_ "Usage: GSSAPI::Binding::set_initiator(self, addrtype, address)"); { GSSAPI__Binding self; OM_uint32 addrtype = (unsigned long)SvUV(ST(1)); gss_buffer_desc_copy address; if (sv_derived_from(ST(0), "GSSAPI::Binding")) { SV *tmp = SvRV(ST(0)); self = (GSSAPI__Binding) SvIV(tmp); if (self == NULL) { croak("self has no value"); } } else { croak("self is not of type GSSAPI::Binding"); }; if (!SvOK(ST(2))) { address.length = 0; address.value = NULL; } else { void *p = SvPV(ST(2), address.length); New(0, address.value, address.length, char); Copy(p, address.value, address.length, char); }; #line 36 "xs/Binding.xs" if (self->initiator_address.value) Safefree(self->initiator_address.value); self->initiator_addrtype = addrtype; self->initiator_address.length = address.length; self->initiator_address.value = address.value; #line 2068 "GSSAPI.c" } XSRETURN_EMPTY; } XS(XS_GSSAPI__Binding_set_acceptor); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Binding_set_acceptor) { dXSARGS; if (items != 3) Perl_croak(aTHX_ "Usage: GSSAPI::Binding::set_acceptor(self, addrtype, address)"); { GSSAPI__Binding self; OM_uint32 addrtype = (unsigned long)SvUV(ST(1)); gss_buffer_desc_copy address; if (sv_derived_from(ST(0), "GSSAPI::Binding")) { SV *tmp = SvRV(ST(0)); self = (GSSAPI__Binding) SvIV(tmp); if (self == NULL) { croak("self has no value"); } } else { croak("self is not of type GSSAPI::Binding"); }; if (!SvOK(ST(2))) { address.length = 0; address.value = NULL; } else { void *p = SvPV(ST(2), address.length); New(0, address.value, address.length, char); Copy(p, address.value, address.length, char); }; #line 48 "xs/Binding.xs" if (self->acceptor_address.value) Safefree(self->acceptor_address.value); self->acceptor_addrtype = addrtype; self->acceptor_address.length = address.length; self->acceptor_address.value = address.value; #line 2110 "GSSAPI.c" } XSRETURN_EMPTY; } XS(XS_GSSAPI__Binding_set_appl_data); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Binding_set_appl_data) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::Binding::set_appl_data(self, data)"); { GSSAPI__Binding self; gss_buffer_desc_copy data; if (sv_derived_from(ST(0), "GSSAPI::Binding")) { SV *tmp = SvRV(ST(0)); self = (GSSAPI__Binding) SvIV(tmp); if (self == NULL) { croak("self has no value"); } } else { croak("self is not of type GSSAPI::Binding"); }; if (!SvOK(ST(1))) { data.length = 0; data.value = NULL; } else { void *p = SvPV(ST(1), data.length); New(0, data.value, data.length, char); Copy(p, data.value, data.length, char); }; #line 59 "xs/Binding.xs" if (self->application_data.value) Safefree(self->application_data.value); self->application_data.length = data.length; self->application_data.value = data.value; #line 2150 "GSSAPI.c" } XSRETURN_EMPTY; } XS(XS_GSSAPI__Binding_get_initiator_addrtype); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Binding_get_initiator_addrtype) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Binding::get_initiator_addrtype(self)"); { GSSAPI__Binding self; OM_uint32 RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GSSAPI::Binding")) { SV *tmp = SvRV(ST(0)); self = (GSSAPI__Binding) SvIV(tmp); if (self == NULL) { croak("self has no value"); } } else { croak("self is not of type GSSAPI::Binding"); }; #line 68 "xs/Binding.xs" RETVAL = self->initiator_addrtype; #line 2179 "GSSAPI.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Binding_get_initiator_address); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Binding_get_initiator_address) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Binding::get_initiator_address(self)"); { GSSAPI__Binding self; gss_buffer_desc_copy RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Binding")) { SV *tmp = SvRV(ST(0)); self = (GSSAPI__Binding) SvIV(tmp); if (self == NULL) { croak("self has no value"); } } else { croak("self is not of type GSSAPI::Binding"); }; #line 76 "xs/Binding.xs" RETVAL.length = self->initiator_address.length; RETVAL.value = self->initiator_address.value; #line 2209 "GSSAPI.c" ST(0) = sv_newmortal(); if (SvREADONLY(ST(0))) { } else if (RETVAL.value != NULL) { sv_setpvn_mg(ST(0), RETVAL.value, RETVAL.length); } else { sv_setsv_mg(ST(0), &PL_sv_undef); } } XSRETURN(1); } XS(XS_GSSAPI__Binding_get_acceptor_addrtype); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Binding_get_acceptor_addrtype) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Binding::get_acceptor_addrtype(self)"); { GSSAPI__Binding self; OM_uint32 RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GSSAPI::Binding")) { SV *tmp = SvRV(ST(0)); self = (GSSAPI__Binding) SvIV(tmp); if (self == NULL) { croak("self has no value"); } } else { croak("self is not of type GSSAPI::Binding"); }; #line 85 "xs/Binding.xs" RETVAL = self->acceptor_addrtype; #line 2246 "GSSAPI.c" XSprePUSH; PUSHu((UV)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Binding_get_acceptor_address); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Binding_get_acceptor_address) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Binding::get_acceptor_address(self)"); { GSSAPI__Binding self; gss_buffer_desc_copy RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Binding")) { SV *tmp = SvRV(ST(0)); self = (GSSAPI__Binding) SvIV(tmp); if (self == NULL) { croak("self has no value"); } } else { croak("self is not of type GSSAPI::Binding"); }; #line 93 "xs/Binding.xs" RETVAL.length = self->acceptor_address.length; RETVAL.value = self->acceptor_address.value; #line 2276 "GSSAPI.c" ST(0) = sv_newmortal(); if (SvREADONLY(ST(0))) { } else if (RETVAL.value != NULL) { sv_setpvn_mg(ST(0), RETVAL.value, RETVAL.length); } else { sv_setsv_mg(ST(0), &PL_sv_undef); } } XSRETURN(1); } XS(XS_GSSAPI__Binding_get_appl_data); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Binding_get_appl_data) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Binding::get_appl_data(self)"); { GSSAPI__Binding self; gss_buffer_desc_copy RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Binding")) { SV *tmp = SvRV(ST(0)); self = (GSSAPI__Binding) SvIV(tmp); if (self == NULL) { croak("self has no value"); } } else { croak("self is not of type GSSAPI::Binding"); }; #line 102 "xs/Binding.xs" RETVAL.length = self->application_data.length; RETVAL.value = self->application_data.value; #line 2313 "GSSAPI.c" ST(0) = sv_newmortal(); if (SvREADONLY(ST(0))) { } else if (RETVAL.value != NULL) { sv_setpvn_mg(ST(0), RETVAL.value, RETVAL.length); } else { sv_setsv_mg(ST(0), &PL_sv_undef); } } XSRETURN(1); } /* INCLUDE: Returning to 'GSSAPI.xs' from 'xs/Binding.xs' */ /* INCLUDE: Including 'xs/Context.xs' from 'GSSAPI.xs' */ XS(XS_GSSAPI__Context_new); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_new) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Context::new(class)"); { char * class = (char *)SvPV_nolen(ST(0)); GSSAPI__Context_out RETVAL; #line 6 "xs/Context.xs" RETVAL = 0; #line 2344 "GSSAPI.c" ST(0) = sv_newmortal(); sv_setref_iv(ST(0), "GSSAPI::Context", (IV)(void*)RETVAL); } XSRETURN(1); } XS(XS_GSSAPI__Context_DESTROY); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_DESTROY) { dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: GSSAPI::Context::DESTROY(context)"); { GSSAPI__Context_opt context; #line 14 "xs/Context.xs" OM_uint32 minor; OM_uint32 major; #line 2364 "GSSAPI.c" if (!SvOK(ST(0))) { context = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context_opt) SvIV(tmp); } else { croak("context is not of type GSSAPI::Context"); }; #line 17 "xs/Context.xs" if (context != NULL) { major = gss_delete_sec_context(&minor, &context, GSS_C_NO_BUFFER); if ( major == GSS_S_FAILURE) { warn("failed gss_delete_sec_context(), GSS_S_FAILURE, module Context.xs"); } } #line 2384 "GSSAPI.c" } XSRETURN_EMPTY; } XS(XS_GSSAPI__Context_init); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_init) { dXSARGS; if (items != 12) Perl_croak(aTHX_ "Usage: GSSAPI::Context::init(context, cred, name, in_mech, in_flags, in_time, binding, in_token, out_mech, out_token, out_flags, out_time)"); { GSSAPI__Context_opt context; GSSAPI__Cred_opt cred; GSSAPI__Name name; GSSAPI__OID_opt in_mech; OM_uint32 in_flags = (unsigned long)SvUV(ST(4)); OM_uint32 in_time = (unsigned long)SvUV(ST(5)); GSSAPI__Binding_opt binding; gss_buffer_desc in_token; #line 36 "xs/Context.xs" GSSAPI__OID out_mech_real; OM_uint32 out_flags_real; OM_uint32 out_time_real; #line 2409 "GSSAPI.c" GSSAPI__OID_optout out_mech; gss_buffer_desc_out out_token; OM_uint32_optout out_flags; OM_uint32_optout out_time; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { context = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context_opt) SvIV(tmp); } else { croak("context is not of type GSSAPI::Context"); }; if (!SvOK(ST(1))) { cred = NULL; } else if (sv_derived_from(ST(1), "GSSAPI::Cred")) { SV *tmp = SvRV(ST(1)); cred = (GSSAPI__Cred_opt) SvIV(tmp); } else { croak("cred is not of type GSSAPI::Cred"); }; if (sv_derived_from(ST(2), "GSSAPI::Name")) { SV *tmp = SvRV(ST(2)); name = (GSSAPI__Name) SvIV(tmp); if (name == NULL) { croak("name has no value"); } } else { croak("name is not of type GSSAPI::Name"); }; if (!SvOK(ST(3))) { in_mech = NULL; } else if (sv_derived_from(ST(3), "GSSAPI::OID")) { SV *tmp = SvRV(ST(3)); in_mech = (GSSAPI__OID_opt) SvIV(tmp); } else { croak("in_mech is not of type GSSAPI::OID"); }; if (!SvOK(ST(6))) { binding = NULL; } else if (sv_derived_from(ST(6), "GSSAPI::Binding")) { SV *tmp = SvRV(ST(6)); binding = (GSSAPI__Binding_opt) SvIV(tmp); } else { croak("binding is not of type GSSAPI::Binding"); }; in_token.value = SvPV(ST(7), in_token.length); if (SvREADONLY(ST(8))) { out_mech = NULL; } else { out_mech = &out_mech_real; out_mech_real = NULL; }; out_token.length = 0; out_token.value = NULL; if (SvREADONLY(ST(10))) { out_flags = NULL; } else { out_flags = &out_flags_real; out_flags_real = 0; }; if (SvREADONLY(ST(11))) { out_time = NULL; } else { out_time = &out_time_real; out_time_real = 0; }; #line 45 "xs/Context.xs" RETVAL.major = gss_init_sec_context(&RETVAL.minor, cred, &context, name, in_mech, in_flags, in_time, binding, &in_token, out_mech, &out_token, out_flags, out_time); #line 2503 "GSSAPI.c" if (!SvOK(ST(0))) { sv_setref_iv(ST(0), "GSSAPI::Context", (IV)(void*)context); } else { SV *tmp = SvRV(ST(0)); if ((IV)(void*)context != SvIV(tmp)) { sv_setref_iv(ST(0), "GSSAPI::Context", (IV)(void*)context); } } SvSETMAGIC(ST(0)); if (out_mech != NULL) { sv_setref_iv(ST(8), "GSSAPI::OID", (IV)(void*)out_mech_real); } SvSETMAGIC(ST(8)); if (SvREADONLY(ST(9))) { } else if (out_token.value != NULL) { sv_setpvn_mg(ST(9), out_token.value, out_token.length); } else { sv_setsv_mg(ST(9), &PL_sv_undef); } { OM_uint32 minor; gss_release_buffer(&minor, &out_token); } SvSETMAGIC(ST(9)); if (out_flags != NULL) { sv_setiv_mg(ST(10), out_flags_real); } SvSETMAGIC(ST(10)); if (out_time != NULL) { sv_setiv_mg(ST(11), out_time_real); } SvSETMAGIC(ST(11)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_accept); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_accept) { dXSARGS; if (items != 10) Perl_croak(aTHX_ "Usage: GSSAPI::Context::accept(context, acc_cred, in_token, binding, out_name, out_mech, out_token, out_flags, out_time, delegated_cred)"); { GSSAPI__Context_opt context; GSSAPI__Cred_opt acc_cred; gss_buffer_desc in_token; GSSAPI__Binding_opt binding; #line 65 "xs/Context.xs" GSSAPI__Name out_name_real; GSSAPI__OID out_mech_real; OM_uint32 out_flags_real; OM_uint32 out_time_real; GSSAPI__Cred delegated_cred_real; #line 2570 "GSSAPI.c" GSSAPI__Name_optout out_name; GSSAPI__OID_optout out_mech; gss_buffer_desc_out out_token; OM_uint32_optout out_flags; OM_uint32_optout out_time; GSSAPI__Cred_optout delegated_cred; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { context = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context_opt) SvIV(tmp); } else { croak("context is not of type GSSAPI::Context"); }; if (!SvOK(ST(1))) { acc_cred = NULL; } else if (sv_derived_from(ST(1), "GSSAPI::Cred")) { SV *tmp = SvRV(ST(1)); acc_cred = (GSSAPI__Cred_opt) SvIV(tmp); } else { croak("acc_cred is not of type GSSAPI::Cred"); }; in_token.value = SvPV(ST(2), in_token.length); if (!SvOK(ST(3))) { binding = NULL; } else if (sv_derived_from(ST(3), "GSSAPI::Binding")) { SV *tmp = SvRV(ST(3)); binding = (GSSAPI__Binding_opt) SvIV(tmp); } else { croak("binding is not of type GSSAPI::Binding"); }; if (SvREADONLY(ST(4))) { out_name = NULL; } else { out_name = &out_name_real; out_name_real = NULL; }; if (SvREADONLY(ST(5))) { out_mech = NULL; } else { out_mech = &out_mech_real; out_mech_real = NULL; }; out_token.length = 0; out_token.value = NULL; if (SvREADONLY(ST(7))) { out_flags = NULL; } else { out_flags = &out_flags_real; out_flags_real = 0; }; if (SvREADONLY(ST(8))) { out_time = NULL; } else { out_time = &out_time_real; out_time_real = 0; }; if (SvREADONLY(ST(9))) { delegated_cred = NULL; } else { delegated_cred = &delegated_cred_real; delegated_cred_real = NULL; }; #line 78 "xs/Context.xs" RETVAL.major = gss_accept_sec_context(&RETVAL.minor, &context, acc_cred, &in_token, binding, out_name, out_mech, &out_token, out_flags, out_time, delegated_cred); #line 2660 "GSSAPI.c" if (!SvOK(ST(0))) { sv_setref_iv(ST(0), "GSSAPI::Context", (IV)(void*)context); } else { SV *tmp = SvRV(ST(0)); if ((IV)(void*)context != SvIV(tmp)) { sv_setref_iv(ST(0), "GSSAPI::Context", (IV)(void*)context); } } SvSETMAGIC(ST(0)); if (out_name != NULL) { sv_setref_iv(ST(4), "GSSAPI::Name", (IV)(void*)out_name_real); } SvSETMAGIC(ST(4)); if (out_mech != NULL) { sv_setref_iv(ST(5), "GSSAPI::OID", (IV)(void*)out_mech_real); } SvSETMAGIC(ST(5)); if (SvREADONLY(ST(6))) { } else if (out_token.value != NULL) { sv_setpvn_mg(ST(6), out_token.value, out_token.length); } else { sv_setsv_mg(ST(6), &PL_sv_undef); } { OM_uint32 minor; gss_release_buffer(&minor, &out_token); } SvSETMAGIC(ST(6)); if (out_flags != NULL) { sv_setiv_mg(ST(7), out_flags_real); } SvSETMAGIC(ST(7)); if (out_time != NULL) { sv_setiv_mg(ST(8), out_time_real); } SvSETMAGIC(ST(8)); if (delegated_cred != NULL) { sv_setref_iv(ST(9), "GSSAPI::Cred", (IV)(void*)delegated_cred_real); } SvSETMAGIC(ST(9)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_delete); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_delete) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::Context::delete(context, out_token)"); { GSSAPI__Context_opt context; gss_buffer_desc_out out_token; GSSAPI__Status RETVAL; if (!SvOK(ST(0))) { context = NULL; } else if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context_opt) SvIV(tmp); } else { croak("context is not of type GSSAPI::Context"); }; out_token.length = 0; out_token.value = NULL; #line 98 "xs/Context.xs" if (context != NULL) { RETVAL.major = gss_delete_sec_context(&RETVAL.minor, &context, &out_token); } else { RETVAL.major = GSS_S_COMPLETE; RETVAL.minor = 0; } #line 2754 "GSSAPI.c" if (!SvOK(ST(0))) { sv_setref_iv(ST(0), "GSSAPI::Context", (IV)(void*)context); } else { SV *tmp = SvRV(ST(0)); if ((IV)(void*)context != SvIV(tmp)) { sv_setref_iv(ST(0), "GSSAPI::Context", (IV)(void*)context); } } SvSETMAGIC(ST(0)); if (SvREADONLY(ST(1))) { } else if (out_token.value != NULL) { sv_setpvn_mg(ST(1), out_token.value, out_token.length); } else { sv_setsv_mg(ST(1), &PL_sv_undef); } { OM_uint32 minor; gss_release_buffer(&minor, &out_token); } SvSETMAGIC(ST(1)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_process_token); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_process_token) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::Context::process_token(context, token)"); { GSSAPI__Context context; gss_buffer_desc token; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context) SvIV(tmp); if (context == NULL) { croak("context has no value"); } } else { croak("context is not of type GSSAPI::Context"); }; token.value = SvPV(ST(1), token.length); #line 115 "xs/Context.xs" RETVAL.major = gss_process_context_token(&RETVAL.minor, context, &token); #line 2814 "GSSAPI.c" ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_valid_time_left); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_valid_time_left) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::Context::valid_time_left(context, out_time)"); { GSSAPI__Context context; #line 124 "xs/Context.xs" OM_uint32 out_time_real; #line 2833 "GSSAPI.c" OM_uint32_optout out_time; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context) SvIV(tmp); if (context == NULL) { croak("context has no value"); } } else { croak("context is not of type GSSAPI::Context"); }; if (SvREADONLY(ST(1))) { out_time = NULL; } else { out_time = &out_time_real; out_time_real = 0; }; #line 128 "xs/Context.xs" RETVAL.major = gss_context_time(&RETVAL.minor, context, out_time); #line 2856 "GSSAPI.c" if (out_time != NULL) { sv_setiv_mg(ST(1), out_time_real); } SvSETMAGIC(ST(1)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_wrap_size_limit); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_wrap_size_limit) { dXSARGS; if (items != 5) Perl_croak(aTHX_ "Usage: GSSAPI::Context::wrap_size_limit(context, flags, qop, req_output_size, max_input_size)"); { GSSAPI__Context context; OM_uint32 flags = (unsigned long)SvUV(ST(1)); OM_uint32 qop = (unsigned long)SvUV(ST(2)); OM_uint32 req_output_size = (unsigned long)SvUV(ST(3)); #line 140 "xs/Context.xs" OM_uint32 max_input_size_real; #line 2883 "GSSAPI.c" OM_uint32_optout max_input_size; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context) SvIV(tmp); if (context == NULL) { croak("context has no value"); } } else { croak("context is not of type GSSAPI::Context"); }; if (SvREADONLY(ST(4))) { max_input_size = NULL; } else { max_input_size = &max_input_size_real; max_input_size_real = 0; }; #line 144 "xs/Context.xs" RETVAL.major = gss_wrap_size_limit(&RETVAL.minor, context, flags, qop, req_output_size, max_input_size); #line 2908 "GSSAPI.c" if (max_input_size != NULL) { sv_setiv_mg(ST(4), max_input_size_real); } SvSETMAGIC(ST(4)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_inquire); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_inquire) { dXSARGS; if (items != 8) Perl_croak(aTHX_ "Usage: GSSAPI::Context::inquire(context, src_name, targ_name, lifetime, mech, flags, locally_initiated, open)"); { GSSAPI__Context context; #line 156 "xs/Context.xs" GSSAPI__Name src_name_real; GSSAPI__Name targ_name_real; OM_uint32 lifetime_real; GSSAPI__OID mech_real; OM_uint32 flags_real; int locally_initiated_real; int open_real; #line 2938 "GSSAPI.c" GSSAPI__Name_optout src_name; GSSAPI__Name_optout targ_name; OM_uint32_optout lifetime; GSSAPI__OID_optout mech; OM_uint32_optout flags; int_optout locally_initiated; int_optout open; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context) SvIV(tmp); if (context == NULL) { croak("context has no value"); } } else { croak("context is not of type GSSAPI::Context"); }; if (SvREADONLY(ST(1))) { src_name = NULL; } else { src_name = &src_name_real; src_name_real = NULL; }; if (SvREADONLY(ST(2))) { targ_name = NULL; } else { targ_name = &targ_name_real; targ_name_real = NULL; }; if (SvREADONLY(ST(3))) { lifetime = NULL; } else { lifetime = &lifetime_real; lifetime_real = 0; }; if (SvREADONLY(ST(4))) { mech = NULL; } else { mech = &mech_real; mech_real = NULL; }; if (SvREADONLY(ST(5))) { flags = NULL; } else { flags = &flags_real; flags_real = 0; }; if (SvREADONLY(ST(6))) { locally_initiated = NULL; } else { locally_initiated = &locally_initiated_real; locally_initiated_real = 0; }; if (SvREADONLY(ST(7))) { open = NULL; } else { open = &open_real; open_real = 0; }; #line 172 "xs/Context.xs" RETVAL.major = gss_inquire_context(&RETVAL.minor, context, src_name, targ_name, lifetime, mech, flags, locally_initiated, open); #line 3015 "GSSAPI.c" if (src_name != NULL) { sv_setref_iv(ST(1), "GSSAPI::Name", (IV)(void*)src_name_real); } SvSETMAGIC(ST(1)); if (targ_name != NULL) { sv_setref_iv(ST(2), "GSSAPI::Name", (IV)(void*)targ_name_real); } SvSETMAGIC(ST(2)); if (lifetime != NULL) { sv_setiv_mg(ST(3), lifetime_real); } SvSETMAGIC(ST(3)); if (mech != NULL) { sv_setref_iv(ST(4), "GSSAPI::OID", (IV)(void*)mech_real); } SvSETMAGIC(ST(4)); if (flags != NULL) { sv_setiv_mg(ST(5), flags_real); } SvSETMAGIC(ST(5)); if (locally_initiated != NULL) { sv_setiv_mg(ST(6), locally_initiated_real); } SvSETMAGIC(ST(6)); if (open != NULL) { sv_setiv_mg(ST(7), open_real); } SvSETMAGIC(ST(7)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_export); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_export) { dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: GSSAPI::Context::export(context, token)"); { GSSAPI__Context context; gss_buffer_desc_out token; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context) SvIV(tmp); if (context == NULL) { croak("context has no value"); } } else { croak("context is not of type GSSAPI::Context"); }; token.length = 0; token.value = NULL; #line 191 "xs/Context.xs" RETVAL.major = gss_export_sec_context(&RETVAL.minor, &context, &token); #line 3088 "GSSAPI.c" { SV *tmp = SvRV(ST(0)); if ((IV)(void*)context != SvIV(tmp)) { sv_setref_iv(ST(0), "GSSAPI::Context", (IV)(void*)context); } } SvSETMAGIC(ST(0)); if (SvREADONLY(ST(1))) { } else if (token.value != NULL) { sv_setpvn_mg(ST(1), token.value, token.length); } else { sv_setsv_mg(ST(1), &PL_sv_undef); } { OM_uint32 minor; gss_release_buffer(&minor, &token); } SvSETMAGIC(ST(1)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_import); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_import) { dXSARGS; if (items != 3) Perl_croak(aTHX_ "Usage: GSSAPI::Context::import(class, context, token)"); { char * class = (char *)SvPV_nolen(ST(0)); GSSAPI__Context_out context; gss_buffer_desc token; GSSAPI__Status RETVAL; if (SvREADONLY(ST(1))) { croak("Modification of a read-only value attempted, context"); } context = NULL; token.value = SvPV(ST(2), token.length); #line 203 "xs/Context.xs" RETVAL.major = gss_import_sec_context(&RETVAL.minor, &token, &context); #line 3137 "GSSAPI.c" sv_setref_iv(ST(1), "GSSAPI::Context", (IV)(void*)context); SvSETMAGIC(ST(1)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_get_mic); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_get_mic) { dXSARGS; if (items != 4) Perl_croak(aTHX_ "Usage: GSSAPI::Context::get_mic(context, qop, buffer, token)"); { GSSAPI__Context context; OM_uint32 qop = (unsigned long)SvUV(ST(1)); gss_buffer_desc buffer; gss_buffer_desc_out token; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context) SvIV(tmp); if (context == NULL) { croak("context has no value"); } } else { croak("context is not of type GSSAPI::Context"); }; buffer.value = SvPV(ST(2), buffer.length); token.length = 0; token.value = NULL; #line 215 "xs/Context.xs" RETVAL.major = gss_get_mic(&RETVAL.minor, context, qop, &buffer, &token); #line 3180 "GSSAPI.c" if (SvREADONLY(ST(3))) { } else if (token.value != NULL) { sv_setpvn_mg(ST(3), token.value, token.length); } else { sv_setsv_mg(ST(3), &PL_sv_undef); } { OM_uint32 minor; gss_release_buffer(&minor, &token); } SvSETMAGIC(ST(3)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_verify_mic); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_verify_mic) { dXSARGS; if (items != 4) Perl_croak(aTHX_ "Usage: GSSAPI::Context::verify_mic(context, buffer, token, qop)"); { GSSAPI__Context context; gss_buffer_desc buffer; gss_buffer_desc token; #line 227 "xs/Context.xs" OM_uint32 qop_real; #line 3213 "GSSAPI.c" OM_uint32_optout qop; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context) SvIV(tmp); if (context == NULL) { croak("context has no value"); } } else { croak("context is not of type GSSAPI::Context"); }; buffer.value = SvPV(ST(1), buffer.length); token.value = SvPV(ST(2), token.length); if (SvREADONLY(ST(3))) { qop = NULL; } else { qop = &qop_real; qop_real = 0; }; #line 231 "xs/Context.xs" RETVAL.major = gss_verify_mic(&RETVAL.minor, context, &buffer, &token, qop); #line 3241 "GSSAPI.c" if (qop != NULL) { sv_setiv_mg(ST(3), qop_real); } SvSETMAGIC(ST(3)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_wrap); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_wrap) { dXSARGS; if (items != 6) Perl_croak(aTHX_ "Usage: GSSAPI::Context::wrap(context, conf_flag, qop, in_buffer, conf_state, out_buffer)"); { GSSAPI__Context context; int conf_flag = (int)SvIV(ST(1)); OM_uint32 qop = (unsigned long)SvUV(ST(2)); gss_buffer_desc in_buffer; #line 244 "xs/Context.xs" int conf_state_real; #line 3268 "GSSAPI.c" int_optout conf_state; gss_buffer_desc_out out_buffer; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context) SvIV(tmp); if (context == NULL) { croak("context has no value"); } } else { croak("context is not of type GSSAPI::Context"); }; in_buffer.value = SvPV(ST(3), in_buffer.length); if (SvREADONLY(ST(4))) { conf_state = NULL; } else { conf_state = &conf_state_real; conf_state_real = 0; }; out_buffer.length = 0; out_buffer.value = NULL; #line 249 "xs/Context.xs" RETVAL.major = gss_wrap(&RETVAL.minor, context, conf_flag, qop, &in_buffer, conf_state, &out_buffer); #line 3298 "GSSAPI.c" if (conf_state != NULL) { sv_setiv_mg(ST(4), conf_state_real); } SvSETMAGIC(ST(4)); if (SvREADONLY(ST(5))) { } else if (out_buffer.value != NULL) { sv_setpvn_mg(ST(5), out_buffer.value, out_buffer.length); } else { sv_setsv_mg(ST(5), &PL_sv_undef); } { OM_uint32 minor; gss_release_buffer(&minor, &out_buffer); } SvSETMAGIC(ST(5)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } XS(XS_GSSAPI__Context_unwrap); /* prototype to pass -Wmissing-prototypes */ XS(XS_GSSAPI__Context_unwrap) { dXSARGS; if (items != 5) Perl_croak(aTHX_ "Usage: GSSAPI::Context::unwrap(context, in_buffer, out_buffer, conf_state, qop)"); { GSSAPI__Context context; gss_buffer_desc in_buffer; gss_buffer_desc_out out_buffer; #line 262 "xs/Context.xs" int conf_state_real; OM_uint32 qop_real; #line 3337 "GSSAPI.c" int_optout conf_state; OM_uint32_optout qop; GSSAPI__Status RETVAL; if (sv_derived_from(ST(0), "GSSAPI::Context")) { SV *tmp = SvRV(ST(0)); context = (GSSAPI__Context) SvIV(tmp); if (context == NULL) { croak("context has no value"); } } else { croak("context is not of type GSSAPI::Context"); }; in_buffer.value = SvPV(ST(1), in_buffer.length); out_buffer.length = 0; out_buffer.value = NULL; if (SvREADONLY(ST(3))) { conf_state = NULL; } else { conf_state = &conf_state_real; conf_state_real = 0; }; if (SvREADONLY(ST(4))) { qop = NULL; } else { qop = &qop_real; qop_real = 0; }; #line 268 "xs/Context.xs" RETVAL.major = gss_unwrap(&RETVAL.minor, context, &in_buffer, &out_buffer, conf_state, qop); #line 3374 "GSSAPI.c" if (SvREADONLY(ST(2))) { } else if (out_buffer.value != NULL) { sv_setpvn_mg(ST(2), out_buffer.value, out_buffer.length); } else { sv_setsv_mg(ST(2), &PL_sv_undef); } { OM_uint32 minor; gss_release_buffer(&minor, &out_buffer); } SvSETMAGIC(ST(2)); if (conf_state != NULL) { sv_setiv_mg(ST(3), conf_state_real); } SvSETMAGIC(ST(3)); if (qop != NULL) { sv_setiv_mg(ST(4), qop_real); } SvSETMAGIC(ST(4)); ST(0) = sv_newmortal(); sv_setref_pvn(ST(0), "GSSAPI::Status", (void*)&RETVAL, sizeof(RETVAL)); } XSRETURN(1); } /* INCLUDE: Returning to 'GSSAPI.xs' from 'xs/Context.xs' */ #ifdef __cplusplus extern "C" #endif XS(boot_GSSAPI); /* prototype to pass -Wmissing-prototypes */ XS(boot_GSSAPI) { dXSARGS; char* file = __FILE__; XS_VERSION_BOOTCHECK ; newXSproto("GSSAPI::gssapi_implementation_is_heimdal", XS_GSSAPI_gssapi_implementation_is_heimdal, file, ""); newXSproto("GSSAPI::constant", XS_GSSAPI_constant, file, "$$"); newXSproto("GSSAPI::indicate_mechs", XS_GSSAPI_indicate_mechs, file, "$"); newXSproto("GSSAPI::is_valid", XS_GSSAPI_is_valid, file, "$"); newXSproto("GSSAPI::Status::new", XS_GSSAPI__Status_new, file, "$$$"); newXSproto("GSSAPI::Status::major", XS_GSSAPI__Status_major, file, "$"); newXSproto("GSSAPI::Status::minor", XS_GSSAPI__Status_minor, file, "$"); newXSproto("GSSAPI::Status::GSS_CALLING_ERROR", XS_GSSAPI__Status_GSS_CALLING_ERROR, file, "$"); newXSproto("GSSAPI::Status::GSS_ROUTINE_ERROR", XS_GSSAPI__Status_GSS_ROUTINE_ERROR, file, "$"); newXSproto("GSSAPI::Status::GSS_SUPPLEMENTARY_INFO", XS_GSSAPI__Status_GSS_SUPPLEMENTARY_INFO, file, "$"); newXSproto("GSSAPI::Status::GSS_ERROR", XS_GSSAPI__Status_GSS_ERROR, file, "$"); newXSproto("GSSAPI::Status::GSS_CALLING_ERROR_FIELD", XS_GSSAPI__Status_GSS_CALLING_ERROR_FIELD, file, "$"); newXSproto("GSSAPI::Status::GSS_ROUTINE_ERROR_FIELD", XS_GSSAPI__Status_GSS_ROUTINE_ERROR_FIELD, file, "$"); newXSproto("GSSAPI::Status::GSS_SUPPLEMENTARY_INFO_FIELD", XS_GSSAPI__Status_GSS_SUPPLEMENTARY_INFO_FIELD, file, "$"); newXSproto("GSSAPI::Status::display_status", XS_GSSAPI__Status_display_status, file, "$$"); newXSproto("GSSAPI::Name::new", XS_GSSAPI__Name_new, file, "$"); newXSproto("GSSAPI::Name::DESTROY", XS_GSSAPI__Name_DESTROY, file, "$"); newXSproto("GSSAPI::Name::import", XS_GSSAPI__Name_import, file, "$$$;$"); newXSproto("GSSAPI::Name::duplicate", XS_GSSAPI__Name_duplicate, file, "$$"); newXSproto("GSSAPI::Name::display", XS_GSSAPI__Name_display, file, "$$;$"); newXSproto("GSSAPI::Name::compare", XS_GSSAPI__Name_compare, file, "$$$"); newXSproto("GSSAPI::Name::canonicalize", XS_GSSAPI__Name_canonicalize, file, "$$$"); newXSproto("GSSAPI::Name::export", XS_GSSAPI__Name_export, file, "$$"); newXSproto("GSSAPI::OID::new", XS_GSSAPI__OID_new, file, "$"); newXSproto("GSSAPI::OID::DESTROY", XS_GSSAPI__OID_DESTROY, file, "$"); newXSproto("GSSAPI::OID::from_str", XS_GSSAPI__OID_from_str, file, "$$$"); newXSproto("GSSAPI::OID::to_str", XS_GSSAPI__OID_to_str, file, "$$"); newXSproto("GSSAPI::OID::inquire_names", XS_GSSAPI__OID_inquire_names, file, "$$"); newXSproto("GSSAPI::OID::gss_nt_user_name", XS_GSSAPI__OID_gss_nt_user_name, file, ""); newXSproto("GSSAPI::OID::gss_nt_machine_uid_name", XS_GSSAPI__OID_gss_nt_machine_uid_name, file, ""); newXSproto("GSSAPI::OID::gss_nt_string_uid_name", XS_GSSAPI__OID_gss_nt_string_uid_name, file, ""); newXSproto("GSSAPI::OID::gss_nt_service_name", XS_GSSAPI__OID_gss_nt_service_name, file, ""); newXSproto("GSSAPI::OID::gss_nt_exported_name", XS_GSSAPI__OID_gss_nt_exported_name, file, ""); newXSproto("GSSAPI::OID::gss_nt_service_name_v2", XS_GSSAPI__OID_gss_nt_service_name_v2, file, ""); newXSproto("GSSAPI::OID::gss_nt_krb5_name", XS_GSSAPI__OID_gss_nt_krb5_name, file, ""); newXSproto("GSSAPI::OID::gss_nt_krb5_principal", XS_GSSAPI__OID_gss_nt_krb5_principal, file, ""); newXSproto("GSSAPI::OID::gss_mech_krb5", XS_GSSAPI__OID_gss_mech_krb5, file, ""); newXSproto("GSSAPI::OID::gss_mech_spnego", XS_GSSAPI__OID_gss_mech_spnego, file, ""); newXSproto("GSSAPI::OID::gss_mech_krb5_old", XS_GSSAPI__OID_gss_mech_krb5_old, file, ""); newXSproto("GSSAPI::OID::gss_mech_krb5_v2", XS_GSSAPI__OID_gss_mech_krb5_v2, file, ""); newXSproto("GSSAPI::OID::gss_nt_hostbased_service", XS_GSSAPI__OID_gss_nt_hostbased_service, file, ""); newXSproto("GSSAPI::OID::Set::new", XS_GSSAPI__OID__Set_new, file, "$"); newXSproto("GSSAPI::OID::Set::DESTROY", XS_GSSAPI__OID__Set_DESTROY, file, "$"); newXSproto("GSSAPI::OID::Set::insert", XS_GSSAPI__OID__Set_insert, file, "$$"); newXSproto("GSSAPI::OID::Set::contains", XS_GSSAPI__OID__Set_contains, file, "$$$"); newXSproto("GSSAPI::Cred::acquire_cred", XS_GSSAPI__Cred_acquire_cred, file, "$$$$$$$"); newXSproto("GSSAPI::Cred::add_cred", XS_GSSAPI__Cred_add_cred, file, "$$$$$$$$$$"); newXSproto("GSSAPI::Cred::inquire_cred", XS_GSSAPI__Cred_inquire_cred, file, "$$$$$"); newXSproto("GSSAPI::Cred::inquire_cred_by_mech", XS_GSSAPI__Cred_inquire_cred_by_mech, file, "$$$$$$"); newXSproto("GSSAPI::Cred::DESTROY", XS_GSSAPI__Cred_DESTROY, file, "$"); newXSproto("GSSAPI::Binding::new", XS_GSSAPI__Binding_new, file, "$"); newXSproto("GSSAPI::Binding::DESTROY", XS_GSSAPI__Binding_DESTROY, file, "$"); newXSproto("GSSAPI::Binding::set_initiator", XS_GSSAPI__Binding_set_initiator, file, "$$$"); newXSproto("GSSAPI::Binding::set_acceptor", XS_GSSAPI__Binding_set_acceptor, file, "$$$"); newXSproto("GSSAPI::Binding::set_appl_data", XS_GSSAPI__Binding_set_appl_data, file, "$$"); newXSproto("GSSAPI::Binding::get_initiator_addrtype", XS_GSSAPI__Binding_get_initiator_addrtype, file, "$"); newXSproto("GSSAPI::Binding::get_initiator_address", XS_GSSAPI__Binding_get_initiator_address, file, "$"); newXSproto("GSSAPI::Binding::get_acceptor_addrtype", XS_GSSAPI__Binding_get_acceptor_addrtype, file, "$"); newXSproto("GSSAPI::Binding::get_acceptor_address", XS_GSSAPI__Binding_get_acceptor_address, file, "$"); newXSproto("GSSAPI::Binding::get_appl_data", XS_GSSAPI__Binding_get_appl_data, file, "$"); newXSproto("GSSAPI::Context::new", XS_GSSAPI__Context_new, file, "$"); newXSproto("GSSAPI::Context::DESTROY", XS_GSSAPI__Context_DESTROY, file, "$"); newXSproto("GSSAPI::Context::init", XS_GSSAPI__Context_init, file, "$$$$$$$$$$$$"); newXSproto("GSSAPI::Context::accept", XS_GSSAPI__Context_accept, file, "$$$$$$$$$$"); newXSproto("GSSAPI::Context::delete", XS_GSSAPI__Context_delete, file, "$$"); newXSproto("GSSAPI::Context::process_token", XS_GSSAPI__Context_process_token, file, "$$"); newXSproto("GSSAPI::Context::valid_time_left", XS_GSSAPI__Context_valid_time_left, file, "$$"); newXSproto("GSSAPI::Context::wrap_size_limit", XS_GSSAPI__Context_wrap_size_limit, file, "$$$$$"); newXSproto("GSSAPI::Context::inquire", XS_GSSAPI__Context_inquire, file, "$$$$$$$$"); newXSproto("GSSAPI::Context::export", XS_GSSAPI__Context_export, file, "$$"); newXSproto("GSSAPI::Context::import", XS_GSSAPI__Context_import, file, "$$$"); newXSproto("GSSAPI::Context::get_mic", XS_GSSAPI__Context_get_mic, file, "$$$$"); newXSproto("GSSAPI::Context::verify_mic", XS_GSSAPI__Context_verify_mic, file, "$$$$"); newXSproto("GSSAPI::Context::wrap", XS_GSSAPI__Context_wrap, file, "$$$$$$"); newXSproto("GSSAPI::Context::unwrap", XS_GSSAPI__Context_unwrap, file, "$$$$$"); /* Initialisation Section */ #line 145 "GSSAPI.xs" { HV *stash = gv_stashpvn ("GSSAPI", 6, TRUE ); #if defined( GSS_C_ACCEPT ) newCONSTSUB( stash, "GSS_C_ACCEPT", newSVuv( GSS_C_ACCEPT ) ); #endif #if defined( GSS_C_AF_APPLETALK ) newCONSTSUB( stash, "GSS_C_AF_APPLETALK", newSVuv( GSS_C_AF_APPLETALK ) ); #endif #if defined( GSS_C_AF_BSC ) newCONSTSUB( stash, "GSS_C_AF_BSC", newSVuv( GSS_C_AF_BSC ) ); #endif #if defined( GSS_C_AF_CCITT ) newCONSTSUB( stash, "GSS_C_AF_CCITT", newSVuv( GSS_C_AF_CCITT ) ); #endif #if defined( GSS_C_AF_CHAOS ) newCONSTSUB( stash, "GSS_C_AF_CHAOS", newSVuv( GSS_C_AF_CHAOS ) ); #endif #if defined( GSS_C_AF_DATAKIT ) newCONSTSUB( stash, "GSS_C_AF_DATAKIT", newSVuv( GSS_C_AF_DATAKIT ) ); #endif #if defined( GSS_C_AF_DECnet ) newCONSTSUB( stash, "GSS_C_AF_DECnet", newSVuv( GSS_C_AF_DECnet ) ); #endif #if defined( GSS_C_AF_DLI ) newCONSTSUB( stash, "GSS_C_AF_DLI", newSVuv( GSS_C_AF_DLI ) ); #endif #if defined( GSS_C_AF_DSS ) newCONSTSUB( stash, "GSS_C_AF_DSS", newSVuv( GSS_C_AF_DSS ) ); #endif #if defined( GSS_C_AF_ECMA ) newCONSTSUB( stash, "GSS_C_AF_ECMA", newSVuv( GSS_C_AF_ECMA ) ); #endif #if defined( GSS_C_AF_HYLINK ) newCONSTSUB( stash, "GSS_C_AF_HYLINK", newSVuv( GSS_C_AF_HYLINK ) ); #endif #if defined( GSS_C_AF_IMPLINK ) newCONSTSUB( stash, "GSS_C_AF_IMPLINK", newSVuv( GSS_C_AF_IMPLINK ) ); #endif #if defined( GSS_C_AF_INET ) newCONSTSUB( stash, "GSS_C_AF_INET", newSVuv( GSS_C_AF_INET ) ); #endif #if defined( GSS_C_AF_LAT ) newCONSTSUB( stash, "GSS_C_AF_LAT", newSVuv( GSS_C_AF_LAT ) ); #endif #if defined( GSS_C_AF_LOCAL ) newCONSTSUB( stash, "GSS_C_AF_LOCAL", newSVuv( GSS_C_AF_LOCAL ) ); #endif #if defined( GSS_C_AF_NBS ) newCONSTSUB( stash, "GSS_C_AF_NBS", newSVuv( GSS_C_AF_NBS ) ); #endif #if defined( GSS_C_AF_NS ) newCONSTSUB( stash, "GSS_C_AF_NS", newSVuv( GSS_C_AF_NS ) ); #endif #if defined( GSS_C_AF_NULLADDR ) newCONSTSUB( stash, "GSS_C_AF_NULLADDR", newSVuv( GSS_C_AF_NULLADDR ) ); #endif #if defined( GSS_C_AF_OSI ) newCONSTSUB( stash, "GSS_C_AF_OSI", newSVuv( GSS_C_AF_OSI ) ); #endif #if defined( GSS_C_AF_PUP ) newCONSTSUB( stash, "GSS_C_AF_PUP", newSVuv( GSS_C_AF_PUP ) ); #endif #if defined( GSS_C_AF_SNA ) newCONSTSUB( stash, "GSS_C_AF_SNA", newSVuv( GSS_C_AF_SNA ) ); #endif #if defined( GSS_C_AF_UNSPEC ) newCONSTSUB( stash, "GSS_C_AF_UNSPEC", newSVuv( GSS_C_AF_UNSPEC ) ); #endif #if defined( GSS_C_AF_X25 ) newCONSTSUB( stash, "GSS_C_AF_X25", newSVuv( GSS_C_AF_X25 ) ); #endif #if defined( GSS_C_ANON_FLAG ) newCONSTSUB( stash, "GSS_C_ANON_FLAG", newSVuv( GSS_C_ANON_FLAG ) ); #endif #if defined( GSS_C_BOTH ) newCONSTSUB( stash, "GSS_C_BOTH", newSVuv( GSS_C_BOTH ) ); #endif #if defined( GSS_C_CALLING_ERROR_MASK ) newCONSTSUB( stash, "GSS_C_CALLING_ERROR_MASK", newSVuv( GSS_C_CALLING_ERROR_MASK ) ); #endif #if defined( GSS_C_CALLING_ERROR_OFFSET ) newCONSTSUB( stash, "GSS_C_CALLING_ERROR_OFFSET", newSVuv( GSS_C_CALLING_ERROR_OFFSET ) ); #endif #if defined( GSS_C_CONF_FLAG ) newCONSTSUB( stash, "GSS_C_CONF_FLAG", newSVuv( GSS_C_CONF_FLAG ) ); #endif #if defined( GSS_C_DELEG_FLAG ) newCONSTSUB( stash, "GSS_C_DELEG_FLAG", newSVuv( GSS_C_DELEG_FLAG ) ); #endif #if defined( GSS_C_GSS_CODE ) newCONSTSUB( stash, "GSS_C_GSS_CODE", newSVuv( GSS_C_GSS_CODE ) ); #endif #if defined( GSS_C_INDEFINITE ) newCONSTSUB( stash, "GSS_C_INDEFINITE", newSVuv( GSS_C_INDEFINITE ) ); #endif #if defined( GSS_C_INITIATE ) newCONSTSUB( stash, "GSS_C_INITIATE", newSVuv( GSS_C_INITIATE ) ); #endif #if defined( GSS_C_INTEG_FLAG ) newCONSTSUB( stash, "GSS_C_INTEG_FLAG", newSVuv( GSS_C_INTEG_FLAG ) ); #endif #if defined( GSS_C_MECH_CODE ) newCONSTSUB( stash, "GSS_C_MECH_CODE", newSVuv( GSS_C_MECH_CODE ) ); #endif #if defined( GSS_C_MUTUAL_FLAG ) newCONSTSUB( stash, "GSS_C_MUTUAL_FLAG", newSVuv( GSS_C_MUTUAL_FLAG ) ); #endif #if defined( GSS_C_PROT_READY_FLAG ) newCONSTSUB( stash, "GSS_C_PROT_READY_FLAG", newSVuv( GSS_C_PROT_READY_FLAG ) ); #endif #if defined( GSS_C_QOP_DEFAULT ) newCONSTSUB( stash, "GSS_C_QOP_DEFAULT", newSVuv( GSS_C_QOP_DEFAULT ) ); #endif #if defined( GSS_C_REPLAY_FLAG ) newCONSTSUB( stash, "GSS_C_REPLAY_FLAG", newSVuv( GSS_C_REPLAY_FLAG ) ); #endif #if defined( GSS_C_ROUTINE_ERROR_MASK ) newCONSTSUB( stash, "GSS_C_ROUTINE_ERROR_MASK", newSVuv( GSS_C_ROUTINE_ERROR_MASK ) ); #endif #if defined( GSS_C_ROUTINE_ERROR_OFFSET ) newCONSTSUB( stash, "GSS_C_ROUTINE_ERROR_OFFSET", newSVuv( GSS_C_ROUTINE_ERROR_OFFSET ) ); #endif #if defined( GSS_C_SEQUENCE_FLAG ) newCONSTSUB( stash, "GSS_C_SEQUENCE_FLAG", newSVuv( GSS_C_SEQUENCE_FLAG ) ); #endif #if defined( GSS_C_SUPPLEMENTARY_MASK ) newCONSTSUB( stash, "GSS_C_SUPPLEMENTARY_MASK", newSVuv( GSS_C_SUPPLEMENTARY_MASK ) ); #endif #if defined( GSS_C_SUPPLEMENTARY_OFFSET ) newCONSTSUB( stash, "GSS_C_SUPPLEMENTARY_OFFSET", newSVuv( GSS_C_SUPPLEMENTARY_OFFSET ) ); #endif #if defined( GSS_C_TRANS_FLAG ) newCONSTSUB( stash, "GSS_C_TRANS_FLAG", newSVuv( GSS_C_TRANS_FLAG ) ); #endif #if defined( GSS_S_BAD_BINDINGS ) newCONSTSUB( stash, "GSS_S_BAD_BINDINGS", newSVuv( GSS_S_BAD_BINDINGS ) ); #endif #if defined( GSS_S_BAD_MECH ) newCONSTSUB( stash, "GSS_S_BAD_MECH", newSVuv( GSS_S_BAD_MECH ) ); #endif #if defined( GSS_S_BAD_NAME ) newCONSTSUB( stash, "GSS_S_BAD_NAME", newSVuv( GSS_S_BAD_NAME ) ); #endif #if defined( GSS_S_BAD_NAMETYPE ) newCONSTSUB( stash, "GSS_S_BAD_NAMETYPE", newSVuv( GSS_S_BAD_NAMETYPE ) ); #endif #if defined( GSS_S_BAD_QOP ) newCONSTSUB( stash, "GSS_S_BAD_QOP", newSVuv( GSS_S_BAD_QOP ) ); #endif #if defined( GSS_S_BAD_SIG ) newCONSTSUB( stash, "GSS_S_BAD_SIG", newSVuv( GSS_S_BAD_SIG ) ); #endif #if defined( GSS_S_BAD_STATUS ) newCONSTSUB( stash, "GSS_S_BAD_STATUS", newSVuv( GSS_S_BAD_STATUS ) ); #endif #if defined( GSS_S_CALL_BAD_STRUCTURE ) newCONSTSUB( stash, "GSS_S_CALL_BAD_STRUCTURE", newSVuv( GSS_S_CALL_BAD_STRUCTURE ) ); #endif #if defined( GSS_S_CALL_INACCESSIBLE_READ ) newCONSTSUB( stash, "GSS_S_CALL_INACCESSIBLE_READ", newSVuv( GSS_S_CALL_INACCESSIBLE_READ ) ); #endif #if defined( GSS_S_CALL_INACCESSIBLE_WRITE ) newCONSTSUB( stash, "GSS_S_CALL_INACCESSIBLE_WRITE", newSVuv( GSS_S_CALL_INACCESSIBLE_WRITE ) ); #endif #if defined( GSS_S_COMPLETE ) newCONSTSUB( stash, "GSS_S_COMPLETE", newSVuv( GSS_S_COMPLETE ) ); #endif #if defined( GSS_S_CONTEXT_EXPIRED ) newCONSTSUB( stash, "GSS_S_CONTEXT_EXPIRED", newSVuv( GSS_S_CONTEXT_EXPIRED ) ); #endif #if defined( GSS_S_CONTINUE_NEEDED ) newCONSTSUB( stash, "GSS_S_CONTINUE_NEEDED", newSVuv( GSS_S_CONTINUE_NEEDED ) ); #endif #if defined( GSS_S_CREDENTIALS_EXPIRED ) newCONSTSUB( stash, "GSS_S_CREDENTIALS_EXPIRED", newSVuv( GSS_S_CREDENTIALS_EXPIRED ) ); #endif #if defined( GSS_S_CRED_UNAVAIL ) newCONSTSUB( stash, "GSS_S_CRED_UNAVAIL", newSVuv( GSS_S_CRED_UNAVAIL ) ); #endif #if defined( GSS_S_DEFECTIVE_CREDENTIAL ) newCONSTSUB( stash, "GSS_S_DEFECTIVE_CREDENTIAL", newSVuv( GSS_S_DEFECTIVE_CREDENTIAL ) ); #endif #if defined( GSS_S_DEFECTIVE_TOKEN ) newCONSTSUB( stash, "GSS_S_DEFECTIVE_TOKEN", newSVuv( GSS_S_DEFECTIVE_TOKEN ) ); #endif #if defined( GSS_S_DUPLICATE_ELEMENT ) newCONSTSUB( stash, "GSS_S_DUPLICATE_ELEMENT", newSVuv( GSS_S_DUPLICATE_ELEMENT ) ); #endif #if defined( GSS_S_DUPLICATE_TOKEN ) newCONSTSUB( stash, "GSS_S_DUPLICATE_TOKEN", newSVuv( GSS_S_DUPLICATE_TOKEN ) ); #endif #if defined( GSS_S_FAILURE ) newCONSTSUB( stash, "GSS_S_FAILURE", newSVuv( GSS_S_FAILURE ) ); #endif #if defined( GSS_S_GAP_TOKEN ) newCONSTSUB( stash, "GSS_S_GAP_TOKEN", newSVuv( GSS_S_GAP_TOKEN ) ); #endif #if defined( GSS_S_NAME_NOT_MN ) newCONSTSUB( stash, "GSS_S_NAME_NOT_MN", newSVuv( GSS_S_NAME_NOT_MN ) ); #endif #if defined( GSS_S_NO_CONTEXT ) newCONSTSUB( stash, "GSS_S_NO_CONTEXT", newSVuv( GSS_S_NO_CONTEXT ) ); #endif #if defined( GSS_S_NO_CRED ) newCONSTSUB( stash, "GSS_S_NO_CRED", newSVuv( GSS_S_NO_CRED ) ); #endif #if defined( GSS_S_OLD_TOKEN ) newCONSTSUB( stash, "GSS_S_OLD_TOKEN", newSVuv( GSS_S_OLD_TOKEN ) ); #endif #if defined( GSS_S_UNAUTHORIZED ) newCONSTSUB( stash, "GSS_S_UNAUTHORIZED", newSVuv( GSS_S_UNAUTHORIZED ) ); #endif #if defined( GSS_S_UNAVAILABLE ) newCONSTSUB( stash, "GSS_S_UNAVAILABLE", newSVuv( GSS_S_UNAVAILABLE ) ); #endif #if defined( GSS_S_UNSEQ_TOKEN ) newCONSTSUB( stash, "GSS_S_UNSEQ_TOKEN", newSVuv( GSS_S_UNSEQ_TOKEN ) ); #endif } #line 3717 "GSSAPI.c" /* End of Initialisation Section */ XSRETURN_YES; }