summaryrefslogtreecommitdiff
path: root/lib/krb5_wrap/krb5_samba.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/krb5_wrap/krb5_samba.c')
-rw-r--r--lib/krb5_wrap/krb5_samba.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/krb5_wrap/krb5_samba.c b/lib/krb5_wrap/krb5_samba.c
index 82c25103e7..482684fc11 100644
--- a/lib/krb5_wrap/krb5_samba.c
+++ b/lib/krb5_wrap/krb5_samba.c
@@ -1555,6 +1555,28 @@ krb5_error_code smb_krb5_get_creds(const char *server_s,
return ret;
}
+
+krb5_error_code smb_krb5_keyblock_init_contents(krb5_context context,
+ krb5_enctype enctype,
+ const void *data,
+ size_t length,
+ krb5_keyblock *key)
+{
+#if defined(HAVE_KRB5_KEYBLOCK_INIT)
+ return krb5_keyblock_init(context, enctype, data, length, key);
+#else
+ memset(key, 0, sizeof(krb5_keyblock));
+ KRB5_KEY_DATA(key) = SMB_MALLOC(length);
+ if (NULL == KRB5_KEY_DATA(key)) {
+ return ENOMEM;
+ }
+ memcpy(KRB5_KEY_DATA(key), data, length);
+ KRB5_KEY_LENGTH(key) = length;
+ KRB5_KEY_TYPE(key) = enctype;
+ return 0;
+#endif
+}
+
/*
simulate a kinit, putting the tgt in the given credentials cache.
Orignally by remus@snapserver.com