Add krb5_524_conv_principal.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2156 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1997-07-11 21:49:32 +00:00
parent ba355db5bf
commit d59622b783

View File

@@ -513,6 +513,54 @@ krb5_425_conv_principal(krb5_context context,
strlen(realm), realm, name, instance, 0);
}
krb5_error_code
krb5_524_conv_principal(krb5_context context,
const krb5_principal principal,
char *name,
char *instance,
char *realm)
{
#ifdef USE_ASN1_PRINCIPAL
char *n, *i, *r;
char tmpinst[40];
r = principal->realm;
switch(principal->name.name_string.len){
case 1:
n = principal->name.name_string.val[0];
i = "";
break;
case 2:
n = principal->name.name_string.val[0];
i = principal->name.name_string.val[1];
break;
default:
return -1;
}
if(strcmp(n, "host") == 0){
char *p;
n = "rcmd";
strncpy(tmpinst, i, sizeof(tmpinst));
p = strchr(tmpinst, '.');
if(p) *p = 0;
i = tmpinst;
}
if(strlen(r) >= 40)
return -1;
if(strlen(n) >= 40)
return -1;
if(strlen(i) >= 40)
return -1;
strcpy(realm, r);
strcpy(name, n);
strcpy(instance, i);
return 0;
#else
abort();
#endif
}
krb5_error_code