
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1282 ec53bebd-3082-4978-b11e-865c3cabbd6b
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
/*
|
|
*
|
|
*/
|
|
|
|
#include "krb5_locl.h"
|
|
|
|
RCSID("$Id$");
|
|
|
|
krb5_error_code
|
|
krb5_principal2principalname (PrincipalName *p,
|
|
krb5_principal from)
|
|
{
|
|
int i;
|
|
|
|
p->name_type = from->type;
|
|
p->name_string.len = from->ncomp;
|
|
p->name_string.val = malloc(from->ncomp * sizeof(*p->name_string.val));
|
|
for (i = 0; i < from->ncomp; ++i) {
|
|
int len = from->comp[i].length;
|
|
p->name_string.val[i] = malloc(len + 1);
|
|
strncpy (p->name_string.val[i], from->comp[i].data, len);
|
|
p->name_string.val[i][len] = '\0';
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
krb5_error_code
|
|
principalname2krb5_principal (krb5_principal *principal,
|
|
PrincipalName from,
|
|
char *realm)
|
|
{
|
|
int i;
|
|
krb5_principal p;
|
|
p = malloc (sizeof(*p));
|
|
p->type = from.name_type;
|
|
p->ncomp = from.name_string.len;
|
|
p->comp = malloc (p->ncomp * sizeof(*p->comp));
|
|
for (i = 0; i < p->ncomp; ++i) {
|
|
int len = strlen(from.name_string.val[i]);
|
|
p->comp[i].length = len;
|
|
p->comp[i].data = strdup(from.name_string.val[i]);
|
|
}
|
|
p->realm.data = strdup(realm);
|
|
p->realm.length = strlen(realm);
|
|
*principal = p;
|
|
return 0;
|
|
}
|