Authen-Krb5
view release on metacpan or search on metacpan
lib/Authen/Krb5.xs view on Meta::CPAN
krb5_init_ets(context);
#endif /* KRB5_DEPRECATED */
XSRETURN_YES;
void
krb5_get_default_realm()
PREINIT:
char *realm;
PPCODE:
err = krb5_get_default_realm(context,&realm);
if (err || !realm) XSRETURN_UNDEF;
XPUSHs(sv_2mortal(newSVpv(realm,strlen(realm))));
Safefree(realm);
void
krb5_get_host_realm(host)
char *host
PREINIT:
char **realmlist;
int i;
PPCODE:
err = krb5_get_host_realm(context,host,&realmlist);
if (err || !realmlist) XSRETURN_UNDEF;
for (i = 0; realmlist[i]; i++) {
XPUSHs(sv_2mortal(newSVpv(realmlist[i],
strlen(realmlist[i]))));
}
krb5_free_host_realm(context,realmlist);
Authen::Krb5::Principal
krb5_build_principal_ext(p)
lib/Authen/Krb5.xs view on Meta::CPAN
RETVAL
void
krb5_mk_priv(auth_context,in)
Authen::Krb5::AuthContext auth_context
SV *in
PREINIT:
krb5_data in_data, out_data;
PPCODE:
STRLEN data_length;
data_length = in_data.length;
in_data.data = SvPV(in,data_length);
err = krb5_mk_priv(context,auth_context,&in_data,&out_data,NULL);
if (err) XSRETURN_UNDEF;
XPUSHs(sv_2mortal(newSVpv(out_data.data,out_data.length)));
/* krb5_free_data(context,&out_data); */
void
krb5_rd_priv(auth_context,in)
Authen::Krb5::AuthContext auth_context
SV *in
PREINIT:
krb5_data in_data, out_data;
PPCODE:
STRLEN data_length;
data_length = in_data.length;
in_data.data = SvPV(in,data_length);
err = krb5_rd_priv(context,auth_context,&in_data,&out_data,NULL);
if (err) XSRETURN_UNDEF;
XPUSHs(sv_2mortal(newSVpv(out_data.data,out_data.length)));
Authen::Krb5::Rcache
krb5_get_server_rcache(piece)
SV *piece
lib/Authen/Krb5.xs view on Meta::CPAN
int options
SV *in
Authen::Krb5::Creds in_creds
Authen::Krb5::Ccache cc
PREINIT:
krb5_data in_data;
krb5_creds *out_creds = NULL;
int fd;
PPCODE:
fd = fileno(fh);
STRLEN data_length;
data_length = in_data.length;
in_data.data = SvPV(in,data_length);
err = krb5_sendauth(context,&auth_context,&fd,version,client,server,
options,&in_data,in_creds,cc,NULL,NULL,&out_creds);
if (err) XSRETURN_UNDEF;
XSRETURN_YES;
void
lib/Authen/Krb5.xs view on Meta::CPAN
Authen::Krb5::AuthContext auth_context
FILE *fh
char *version
Authen::Krb5::Principal server
Authen::Krb5::Keytab keytab
PREINIT:
krb5_ticket *ticket = NULL;
int fd;
PPCODE:
fd = fileno(fh);
err = krb5_recvauth(context,&auth_context,&fd,version,server,0,
keytab,&ticket);
if (err) XSRETURN_UNDEF;
ST(0) = sv_newmortal();
sv_setref_pv(ST(0),"Authen::Krb5::Ticket",(void*)ticket);
XSRETURN(1);
MODULE = Authen::Krb5 PACKAGE = Authen::Krb5::Principal
lib/Authen/Krb5.xs view on Meta::CPAN
CODE:
RETVAL = p->type;
OUTPUT:
RETVAL
void
data(p)
Authen::Krb5::Principal p
PPCODE:
if (p->length > 0) {
int len = p->length;
krb5_data *data;
EXTEND(sp,len);
for (data = p->data; len--; data++) {
PUSHs(sv_2mortal(newSVpv(data->data,data->length)));
}
}
lib/Authen/Krb5.xs view on Meta::CPAN
CODE:
RETVAL = kb->length;
OUTPUT:
RETVAL
void
contents(kb)
Authen::Krb5::KeyBlock kb
PPCODE:
/* sv_2mortal here causes 'Attempt to free unreferenced scalar' later */
XPUSHs(newSVpvn((char*)(kb->contents), kb->length));
int
enctype(kb)
Authen::Krb5::KeyBlock kb
CODE:
RETVAL = (int)kb->enctype;
OUTPUT:
RETVAL
void
enctype_string(kb)
Authen::Krb5::KeyBlock kb
PREINIT:
char buf[256];
PPCODE:
err = krb5_enctype_to_string(kb->enctype, buf, 255);
if (err) {
XSRETURN_UNDEF;
}
XPUSHs(newSVpv(buf, 0));
void
DESTROY(kb)
Authen::Krb5::KeyBlock kb
( run in 1.012 second using v1.01-cache-2.11-cpan-71847e10f99 )