.\" Copyright (c) 1997 Kungliga Tekniska Högskolan .\" $Id: krb5_build_principal.3,v 1.5 2002/08/28 15:30:47 joda Exp $ .Dd August 8, 1997 .Dt KRB5_BUILD_PRINCIPAL 3 .Os HEIMDAL .Sh NAME .Nm krb5_build_principal , .Nm krb5_build_principal_ext , .Nm krb5_build_principal_va , .Nm krb5_build_principal_va_ext , .Nm krb5_make_principal .Nd principal creation functions .Sh LIBRARY Kerberos 5 Library (libkrb5, -lkrb5) .Sh SYNOPSIS .Fd #include .Ft krb5_error_code .Fn krb5_build_principal "krb5_context context" "krb5_principal *principal" "int realm_len" "krb5_const_realm realm" "..." .Ft krb5_error_code .Fn krb5_build_principal_ext "krb5_context context" "krb5_principal *principal" "int realm_len" "krb5_const_realm realm" "..." .Ft krb5_error_code .Fn krb5_build_principal_va "krb5_context context" "krb5_principal *principal" "int realm_len" "krb5_const_realm realm" "va_list ap" .Ft krb5_error_code .Fn krb5_build_principal_va_ext "krb5_context context" "krb5_principal *principal" "int realm_len" "krb5_const_realm realm" "va_list ap" .Ft krb5_error_code .Fn krb5_make_principal "krb5_context context" "krb5_principal *principal" "krb5_const_realm realm" "..." .Sh 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 .Fa principal parameter, this should be freed with .Fn krb5_free_principal after use. .Pp The .Dq build functions take a .Fa realm and the length of the realm. The .Fn krb5_build_principal and .Fn krb5_build_principal_va also takes a list of components (zero-terminated strings), terminated with .Dv NULL . The .Fn krb5_build_principal_ext and .Fn krb5_build_principal_va_ext takes a list of length-value pairs, the list is terminated with a zero length. .Pp The .Fn krb5_make_principal is a wrapper around .Fn krb5_build_principal . If the realm is .Dv NULL , the default realm will be used. .Sh BUGS You can not have a NUL in a component. Until someone can give a good example of where it would be a good idea to have NUL's in a component, this will not be fixed. .Sh SEE ALSO .Xr krb5_425_conv_principal 3 , .Xr krb5_free_principal 3 , .Xr krb5_parse_name 3 , .Xr krb5_sname_to_principal 3 , .Xr krb5_unparse_name 3