xref: /illumos-gate/usr/src/lib/krb5/kadm5/clnt/client_internal.h (revision 55fea89dcaa64928bed4327112404dcb3e07b79f)
17c478bd9Sstevel@tonic-gate /*
2*159d09a2SMark Phalan  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
37c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
47c478bd9Sstevel@tonic-gate  */
57c478bd9Sstevel@tonic-gate 
67c478bd9Sstevel@tonic-gate #ifndef	__KADM5_CLIENT_INTERNAL_H__
77c478bd9Sstevel@tonic-gate #define	__KADM5_CLIENT_INTERNAL_H__
87c478bd9Sstevel@tonic-gate 
97c478bd9Sstevel@tonic-gate 
107c478bd9Sstevel@tonic-gate /*
117c478bd9Sstevel@tonic-gate  * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
127c478bd9Sstevel@tonic-gate  *
137c478bd9Sstevel@tonic-gate  *	Openvision retains the copyright to derivative works of
147c478bd9Sstevel@tonic-gate  *	this source code.  Do *NOT* create a derivative of this
157c478bd9Sstevel@tonic-gate  *	source code before consulting with your legal department.
167c478bd9Sstevel@tonic-gate  *	Do *NOT* integrate *ANY* of this source code into another
177c478bd9Sstevel@tonic-gate  *	product before consulting with your legal department.
187c478bd9Sstevel@tonic-gate  *
197c478bd9Sstevel@tonic-gate  *	For further information, read the top-level Openvision
207c478bd9Sstevel@tonic-gate  *	copyright which is contained in the top-level MIT Kerberos
217c478bd9Sstevel@tonic-gate  *	copyright.
227c478bd9Sstevel@tonic-gate  *
237c478bd9Sstevel@tonic-gate  * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
247c478bd9Sstevel@tonic-gate  *
257c478bd9Sstevel@tonic-gate  */
267c478bd9Sstevel@tonic-gate 
277c478bd9Sstevel@tonic-gate 
287c478bd9Sstevel@tonic-gate /*
297c478bd9Sstevel@tonic-gate  * Copyright 1993 OpenVision Technologies, Inc., All Rights Reserved
307c478bd9Sstevel@tonic-gate  *
31*159d09a2SMark Phalan  * $Header$
327c478bd9Sstevel@tonic-gate  *
33*159d09a2SMark Phalan  * $Log$
347c478bd9Sstevel@tonic-gate  * Revision 1.1  1996/07/24 22:22:43  tlyu
357c478bd9Sstevel@tonic-gate  * 	* Makefile.in, configure.in: break out client lib into a
367c478bd9Sstevel@tonic-gate  * 		subdirectory
377c478bd9Sstevel@tonic-gate  *
387c478bd9Sstevel@tonic-gate  * Revision 1.11  1996/07/22 20:35:46  marc
397c478bd9Sstevel@tonic-gate  * this commit includes all the changes on the OV_9510_INTEGRATION and
407c478bd9Sstevel@tonic-gate  * OV_MERGE branches.  This includes, but is not limited to, the new openvision
417c478bd9Sstevel@tonic-gate  * admin system, and major changes to gssapi to add functionality, and bring
427c478bd9Sstevel@tonic-gate  * the implementation in line with rfc1964.  before committing, the
437c478bd9Sstevel@tonic-gate  * code was built and tested for netbsd and solaris.
447c478bd9Sstevel@tonic-gate  *
457c478bd9Sstevel@tonic-gate  * Revision 1.10.4.1  1996/07/18 03:08:37  marc
467c478bd9Sstevel@tonic-gate  * merged in changes from OV_9510_BP to OV_9510_FINAL1
477c478bd9Sstevel@tonic-gate  *
487c478bd9Sstevel@tonic-gate  * Revision 1.10.2.1  1996/06/20  02:16:46  marc
497c478bd9Sstevel@tonic-gate  * File added to the repository on a branch
507c478bd9Sstevel@tonic-gate  *
517c478bd9Sstevel@tonic-gate  * Revision 1.10  1996/06/06  20:09:16  bjaspan
527c478bd9Sstevel@tonic-gate  * add destroy_cache, for kadm5_init_with_creds
537c478bd9Sstevel@tonic-gate  *
547c478bd9Sstevel@tonic-gate  * Revision 1.9  1996/05/30 21:04:42  bjaspan
557c478bd9Sstevel@tonic-gate  * add lhandle to handle
567c478bd9Sstevel@tonic-gate  *
577c478bd9Sstevel@tonic-gate  * Revision 1.8  1996/05/28 20:33:49  bjaspan
587c478bd9Sstevel@tonic-gate  * rework kadm5_config
597c478bd9Sstevel@tonic-gate  *
607c478bd9Sstevel@tonic-gate  * Revision 1.7  1996/05/17 21:36:59  bjaspan
617c478bd9Sstevel@tonic-gate  * rename to kadm5, begin implementing version 2
627c478bd9Sstevel@tonic-gate  *
637c478bd9Sstevel@tonic-gate  * Revision 1.6  1996/05/16 21:45:07  bjaspan
647c478bd9Sstevel@tonic-gate  * add context
657c478bd9Sstevel@tonic-gate  *
667c478bd9Sstevel@tonic-gate  * Revision 1.5  1996/05/08 21:10:23  bjaspan
677c478bd9Sstevel@tonic-gate  * marc's changes
687c478bd9Sstevel@tonic-gate  *
697c478bd9Sstevel@tonic-gate  * Revision 1.4  1996/01/16  20:54:30  grier
707c478bd9Sstevel@tonic-gate  * secure/3570 use krb5_ui_4 not unsigned int
717c478bd9Sstevel@tonic-gate  *
727c478bd9Sstevel@tonic-gate  * Revision 1.3  1995/11/14  17:48:57  grier
737c478bd9Sstevel@tonic-gate  * long to int
747c478bd9Sstevel@tonic-gate  *
757c478bd9Sstevel@tonic-gate  * Revision 1.2  1994/08/16  18:53:47  jik
767c478bd9Sstevel@tonic-gate  * Versioning stuff.
777c478bd9Sstevel@tonic-gate  *
787c478bd9Sstevel@tonic-gate  * Revision 1.1  1994/08/09  21:14:38  jik
797c478bd9Sstevel@tonic-gate  * Initial revision
807c478bd9Sstevel@tonic-gate  *
817c478bd9Sstevel@tonic-gate  */
827c478bd9Sstevel@tonic-gate 
837c478bd9Sstevel@tonic-gate /*
847c478bd9Sstevel@tonic-gate  * This header file is used internally by the Admin API client
857c478bd9Sstevel@tonic-gate  * libraries.  IF YOU THINK YOU NEED TO USE THIS FILE FOR ANYTHING,
867c478bd9Sstevel@tonic-gate  * YOU'RE ALMOST CERTAINLY WRONG.
877c478bd9Sstevel@tonic-gate  */
887c478bd9Sstevel@tonic-gate 
897c478bd9Sstevel@tonic-gate #ifdef __cplusplus
907c478bd9Sstevel@tonic-gate extern "C" {
917c478bd9Sstevel@tonic-gate #endif
927c478bd9Sstevel@tonic-gate 
93*159d09a2SMark Phalan 
947c478bd9Sstevel@tonic-gate #include "admin_internal.h"
957c478bd9Sstevel@tonic-gate 
967c478bd9Sstevel@tonic-gate typedef struct _kadm5_server_handle_t {
977c478bd9Sstevel@tonic-gate 	krb5_ui_4	magic_number;
987c478bd9Sstevel@tonic-gate 	krb5_ui_4	struct_version;
997c478bd9Sstevel@tonic-gate 	krb5_ui_4	api_version;
1007c478bd9Sstevel@tonic-gate 	char *		cache_name;
1017c478bd9Sstevel@tonic-gate 	int		destroy_cache;
1027c478bd9Sstevel@tonic-gate 	CLIENT *	clnt;
1037c478bd9Sstevel@tonic-gate 	krb5_context	context;
104*159d09a2SMark Phalan 	/* Solaris Kerberos */
1057c478bd9Sstevel@tonic-gate 	gss_cred_id_t	my_cred;
1067c478bd9Sstevel@tonic-gate 	kadm5_config_params params;
1077c478bd9Sstevel@tonic-gate 	struct _kadm5_server_handle_t *lhandle;
1087c478bd9Sstevel@tonic-gate } kadm5_server_handle_rec, *kadm5_server_handle_t;
1097c478bd9Sstevel@tonic-gate 
1107c478bd9Sstevel@tonic-gate #define CLIENT_CHECK_HANDLE(handle) \
1117c478bd9Sstevel@tonic-gate { \
11256a424ccSmp153739 	kadm5_server_handle_t srvr = \
11356a424ccSmp153739 	     (kadm5_server_handle_t) handle; \
11456a424ccSmp153739  \
1157c478bd9Sstevel@tonic-gate 	if (srvr->params.kpasswd_protocol == KRB5_CHGPWD_RPCSEC && ! srvr->clnt) \
11656a424ccSmp153739 	     return KADM5_BAD_SERVER_HANDLE; \
1177c478bd9Sstevel@tonic-gate 	if (! srvr->cache_name) \
11856a424ccSmp153739 	     return KADM5_BAD_SERVER_HANDLE; \
1197c478bd9Sstevel@tonic-gate 	if (! srvr->lhandle) \
12056a424ccSmp153739 	     return KADM5_BAD_SERVER_HANDLE; \
1217c478bd9Sstevel@tonic-gate }
1227c478bd9Sstevel@tonic-gate 
1237c478bd9Sstevel@tonic-gate #define CHECK_HANDLE(handle) \
1247c478bd9Sstevel@tonic-gate      GENERIC_CHECK_HANDLE(handle, KADM5_OLD_LIB_API_VERSION, \
1257c478bd9Sstevel@tonic-gate 			  KADM5_NEW_LIB_API_VERSION) \
1267c478bd9Sstevel@tonic-gate      CLIENT_CHECK_HANDLE(handle)
1277c478bd9Sstevel@tonic-gate 
1287c478bd9Sstevel@tonic-gate #ifdef __cplusplus
1297c478bd9Sstevel@tonic-gate }
1307c478bd9Sstevel@tonic-gate #endif
1317c478bd9Sstevel@tonic-gate 
1327c478bd9Sstevel@tonic-gate #endif /* __KADM5_CLIENT_INTERNAL_H__ */
133