summaryrefslogtreecommitdiffstats
path: root/utils/gssd/context_heimdal.c
diff options
context:
space:
mode:
authorneilbrown <neilbrown>2005-08-26 02:04:40 +0000
committerneilbrown <neilbrown>2005-08-26 02:04:40 +0000
commit651b5d3cf5428cbf1d2cd3ae572453af249bef1e (patch)
tree8c6c088b0d010db7aa5b8a4e4e5a96287e933f93 /utils/gssd/context_heimdal.c
parenta1b7c0da9e73a607f4bc70ffe3b44b00f5d39938 (diff)
downloadnfs-utils-651b5d3cf5428cbf1d2cd3ae572453af249bef1e.tar.gz
nfs-utils-651b5d3cf5428cbf1d2cd3ae572453af249bef1e.tar.xz
nfs-utils-651b5d3cf5428cbf1d2cd3ae572453af249bef1e.zip
Add option to set rpcsec_gss debugging level (if available)
Changes to allow gssd/svcgssd to build when using Hiemdal Kerberos libraries. Note that there are still run-time issues preventing this from working when shared libraries for libgssapi and librpcsecgss are used.
Diffstat (limited to 'utils/gssd/context_heimdal.c')
-rw-r--r--utils/gssd/context_heimdal.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/utils/gssd/context_heimdal.c b/utils/gssd/context_heimdal.c
index 27c44a3..edd4dfc 100644
--- a/utils/gssd/context_heimdal.c
+++ b/utils/gssd/context_heimdal.c
@@ -37,9 +37,11 @@
#include <syslog.h>
#include <string.h>
#include <errno.h>
-#include <gssapi.h>
#include <krb5.h>
+#include <gssapi.h> /* Must use the heimdal copy! */
+#ifdef HAVE_COM_ERR_H
#include <com_err.h>
+#endif
#include "err_util.h"
#include "gss_oids.h"
#include "write_bytes.h"
@@ -83,9 +85,14 @@ int write_heimdal_enc_key(char **p, char *end, gss_ctx_id_t ctx)
}
memset(&enc_key, 0, sizeof(enc_key));
- printerr(1, "WARN: write_heimdal_enc_key: "
- "overriding heimdal keytype\n");
- enc_key.keytype = 4 /* XXX XXX XXX XXX key->keytype */;
+ enc_key.keytype = key->keytype;
+ /* XXX current kernel code only handles des-cbc-raw (4) */
+ if (enc_key.keytype != 4) {
+ printerr(1, "WARN: write_heimdal_enc_key: "
+ "overriding heimdal keytype (%d => %d)\n",
+ enc_key.keytype, 4);
+ enc_key.keytype = 4;
+ }
enc_key.keyvalue.length = key->keyvalue.length;
if ((enc_key.keyvalue.data =
calloc(1, enc_key.keyvalue.length)) == NULL) {
@@ -135,9 +142,13 @@ int write_heimdal_seq_key(char **p, char *end, gss_ctx_id_t ctx)
goto out_err_free_context;
}
- printerr(1, "WARN: write_heimdal_seq_key: "
- "overriding heimdal keytype\n");
- key->keytype = 4; /* XXX XXX XXX XXX XXX */
+ /* XXX current kernel code only handles des-cbc-raw (4) */
+ if (key->keytype != 4) {
+ printerr(1, "WARN: write_heimdal_seq_key: "
+ "overriding heimdal keytype (%d => %d)\n",
+ key->keytype, 4);
+ key->keytype = 4;
+ }
if (write_heimdal_keyblock(p, end, key)) {
goto out_err_free_key;