.\" Copyright (c) 1997 Kungliga Tekniska Högskolan .\" $Id: krb5_sname_to_principal.3,v 1.2 2001/01/26 22:43:22 assar Exp $ .Dd August 8, 1997 .Dt KRB5_PRINCIPAL 3 .Os HEIMDAL .Sh NAME .Nm krb5_sname_to_principal , .Nm krb5_sock_to_principal .Nd create a service principal .Sh SYNOPSIS .Fd #include .Ft krb5_error_code .Fn krb5_sname_to_principal "krb5_context context" "const char *hostname" "const char *sname" "int32_t type" "krb5_principal *principal" .Ft krb5_error_code .Fn krb5_sock_to_principal "krb5_context context" "int socket" "const char *sname" "int32_t type" "krb5_principal *principal" .Sh DESCRIPTION These functions create a .Dq service principal that can, for instance, be used to lookup a key in a keytab. For both these function the .Fa sname parameter will be used for the first component of the created principal. If .Fa sname is .Dv NULL , .Dq host will be used instead. .Fn krb5_sname_to_principal will use the passed .Fa hostname for the second component. If type .Dv KRB5_NT_SRV_HST this name will be looked up with .Fn gethostbyname . If .Fa hostname is .Dv NULL , the local hostname will be used. .Pp .Fn krb5_sock_to_principal will use the .Dq sockname of the passed .Fa socket , which should be a bound .Dv AF_INET socket. .Sh SEE ALSO .Xr krb5_425_conv_principal 3 , .Xr krb5_build_principal 3 , .Xr krb5_free_principal 3 , .Xr krb5_parse_name 3 , .Xr krb5_unparse_name 3