Remove non ASN.1 principal code.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2354 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1997-07-16 01:37:19 +00:00
parent 7fbd8baf8d
commit 884b9012ab
15 changed files with 0 additions and 328 deletions

View File

@@ -4,27 +4,14 @@ RCSID("$Id$");
/* Public principal handling functions */
#ifdef USE_ASN1_PRINCIPAL
#define num_components(P) ((P)->name.name_string.len)
#define princ_type(P) ((P)->name.name_type)
#else
#define num_components(P) ((P)->ncomp)
#define princ_type(P) ((P)->type)
#endif
void
krb5_free_principal(krb5_context context,
krb5_principal p)
{
#ifdef USE_ASN1_PRINCIPAL
free_Principal(p);
#else
int i;
for(i = 0; i < num_components(p); i++)
krb5_data_free(&p->comp[i]);
free(p->comp);
krb5_data_free(&p->realm);
#endif
free(p);
}
@@ -34,13 +21,8 @@ krb5_parse_name(krb5_context context,
krb5_principal *principal)
{
#ifdef USE_ASN1_PRINCIPAL
general_string *comp;
general_string realm;
#else
krb5_data *comp;
krb5_data realm;
#endif
int ncomp;
char *p;
@@ -62,11 +44,7 @@ krb5_parse_name(krb5_context context,
} else if(*p == '/')
ncomp++;
}
#ifdef USE_ASN1_PRINCIPAL
comp = calloc(ncomp, sizeof(*comp));
#else
comp = ALLOC(ncomp, krb5_data);
#endif
n = 0;
start = q = p = s = strdup(name);
@@ -86,25 +64,15 @@ krb5_parse_name(krb5_context context,
if(got_realm){
exit:
while(n>0){
#ifdef USE_ASN1_PRINCIPAL
free(comp[--n]);
#else
free(comp[--n].data);
#endif
}
free(comp);
free(s);
return KRB5_PARSE_MALFORMED;
}else{
#ifdef USE_ASN1_PRINCIPAL
comp[n] = malloc(q - start + 1);
strncpy(comp[n], start, q - start);
comp[n][q - start] = 0;
#else
comp[n].length = q - start;
comp[n].data = (krb5_pointer)malloc(comp[n].length);
memmove(comp[n].data, start, comp[n].length);
#endif
n++;
}
if(c == '@')
@@ -117,37 +85,20 @@ krb5_parse_name(krb5_context context,
*q++ = c;
}
if(got_realm){
#ifdef USE_ASN1_PRINCIPAL
realm = malloc(q - start + 1);
strncpy(realm, start, q - start);
realm[q - start] = 0;
#else
realm.length = q - start;
realm.data = (krb5_pointer)malloc(realm.length);
memmove(realm.data, start, realm.length);
#endif
}else{
krb5_get_default_realm (context, &realm);
#ifdef USE_ASN1_PRINCIPAL
comp[n] = malloc(q - start + 1);
strncpy(comp[n], start, q - start);
comp[n][q - start] = 0;
#else
comp[n].length = q - start;
comp[n].data = (krb5_pointer)malloc(comp[n].length);
memmove(comp[n].data, start, comp[n].length);
#endif
n++;
}
*principal = malloc(sizeof(**principal));
#ifdef USE_ASN1_PRINCIPAL
(*principal)->name.name_type = KRB5_NT_PRINCIPAL;
(*principal)->name.name_string.val = comp;
#else
(*principal)->type = KRB5_NT_PRINCIPAL;
(*principal)->comp = comp;
#endif
num_components(*principal) = n;
(*principal)->realm = realm;
free(s);
@@ -159,9 +110,7 @@ static void quote_string(char *s, int len, char **out)
char *q;
char *p = *out;
int c=0;
#ifdef USE_ASN1_PRINCIPAL
len = strlen(s);
#endif
for(q = s; q < s + len; q++){
if(*q == '\n')
c = 'n';
@@ -196,33 +145,19 @@ krb5_unparse_name(krb5_context context,
char *s;
int i;
int ncomp = num_components(principal);
#ifdef USE_ASN1_PRINCIPAL
size = 2 * strlen(principal->realm) + 1;
for (i = 0; i < ncomp; i++)
size += 2 * strlen(principal->name.name_string.val[i]) + 1;
#else
size = 2 * principal->realm.length + 1;
for(i = 0; i < ncomp; i++)
size += 2 * principal->comp[i].length + 1;
#endif
s = malloc(size);
p = s;
for(i = 0; i < ncomp; i++){
if(i) *p++ = '/';
quote_string(
#ifdef USE_ASN1_PRINCIPAL
principal->name.name_string.val[i], 0,
#else
principal->comp[i].data, principal->comp[i].length,
#endif
&p);
}
*p++ = '@';
#ifdef USE_ASN1_PRINCIPAL
quote_string(principal->realm, 0, &p);
#else
quote_string(principal->realm.data, principal->realm.length, &p);
#endif
*p = 0;
*name = s;
return 0;
@@ -276,11 +211,7 @@ krb5_error_code
krb5_principal_set_component(krb5_context context, krb5_principal p,
int n, void *data, size_t len)
{
#ifdef USE_ASN1_PRINCIPAL
general_string *tmp = p->name.name_string.val;
#else
krb5_data *tmp = p->comp;
#endif
if(num_components(p) <= n){
int s = n + 10;
tmp = realloc(tmp, s * sizeof(*tmp));
@@ -288,24 +219,14 @@ krb5_principal_set_component(krb5_context context, krb5_principal p,
return ENOMEM;
memset(tmp + num_components(p), 0,
(s - num_components(p)) * sizeof(*tmp));
#ifdef USE_ASN1_PRINCIPAL
p->name.name_string.val = tmp;
#else
p->comp = tmp;
#endif
num_components(p)= s;
}
#ifdef USE_ASN1_PRINCIPAL
if(p->name.name_string.val[n])
free(p->name.name_string.val[n]);
p->name.name_string.val[n] = malloc(len + 1);
strncpy(p->name.name_string.val[n], data, len);
p->name.name_string.val[n][len] = 0;
#else
p->comp[n].length = 0;
p->comp[n].data = NULL;
krb5_data_copy(&p->comp[n], data, len);
#endif
return 0;
}
@@ -360,18 +281,11 @@ build_principal(krb5_context context,
return ENOMEM;
princ_type(p) = KRB5_NT_PRINCIPAL;
#ifdef USE_ASN1_PRINCIPAL
p->realm = strdup(realm);
if(p->realm == NULL){
free(p);
return ENOMEM;
}
#else
if(krb5_data_copy(&p->realm, (void*)realm, rlen)){
free(p);
return ENOMEM;
}
#endif
(*func)(context, p, ap);
*principal = p;
@@ -426,31 +340,8 @@ krb5_copy_principal(krb5_context context,
p = calloc(1, sizeof(*p));
if (p == NULL)
return ENOMEM;
#ifdef USE_ASN1_PRINCIPAL
copy_PrincipalName(&inprinc->name, &p->name);
copy_Realm(&inprinc->realm, &p->realm);
#else
princ_type(p) = princ_type(inprinc);
if(krb5_data_copy(&p->realm, inprinc->realm.data, inprinc->realm.length)){
krb5_free_principal(context, p);
return ENOMEM;
}
p->comp = ALLOC(inprinc->ncomp, krb5_data);
if(!p->comp){
krb5_free_principal(context, p);
return ENOMEM;
}
for(i=0; i<inprinc->ncomp; i++){
p->comp[i].length = 0;
if(krb5_data_copy(&p->comp[i], inprinc->comp[i].data,
inprinc->comp[i].length)){
krb5_free_principal(context, p);
return ENOMEM;
}
p->ncomp = i+1;
}
#endif
*outprinc = p;
return 0;
}
@@ -467,17 +358,9 @@ krb5_principal_compare(krb5_context context,
if(num_components(princ1) != num_components(princ2))
return FALSE;
for(i = 0; i < num_components(princ1); i++){
#ifdef USE_ASN1_PRINCIPAL
if(strcmp(princ1->name.name_string.val[i],
princ2->name.name_string.val[i]) != 0)
return FALSE;
#else
if(princ1->comp[i].length != princ2->comp[i].length)
return FALSE;
if(memcmp(princ1->comp[i].data, princ2->comp[i].data,
princ1->comp[i].length))
return FALSE;
#endif
}
return TRUE;
}
@@ -488,15 +371,7 @@ krb5_realm_compare(krb5_context context,
krb5_const_principal princ1,
krb5_const_principal princ2)
{
#ifdef USE_ASN1_PRINCIPAL
return strcmp(princ1->realm, princ2->realm) == 0;
#else
if(princ1->realm.length != princ2->realm.length)
return FALSE;
if(memcmp(princ1->realm.data, princ2->realm.data, princ1->realm.length))
return FALSE;
return TRUE;
#endif
}
@@ -520,7 +395,6 @@ krb5_524_conv_principal(krb5_context context,
char *instance,
char *realm)
{
#ifdef USE_ASN1_PRINCIPAL
char *n, *i, *r;
char tmpinst[40];
r = principal->realm;
@@ -557,9 +431,6 @@ krb5_524_conv_principal(krb5_context context,
strcpy(name, n);
strcpy(instance, i);
return 0;
#else
abort();
#endif
}