krb5samba: Add compat function for krb5_kt_compare
authorSimo Sorce <idra@samba.org>
Thu, 26 Apr 2012 22:22:43 +0000 (18:22 -0400)
committerSimo Sorce <idra@samba.org>
Fri, 4 May 2012 14:51:29 +0000 (16:51 +0200)
lib/krb5_wrap/keytab_util.c
lib/krb5_wrap/krb5_samba.h

index 12aca7f5a092e8feec193dd22866d7a6f9cecc63..91e499002200d254bdc45c87864b28f56d298bdf 100644 (file)
@@ -227,3 +227,32 @@ krb5_error_code kt_copy_one_principal(krb5_context context,
     krb5_kt_close (context, dst_keytab);
     return ret;
 }
+
+#if !defined(HAVE_KRB5_KT_COMPARE)
+krb5_boolean smb_krb5_kt_compare(krb5_context context,
+                                krb5_keytab_entry *entry,
+                                krb5_const_principal principal,
+                                krb5_kvno kvno,
+                                krb5_enctype enctype)
+{
+       if (principal) {
+               if (!krb5_principal_compare(context,
+                                           entry->principal, principal)) {
+                       return false;
+               }
+       }
+       if (kvno) {
+               if (entry->vno != kvno) {
+                       return false;
+               }
+       }
+       if (enctype) {
+               if (KRB5_KEY_TYPE(KRB5_KT_KEY(entry)) != enctype) {
+                       return false;
+               }
+       }
+
+       return true;
+}
+#endif
+
index d9f61e733817641fa78d305cfbee467f4e6ceace..2c492642a6e38d3a181d1f8234dd7c1092f5d8f4 100644 (file)
@@ -267,6 +267,16 @@ krb5_error_code kt_copy_one_principal(krb5_context context,
                                      krb5_kvno kvno,
                                      krb5_enctype *enctypes);
 
+#if defined(HAVE_KRB5_KT_COMPARE)
+#define smb_krb5_kt_compare krb5_kt_compare
+#else
+krb5_boolean smb_krb5_kt_compare(krb5_context context,
+                                krb5_keytab_entry *entry,
+                                krb5_const_principal principal,
+                                krb5_kvno vno,
+                                krb5_enctype enctype);
+#endif
+
 #endif /* HAVE_KRB5 */
 
 int cli_krb5_get_ticket(TALLOC_CTX *mem_ctx,