Add support for gss_acquire_cred_with_password()
authorSimo Sorce <simo@redhat.com>
Wed, 16 Oct 2013 17:10:38 +0000 (13:10 -0400)
committerSimo Sorce <simo@redhat.com>
Thu, 17 Oct 2013 06:08:29 +0000 (02:08 -0400)
src/gss_creds.c
src/gss_ntlmssp.h
src/gss_spi.c

index 8a7049cd6dae6b0822f1269aaf4b58a8aa28358d..83c30669ef45844b476716aa3ccb980afd82cf49 100644 (file)
@@ -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);
+}
index 190fd13b5f47270a157559fef121297f142a8155..2b93d095a4c441ddbbe0c9a774c011f0aa798994 100644 (file)
@@ -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);
 
index 9f640a8fd9cd6c925f3b8091c75a500d9f5175b2..3c17e954e87b3e70a4ff2886f1e51fee6b69f2c8 100644 (file)
@@ -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)
 {