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
	 Johan Danielsson
					Johan Danielsson