summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2013-10-16 13:10:38 -0400
committerSimo Sorce <simo@redhat.com>2013-10-17 02:08:29 -0400
commite7d73a051132ab94a12d3ca42b8035bcb9c5b970 (patch)
tree206700b9c0183adfa2cecb8b234715cf07325b7a
parentbc9ea2e15794e64b91b707a0896307b4953cbfb3 (diff)
downloadgss-ntlmssp-e7d73a051132ab94a12d3ca42b8035bcb9c5b970.tar.gz
gss-ntlmssp-e7d73a051132ab94a12d3ca42b8035bcb9c5b970.tar.xz
gss-ntlmssp-e7d73a051132ab94a12d3ca42b8035bcb9c5b970.zip
Add support for gss_acquire_cred_with_password()
-rw-r--r--src/gss_creds.c29
-rw-r--r--src/gss_ntlmssp.h10
-rw-r--r--src/gss_spi.c21
3 files changed, 60 insertions, 0 deletions
diff --git a/src/gss_creds.c b/src/gss_creds.c
index 8a7049c..83c3066 100644
--- a/src/gss_creds.c
+++ b/src/gss_creds.c
@@ -396,3 +396,32 @@ uint32_t gssntlm_release_cred(uint32_t *minor_status,
return GSS_S_COMPLETE;
}
+uint32_t gssntlm_acquire_cred_with_password(uint32_t *minor_status,
+ gss_name_t desired_name,
+ gss_buffer_t password,
+ uint32_t time_req,
+ gss_OID_set desired_mechs,
+ gss_cred_usage_t cred_usage,
+ gss_cred_id_t *output_cred_handle,
+ gss_OID_set *actual_mechs,
+ uint32_t *time_rec)
+{
+ gss_key_value_element_desc element;
+ gss_key_value_set_desc cred_store;
+
+ element.key = GENERIC_CS_PASSWORD;
+ element.value = (const char *)password->value;
+
+ cred_store.count = 1;
+ cred_store.elements = &element;
+
+ return gssntlm_acquire_cred_from(minor_status,
+ desired_name,
+ time_req,
+ desired_mechs,
+ cred_usage,
+ &cred_store,
+ output_cred_handle,
+ actual_mechs,
+ time_rec);
+}
diff --git a/src/gss_ntlmssp.h b/src/gss_ntlmssp.h
index 190fd13..2b93d09 100644
--- a/src/gss_ntlmssp.h
+++ b/src/gss_ntlmssp.h
@@ -191,6 +191,16 @@ uint32_t gssntlm_acquire_cred_from(uint32_t *minor_status,
gss_OID_set *actual_mechs,
uint32_t *time_rec);
+uint32_t gssntlm_acquire_cred_with_password(uint32_t *minor_status,
+ gss_name_t desired_name,
+ gss_buffer_t password,
+ uint32_t time_req,
+ gss_OID_set desired_mechs,
+ gss_cred_usage_t cred_usage,
+ gss_cred_id_t *output_cred_handle,
+ gss_OID_set *actual_mechs,
+ uint32_t *time_rec);
+
uint32_t gssntlm_release_cred(uint32_t *minor_status,
gss_cred_id_t *cred_handle);
diff --git a/src/gss_spi.c b/src/gss_spi.c
index 9f640a8..3c17e95 100644
--- a/src/gss_spi.c
+++ b/src/gss_spi.c
@@ -98,6 +98,27 @@ OM_uint32 gss_acquire_cred(OM_uint32 *minor_status,
time_rec);
}
+OM_uint32 gssspi_acquire_cred_with_password(OM_uint32 *minor_status,
+ gss_name_t desired_name,
+ gss_buffer_t password,
+ OM_uint32 time_req,
+ gss_OID_set desired_mechs,
+ gss_cred_usage_t cred_usage,
+ gss_cred_id_t *output_cred_handle,
+ gss_OID_set *actual_mechs,
+ OM_uint32 *time_rec)
+{
+ return gssntlm_acquire_cred_with_password(minor_status,
+ desired_name,
+ password,
+ time_req,
+ desired_mechs,
+ cred_usage,
+ output_cred_handle,
+ actual_mechs,
+ time_rec);
+}
+
OM_uint32 gss_release_cred(OM_uint32 *minor_status,
gss_cred_id_t *cred_handle)
{