1 /* 2 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 3 * Use is subject to license terms. 4 */ 5 6 #ifndef _PRINC_XDR_H 7 #define _PRINC_XDR_H 1 8 9 #include <sys/types.h> 10 #include <krb5.h> 11 #include <kdb.h> 12 /* Solaris Kerberos: gssrpc not supported */ 13 #if 0 /************** Begin IFDEF'ed OUT *******************************/ 14 #include <gssrpc/rpc.h> 15 #else 16 #include <rpc/rpc.h> 17 #endif /**************** END IFDEF'ed OUT *******************************/ 18 19 #ifdef HAVE_MEMORY_H 20 #include <memory.h> 21 #endif 22 23 #define OSA_ADB_PRINC_VERSION_1 0x12345C01 24 /* Solaris Kerberos: */ 25 #ifndef xdralloc_getdata 26 extern caddr_t xdralloc_getdata(XDR *xdrs); 27 #endif 28 #ifndef xdralloc_create 29 extern void xdralloc_create(XDR *xdrs, enum xdr_op op); 30 #endif 31 32 typedef struct _osa_pw_hist_t { 33 int n_key_data; 34 krb5_key_data *key_data; 35 } osa_pw_hist_ent, *osa_pw_hist_t; 36 37 typedef struct _osa_princ_ent_t { 38 int version; 39 char *policy; 40 long aux_attributes; 41 unsigned int old_key_len; 42 unsigned int old_key_next; 43 krb5_kvno admin_history_kvno; 44 osa_pw_hist_ent *old_keys; 45 } osa_princ_ent_rec, *osa_princ_ent_t; 46 47 bool_t 48 ldap_xdr_krb5_ui_2(XDR *xdrs, krb5_ui_2 *objp); 49 50 bool_t 51 ldap_xdr_krb5_int16(XDR *xdrs, krb5_int16 *objp); 52 53 bool_t 54 ldap_xdr_nullstring(XDR *xdrs, char **objp); 55 56 bool_t 57 ldap_xdr_krb5_kvno(XDR *xdrs, krb5_kvno *objp); 58 59 bool_t 60 ldap_xdr_krb5_key_data(XDR *xdrs, krb5_key_data *objp); 61 62 bool_t 63 ldap_xdr_osa_pw_hist_ent(XDR *xdrs, osa_pw_hist_ent *objp); 64 65 bool_t 66 ldap_xdr_osa_princ_ent_rec(XDR *xdrs, osa_princ_ent_t objp); 67 68 void 69 ldap_osa_free_princ_ent(osa_princ_ent_t val); 70 71 krb5_error_code 72 krb5_lookup_tl_kadm_data(krb5_tl_data *tl_data, osa_princ_ent_rec *princ_entry); 73 74 /* Solaris Kerberos: adding support for key history in LDAP KDB */ 75 krb5_error_code 76 krb5_update_tl_kadm_data(char *, krb5_tl_data *, krb5_tl_data *); 77 78 #endif 79