KRB5_BUILD_PRINCIPAL(3)   OpenBSD Programmer's Manual  KRB5_BUILD_PRINCIPAL(3)

NAME
     krb5_build_principal, krb5_build_principal_ext, krb5_build_principal_va,
     krb5_build_principal_va_ext, krb5_make_principal - principal creation
     functions

LIBRARY
     Kerberos 5 Library (libkrb5, -lkrb5)

SYNOPSIS
     #include <krb5.h>

     krb5_error_code
     krb5_build_principal(krb5_context context, krb5_principal *principal,
             int realm_len, krb5_const_realm realm, ...);

     krb5_error_code
     krb5_build_principal_ext(krb5_context context, krb5_principal *principal,
             int realm_len, krb5_const_realm realm, ...);

     krb5_error_code
     krb5_build_principal_va(krb5_context context, krb5_principal *principal,
             int realm_len, krb5_const_realm realm, va_list ap);

     krb5_error_code
     krb5_build_principal_va_ext(krb5_context context,
             krb5_principal *principal, int realm_len, krb5_const_realm realm,
             va_list ap);

     krb5_error_code
     krb5_make_principal(krb5_context context, krb5_principal *principal,
             krb5_const_realm realm, ...);

DESCRIPTION
     These functions create a Kerberos 5 principal from a realm and a list of
     components.  All of these functions return an allocated principal in the
     principal parameter, this should be freed with krb5_free_principal() af-
     ter use.

     The ``build'' functions take a realm and the length of the realm.  The
     krb5_build_principal() and krb5_build_principal_va() also takes a list of
     components (zero-terminated strings), terminated with NULL.  The
     krb5_build_principal_ext() and krb5_build_principal_va_ext() takes a list
     of length-value pairs, the list is terminated with a zero length.

     The krb5_make_principal() is a wrapper around krb5_build_principal().  If
     the realm is NULL, the default realm will be used.

BUGS
     You can not have a NUL in a component. Until someone can give a good ex-
     ample of where it would be a good idea to have NUL's in a component, this
     will not be fixed.

SEE ALSO
     krb5_425_conv_principal(3), krb5_free_principal(3), krb5_parse_name(3),
     krb5_sname_to_principal(3), krb5_unparse_name(3)

 HEIMDAL                        August 8, 1997                               1
