xref: /illumos-gate/usr/src/lib/krb5/plugins/kdb/ldap/libkdb_ldap/princ_xdr.h (revision 1da57d551424de5a9d469760be7c4b4d4f10a755)
154925bf6Swillf /*
2*2dd2efa5Swillf  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
354925bf6Swillf  * Use is subject to license terms.
454925bf6Swillf  */
554925bf6Swillf 
654925bf6Swillf #ifndef _PRINC_XDR_H
754925bf6Swillf #define _PRINC_XDR_H 1
854925bf6Swillf 
954925bf6Swillf #include <sys/types.h>
1054925bf6Swillf #include <krb5.h>
1154925bf6Swillf #include <kdb.h>
1254925bf6Swillf /* Solaris Kerberos: gssrpc not supported */
1354925bf6Swillf #if 0 /************** Begin IFDEF'ed OUT *******************************/
1454925bf6Swillf #include <gssrpc/rpc.h>
1554925bf6Swillf #else
1654925bf6Swillf #include <rpc/rpc.h>
1754925bf6Swillf #endif /**************** END IFDEF'ed OUT *******************************/
1854925bf6Swillf 
1954925bf6Swillf #ifdef HAVE_MEMORY_H
2054925bf6Swillf #include <memory.h>
2154925bf6Swillf #endif
2254925bf6Swillf 
2354925bf6Swillf #define OSA_ADB_PRINC_VERSION_1  0x12345C01
2454925bf6Swillf /* Solaris Kerberos: */
2554925bf6Swillf #ifndef xdralloc_getdata
2654925bf6Swillf extern caddr_t xdralloc_getdata(XDR *xdrs);
2754925bf6Swillf #endif
2854925bf6Swillf #ifndef xdralloc_create
2954925bf6Swillf extern void xdralloc_create(XDR *xdrs, enum xdr_op op);
3054925bf6Swillf #endif
3154925bf6Swillf 
3254925bf6Swillf typedef struct _osa_pw_hist_t {
3354925bf6Swillf   int n_key_data;
3454925bf6Swillf   krb5_key_data *key_data;
3554925bf6Swillf } osa_pw_hist_ent, *osa_pw_hist_t;
3654925bf6Swillf 
3754925bf6Swillf typedef struct _osa_princ_ent_t {
3854925bf6Swillf   int                         version;
3954925bf6Swillf   char                        *policy;
4054925bf6Swillf   long                        aux_attributes;
4154925bf6Swillf   unsigned int                old_key_len;
4254925bf6Swillf   unsigned int                old_key_next;
4354925bf6Swillf   krb5_kvno                   admin_history_kvno;
4454925bf6Swillf   osa_pw_hist_ent             *old_keys;
4554925bf6Swillf } osa_princ_ent_rec, *osa_princ_ent_t;
4654925bf6Swillf 
4754925bf6Swillf bool_t
4854925bf6Swillf ldap_xdr_krb5_ui_2(XDR *xdrs, krb5_ui_2 *objp);
4954925bf6Swillf 
5054925bf6Swillf bool_t
5154925bf6Swillf ldap_xdr_krb5_int16(XDR *xdrs, krb5_int16 *objp);
5254925bf6Swillf 
5354925bf6Swillf bool_t
5454925bf6Swillf ldap_xdr_nullstring(XDR *xdrs, char **objp);
5554925bf6Swillf 
5654925bf6Swillf bool_t
5754925bf6Swillf ldap_xdr_krb5_kvno(XDR *xdrs, krb5_kvno *objp);
5854925bf6Swillf 
5954925bf6Swillf bool_t
6054925bf6Swillf ldap_xdr_krb5_key_data(XDR *xdrs, krb5_key_data *objp);
6154925bf6Swillf 
6254925bf6Swillf bool_t
6354925bf6Swillf ldap_xdr_osa_pw_hist_ent(XDR *xdrs, osa_pw_hist_ent *objp);
6454925bf6Swillf 
6554925bf6Swillf bool_t
6654925bf6Swillf ldap_xdr_osa_princ_ent_rec(XDR *xdrs, osa_princ_ent_t objp);
6754925bf6Swillf 
6854925bf6Swillf void
6954925bf6Swillf ldap_osa_free_princ_ent(osa_princ_ent_t val);
7054925bf6Swillf 
7154925bf6Swillf krb5_error_code
7254925bf6Swillf krb5_lookup_tl_kadm_data(krb5_tl_data *tl_data, osa_princ_ent_rec *princ_entry);
7354925bf6Swillf 
74*2dd2efa5Swillf /* Solaris Kerberos: adding support for key history in LDAP KDB */
7554925bf6Swillf krb5_error_code
76*2dd2efa5Swillf krb5_update_tl_kadm_data(char *, krb5_tl_data *, krb5_tl_data *);
7754925bf6Swillf 
7854925bf6Swillf #endif
79