Moved some asn1-stuff here.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1282 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
47
lib/krb5/asn1_glue.c
Normal file
47
lib/krb5/asn1_glue.c
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
#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;
|
||||
}
|
Reference in New Issue
Block a user