summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/librpc/crypto/gse.c3
-rw-r--r--source3/rpc_server/dcesrv_gssapi.c9
2 files changed, 9 insertions, 3 deletions
diff --git a/source3/librpc/crypto/gse.c b/source3/librpc/crypto/gse.c
index 22b940a1f3..ca99f9b03a 100644
--- a/source3/librpc/crypto/gse.c
+++ b/source3/librpc/crypto/gse.c
@@ -972,7 +972,8 @@ NTSTATUS gse_get_authz_data(struct gse_context *gse_ctx,
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS gse_get_authtime(struct gse_context *gse_ctx, time_t *authtime)
+NTSTATUS gse_get_pac_blob(struct gse_context *gse_ctx,
+ TALLOC_CTX *mem_ctx, DATA_BLOB *pac_blob)
{
return NT_STATUS_NOT_IMPLEMENTED;
}
diff --git a/source3/rpc_server/dcesrv_gssapi.c b/source3/rpc_server/dcesrv_gssapi.c
index b63f4f129e..534e8a4189 100644
--- a/source3/rpc_server/dcesrv_gssapi.c
+++ b/source3/rpc_server/dcesrv_gssapi.c
@@ -23,8 +23,9 @@
#include "../librpc/gen_ndr/ndr_krb5pac.h"
#include "librpc/crypto/gse.h"
#include "auth.h"
+#ifdef HAVE_KRB5
#include "libcli/auth/krb5_wrap.h"
-
+#endif
NTSTATUS gssapi_server_auth_start(TALLOC_CTX *mem_ctx,
bool do_sign,
bool do_seal,
@@ -107,7 +108,7 @@ NTSTATUS gssapi_server_get_user_info(struct gse_context *gse_ctx,
{
TALLOC_CTX *tmp_ctx;
DATA_BLOB pac_blob;
- struct PAC_DATA *pac_data;
+ struct PAC_DATA *pac_data = NULL;
struct PAC_LOGON_INFO *logon_info = NULL;
unsigned int i;
bool is_mapped;
@@ -134,9 +135,13 @@ NTSTATUS gssapi_server_get_user_info(struct gse_context *gse_ctx,
goto done;
}
+#ifdef HAVE_KRB5
status = kerberos_decode_pac(tmp_ctx,
pac_blob,
NULL, NULL, NULL, NULL, 0, &pac_data);
+#else
+ status = NT_STATUS_ACCESS_DENIED;
+#endif
data_blob_free(&pac_blob);
if (!NT_STATUS_IS_OK(status)) {
goto done;