+#if HAVE_KRB5INT_DERIVE_KEY
+ code = krb5_init_context(&kcontext);
+ if (code) {
+ free(out->data);
+ out->data = NULL;
+ goto out;
+ }
+ code = krb5_k_create_key(kcontext, &kin, &key_in);
+ if (code) {
+ free(out->data);
+ out->data = NULL;
+ goto out;
+ }
+ code = krb5_k_create_key(kcontext, &kout, &key_out);
+ if (code) {
+ free(out->data);
+ out->data = NULL;
+ goto out;
+ }
+ code = krb5int_derive_key(enc, key_in, &key_out, &datain,
+ DERIVE_RFC3961);
+#else /* !HAVE_KRB5INT_DERIVE_KEY */