 de43cd185b
			
		
	
	de43cd185b
	
	
	
		
			
			git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1890 ec53bebd-3082-4978-b11e-865c3cabbd6b
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #include "krb5_locl.h"
 | |
| 
 | |
| RCSID("$Id$");
 | |
| 
 | |
| krb5_error_code
 | |
| krb5_principal2principalname (PrincipalName *p,
 | |
| 			      krb5_principal from)
 | |
| {
 | |
| #ifdef USE_ASN1_PRINCIPAL
 | |
|     copy_PrincipalName(&from->name, p);
 | |
| #else
 | |
|     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';
 | |
|     }
 | |
| #endif
 | |
|     return 0;
 | |
| }
 | |
| 
 | |
| krb5_error_code
 | |
| principalname2krb5_principal (krb5_principal *principal,
 | |
| 			      PrincipalName from,
 | |
| 			      char *realm)
 | |
| {
 | |
|     krb5_principal p = malloc(sizeof(*p));
 | |
| #ifdef USE_ASN1_PRINCIPAL
 | |
|     copy_PrincipalName(&from, &p->name);
 | |
|     p->realm = strdup(realm);
 | |
| #else
 | |
|     int i;
 | |
|     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);
 | |
| #endif
 | |
|     *principal = p;
 | |
|     return 0;
 | |
| }
 |