s4:cleanups More trailing spaces and tabs
authorSimo Sorce <idra@samba.org>
Wed, 23 Dec 2009 20:17:16 +0000 (15:17 -0500)
committerSimo Sorce <idra@samba.org>
Wed, 23 Dec 2009 20:17:56 +0000 (15:17 -0500)
source4/kdc/hdb-samba4.h
source4/kdc/kdc.c
source4/kdc/kdc.h
source4/kdc/kpasswdd.c
source4/kdc/pac-glue.c
source4/kdc/pac-glue.h

index fc2f9c131079f8faf023ecb676c352c3bdfcf314..5f85ce188cad7d47c993d3b8671c9ac3d15e8916 100644 (file)
@@ -1,21 +1,21 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    KDC structures
 
    Copyright (C) Andrew Tridgell       2005
    Copyright (C) Andrew Bartlett <abartlet@samba.org> 2005
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
index 2c07f89f171f950ad1ae7b6cfc6d7e97b2f4340e..b2921842e71ca291e334da619f806de6e96ffa96 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    KDC Server startup
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 #include "librpc/gen_ndr/ndr_misc.h"
 
 
-/* Disgusting hack to get a mem_ctx and lp_ctx into the hdb plugin, when 
+/* Disgusting hack to get a mem_ctx and lp_ctx into the hdb plugin, when
  * used as a keytab */
 TALLOC_CTX *hdb_samba4_mem_ctx;
 struct tevent_context *hdb_samba4_ev_ctx;
 struct loadparm_context *hdb_samba4_lp_ctx;
 
 typedef bool (*kdc_process_fn_t)(struct kdc_server *kdc,
-                                TALLOC_CTX *mem_ctx, 
-                                DATA_BLOB *input, 
+                                TALLOC_CTX *mem_ctx,
+                                DATA_BLOB *input,
                                 DATA_BLOB *reply,
                                 struct tsocket_address *peer_addr,
                                 struct tsocket_address *my_addr,
@@ -98,7 +98,7 @@ static NTSTATUS kdc_tcp_recv(void *private_data, DATA_BLOB blob)
        talloc_steal(tmp_ctx, blob.data);
 
        /* Call krb5 */
-       input = data_blob_const(blob.data + 4, blob.length - 4); 
+       input = data_blob_const(blob.data + 4, blob.length - 4);
 
        ret = kdcconn->kdc_socket->process(kdcconn->kdc_socket->kdc,
                                           tmp_ctx,
@@ -120,7 +120,7 @@ static NTSTATUS kdc_tcp_recv(void *private_data, DATA_BLOB blob)
        }
 
        RSIVAL(blob.data, 0, reply.length);
-       memcpy(blob.data + 4, reply.data, reply.length);        
+       memcpy(blob.data + 4, reply.data, reply.length);
 
        status = packet_send(kdcconn->packet, blob);
        if (!NT_STATUS_IS_OK(status)) {
@@ -169,8 +169,8 @@ static void kdc_tcp_send(struct stream_connection *conn, uint16_t flags)
 */
 
 static bool kdc_process(struct kdc_server *kdc,
-                       TALLOC_CTX *mem_ctx, 
-                       DATA_BLOB *input, 
+                       TALLOC_CTX *mem_ctx,
+                       DATA_BLOB *input,
                        DATA_BLOB *reply,
                        struct tsocket_address *peer_addr,
                        struct tsocket_address *my_addr,
@@ -197,7 +197,7 @@ static bool kdc_process(struct kdc_server *kdc,
        DEBUG(10,("Received KDC packet of length %lu from %s\n",
                                (long)input->length - 4, pa));
 
-       ret = krb5_kdc_process_krb5_request(kdc->smb_krb5_context->krb5_context, 
+       ret = krb5_kdc_process_krb5_request(kdc->smb_krb5_context->krb5_context,
                                            kdc->config,
                                            input->data, input->length,
                                            &k5_reply,
@@ -212,7 +212,7 @@ static bool kdc_process(struct kdc_server *kdc,
                *reply = data_blob_talloc(mem_ctx, k5_reply.data, k5_reply.length);
                krb5_data_free(&k5_reply);
        } else {
-               *reply = data_blob(NULL, 0);    
+               *reply = data_blob(NULL, 0);
        }
        return true;
 }
@@ -421,12 +421,12 @@ static NTSTATUS kdc_add_socket(struct kdc_server *kdc,
                return status;
        }
 
-       status = stream_setup_socket(kdc->task->event_ctx, 
+       status = stream_setup_socket(kdc->task->event_ctx,
                                     kdc->task->lp_ctx,
-                                    model_ops, 
-                                    &kdc_tcp_stream_ops, 
-                                    "ip", address, &port, 
-                                    lp_socket_options(kdc->task->lp_ctx), 
+                                    model_ops,
+                                    &kdc_tcp_stream_ops,
+                                    "ip", address, &port,
+                                    lp_socket_options(kdc->task->lp_ctx),
                                     kdc_socket);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0,("Failed to bind to %s:%u TCP - %s\n",
@@ -487,7 +487,7 @@ static NTSTATUS kdc_startup_interfaces(struct kdc_server *kdc, struct loadparm_c
        }
 
        num_interfaces = iface_count(ifaces);
-       
+
        for (i=0; i<num_interfaces; i++) {
                const char *address = talloc_strdup(tmp_ctx, iface_n_ip(ifaces, i));
                uint16_t kdc_port = lp_krb5_port(lp_ctx);
@@ -514,7 +514,7 @@ static NTSTATUS kdc_startup_interfaces(struct kdc_server *kdc, struct loadparm_c
 }
 
 
-static NTSTATUS kdc_check_generic_kerberos(struct irpc_message *msg, 
+static NTSTATUS kdc_check_generic_kerberos(struct irpc_message *msg,
                                 struct kdc_check_generic_kerberos *r)
 {
        struct PAC_Validate pac_validate;
@@ -532,14 +532,14 @@ static NTSTATUS kdc_check_generic_kerberos(struct irpc_message *msg,
        /* There is no reply to this request */
        r->out.generic_reply = data_blob(NULL, 0);
 
-       ndr_err = ndr_pull_struct_blob(&r->in.generic_request, msg, 
-                                      lp_iconv_convenience(kdc->task->lp_ctx), 
+       ndr_err = ndr_pull_struct_blob(&r->in.generic_request, msg,
+                                      lp_iconv_convenience(kdc->task->lp_ctx),
                                       &pac_validate,
                                       (ndr_pull_flags_fn_t)ndr_pull_PAC_Validate);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return NT_STATUS_INVALID_PARAMETER;
        }
-       
+
        if (pac_validate.MessageType != 3) {
                /* We don't implement any other message types - such as certificate validation - yet */
                return NT_STATUS_INVALID_PARAMETER;
@@ -550,10 +550,10 @@ static NTSTATUS kdc_check_generic_kerberos(struct irpc_message *msg,
            || pac_validate.ChecksumAndSignature.length < pac_validate.SignatureLength ) {
                return NT_STATUS_INVALID_PARAMETER;
        }
-       
-       srv_sig = data_blob_const(pac_validate.ChecksumAndSignature.data, 
+
+       srv_sig = data_blob_const(pac_validate.ChecksumAndSignature.data,
                                  pac_validate.ChecksumLength);
-       
+
        if (pac_validate.SignatureType == CKSUMTYPE_HMAC_MD5) {
                etype = ETYPE_ARCFOUR_HMAC_MD5;
        } else {
@@ -564,16 +564,16 @@ static NTSTATUS kdc_check_generic_kerberos(struct irpc_message *msg,
                }
        }
 
-       ret = krb5_make_principal(kdc->smb_krb5_context->krb5_context, &principal, 
+       ret = krb5_make_principal(kdc->smb_krb5_context->krb5_context, &principal,
                                  lp_realm(kdc->task->lp_ctx),
-                                 "krbtgt", lp_realm(kdc->task->lp_ctx), 
+                                 "krbtgt", lp_realm(kdc->task->lp_ctx),
                                  NULL);
 
        if (ret != 0) {
                return NT_STATUS_NO_MEMORY;
        }
 
-       ret = kdc->config->db[0]->hdb_fetch(kdc->smb_krb5_context->krb5_context, 
+       ret = kdc->config->db[0]->hdb_fetch(kdc->smb_krb5_context->krb5_context,
                                            kdc->config->db[0],
                                            principal,
                                            HDB_F_GET_KRBTGT | HDB_F_DECRYPT,
@@ -582,10 +582,10 @@ static NTSTATUS kdc_check_generic_kerberos(struct irpc_message *msg,
        if (ret != 0) {
                hdb_free_entry(kdc->smb_krb5_context->krb5_context, &ent);
                krb5_free_principal(kdc->smb_krb5_context->krb5_context, principal);
-       
+
                return NT_STATUS_LOGON_FAILURE;
        }
-       
+
        ret = hdb_enctype2key(kdc->smb_krb5_context->krb5_context, &ent.entry, etype, &key);
 
        if (ret != 0) {
@@ -595,11 +595,11 @@ static NTSTATUS kdc_check_generic_kerberos(struct irpc_message *msg,
        }
 
        keyblock = key->key;
-       
+
        kdc_sig.type = pac_validate.SignatureType;
        kdc_sig.signature = data_blob_const(&pac_validate.ChecksumAndSignature.data[pac_validate.ChecksumLength],
                                            pac_validate.SignatureLength);
-       ret = check_pac_checksum(msg, srv_sig, &kdc_sig, 
+       ret = check_pac_checksum(msg, srv_sig, &kdc_sig,
                           kdc->smb_krb5_context->krb5_context, &keyblock);
 
        hdb_free_entry(kdc->smb_krb5_context->krb5_context, &ent);
@@ -608,7 +608,7 @@ static NTSTATUS kdc_check_generic_kerberos(struct irpc_message *msg,
        if (ret != 0) {
                return NT_STATUS_LOGON_FAILURE;
        }
-       
+
        return NT_STATUS_OK;
 }
 
@@ -656,21 +656,21 @@ static void kdc_task_init(struct task_server *task)
 
        ret = smb_krb5_init_context(kdc, task->event_ctx, task->lp_ctx, &kdc->smb_krb5_context);
        if (ret) {
-               DEBUG(1,("kdc_task_init: krb5_init_context failed (%s)\n", 
+               DEBUG(1,("kdc_task_init: krb5_init_context failed (%s)\n",
                         error_message(ret)));
                task_server_terminate(task, "kdc: krb5_init_context failed", true);
-               return; 
+               return;
        }
 
        krb5_add_et_list(kdc->smb_krb5_context->krb5_context, initialize_hdb_error_table_r);
 
-       ret = krb5_kdc_get_config(kdc->smb_krb5_context->krb5_context, 
+       ret = krb5_kdc_get_config(kdc->smb_krb5_context->krb5_context,
                                  &kdc->config);
        if(ret) {
                task_server_terminate(task, "kdc: failed to get KDC configuration", true);
                return;
        }
+
        kdc->config->logf = kdc->smb_krb5_context->logf;
        kdc->config->db = talloc(kdc, struct HDB *);
        if (!kdc->config->db) {
@@ -678,13 +678,13 @@ static void kdc_task_init(struct task_server *task)
                return;
        }
        kdc->config->num_db = 1;
-               
-       status = hdb_samba4_create_kdc(kdc, task->event_ctx, task->lp_ctx, 
-                                      kdc->smb_krb5_context->krb5_context, 
+
+       status = hdb_samba4_create_kdc(kdc, task->event_ctx, task->lp_ctx,
+                                      kdc->smb_krb5_context->krb5_context,
                                       &kdc->config->db[0]);
        if (!NT_STATUS_IS_OK(status)) {
                task_server_terminate(task, "kdc: hdb_samba4_create_kdc (setup KDC database) failed", true);
-               return; 
+               return;
        }
 
        /* Register hdb-samba4 hooks for use as a keytab */
@@ -692,13 +692,13 @@ static void kdc_task_init(struct task_server *task)
        kdc->hdb_samba4_context = talloc(kdc, struct hdb_samba4_context);
        if (!kdc->hdb_samba4_context) {
                task_server_terminate(task, "kdc: out of memory", true);
-               return; 
+               return;
        }
 
        kdc->hdb_samba4_context->ev_ctx = task->event_ctx;
        kdc->hdb_samba4_context->lp_ctx = task->lp_ctx;
 
-       ret = krb5_plugin_register(kdc->smb_krb5_context->krb5_context, 
+       ret = krb5_plugin_register(kdc->smb_krb5_context->krb5_context,
                                   PLUGIN_TYPE_DATA, "hdb",
                                   &hdb_samba4);
        if(ret) {
@@ -713,7 +713,7 @@ static void kdc_task_init(struct task_server *task)
        }
 
        /* Registar WinDC hooks */
-       ret = krb5_plugin_register(kdc->smb_krb5_context->krb5_context, 
+       ret = krb5_plugin_register(kdc->smb_krb5_context->krb5_context,
                                   PLUGIN_TYPE_DATA, "windc",
                                   &windc_plugin_table);
        if(ret) {
@@ -730,7 +730,7 @@ static void kdc_task_init(struct task_server *task)
                return;
        }
 
-       status = IRPC_REGISTER(task->msg_ctx, irpc, KDC_CHECK_GENERIC_KERBEROS, 
+       status = IRPC_REGISTER(task->msg_ctx, irpc, KDC_CHECK_GENERIC_KERBEROS,
                               kdc_check_generic_kerberos, kdc);
        if (!NT_STATUS_IS_OK(status)) {
                task_server_terminate(task, "nbtd failed to setup monitoring", true);
index 4a715fd498af30d1cc77a6bf6f035567501d8e58..b9cf62153793add4aa25b51fbb6547e949c7a97a 100644 (file)
@@ -1,21 +1,21 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    KDC structures
 
    Copyright (C) Andrew Tridgell       2005
    Copyright (C) Andrew Bartlett <abartlet@samba.org> 2005
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -33,8 +33,8 @@ struct tsocket_address;
 
 
 bool kpasswdd_process(struct kdc_server *kdc,
-                     TALLOC_CTX *mem_ctx, 
-                     DATA_BLOB *input, 
+                     TALLOC_CTX *mem_ctx,
+                     DATA_BLOB *input,
                      DATA_BLOB *reply,
                      struct tsocket_address *peer_addr,
                      struct tsocket_address *my_addr,
index 9b3336a7a126bc4aad479d966877151ba76672ff..8406887dad0b473b659a73a868921319c0dfd945 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    kpasswd Server implementation
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 #endif
 
 /* Return true if there is a valid error packet formed in the error_blob */
-static bool kpasswdd_make_error_reply(struct kdc_server *kdc, 
-                                    TALLOC_CTX *mem_ctx, 
-                                    uint16_t result_code, 
-                                    const char *error_string, 
-                                    DATA_BLOB *error_blob) 
+static bool kpasswdd_make_error_reply(struct kdc_server *kdc,
+                                    TALLOC_CTX *mem_ctx,
+                                    uint16_t result_code,
+                                    const char *error_string,
+                                    DATA_BLOB *error_blob)
 {
        char *error_string_utf8;
        size_t len;
-       
+
        DEBUG(result_code ? 3 : 10, ("kpasswdd: %s\n", error_string));
 
        if (!push_utf8_talloc(mem_ctx, &error_string_utf8, error_string, &len)) {
@@ -70,17 +70,17 @@ static bool kpasswdd_make_error_reply(struct kdc_server *kdc,
 }
 
 /* Return true if there is a valid error packet formed in the error_blob */
-static bool kpasswdd_make_unauth_error_reply(struct kdc_server *kdc, 
-                                           TALLOC_CTX *mem_ctx, 
-                                           uint16_t result_code, 
-                                           const char *error_string, 
-                                           DATA_BLOB *error_blob) 
+static bool kpasswdd_make_unauth_error_reply(struct kdc_server *kdc,
+                                           TALLOC_CTX *mem_ctx,
+                                           uint16_t result_code,
+                                           const char *error_string,
+                                           DATA_BLOB *error_blob)
 {
        bool ret;
        int kret;
        DATA_BLOB error_bytes;
        krb5_data k5_error_bytes, k5_error_blob;
-       ret = kpasswdd_make_error_reply(kdc, mem_ctx, result_code, error_string, 
+       ret = kpasswdd_make_error_reply(kdc, mem_ctx, result_code, error_string,
                                       &error_bytes);
        if (!ret) {
                return false;
@@ -88,7 +88,7 @@ static bool kpasswdd_make_unauth_error_reply(struct kdc_server *kdc,
        k5_error_bytes.data = error_bytes.data;
        k5_error_bytes.length = error_bytes.length;
        kret = krb5_mk_error(kdc->smb_krb5_context->krb5_context,
-                            result_code, NULL, &k5_error_bytes, 
+                            result_code, NULL, &k5_error_bytes,
                             NULL, NULL, NULL, NULL, &k5_error_blob);
        if (kret) {
                return false;
@@ -101,21 +101,21 @@ static bool kpasswdd_make_unauth_error_reply(struct kdc_server *kdc,
        return true;
 }
 
-static bool kpasswd_make_pwchange_reply(struct kdc_server *kdc, 
-                                       TALLOC_CTX *mem_ctx, 
-                                       NTSTATUS status, 
+static bool kpasswd_make_pwchange_reply(struct kdc_server *kdc,
+                                       TALLOC_CTX *mem_ctx,
+                                       NTSTATUS status,
                                        enum samPwdChangeReason reject_reason,
                                        struct samr_DomInfo1 *dominfo,
-                                       DATA_BLOB *error_blob) 
+                                       DATA_BLOB *error_blob)
 {
        if (NT_STATUS_EQUAL(status, NT_STATUS_NO_SUCH_USER)) {
-               return kpasswdd_make_error_reply(kdc, mem_ctx, 
+               return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                KRB5_KPASSWD_ACCESSDENIED,
                                                "No such user when changing password",
                                                error_blob);
        }
        if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
-               return kpasswdd_make_error_reply(kdc, mem_ctx, 
+               return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                KRB5_KPASSWD_ACCESSDENIED,
                                                "Not permitted to change password",
                                                error_blob);
@@ -138,31 +138,31 @@ static bool kpasswd_make_pwchange_reply(struct kdc_server *kdc,
                                                        dominfo->min_password_length, dominfo->password_history_length);
                        break;
                }
-               return kpasswdd_make_error_reply(kdc, mem_ctx, 
+               return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                KRB5_KPASSWD_SOFTERROR,
                                                reject_string,
                                                error_blob);
        }
        if (!NT_STATUS_IS_OK(status)) {
-               return kpasswdd_make_error_reply(kdc, mem_ctx, 
+               return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                 KRB5_KPASSWD_HARDERROR,
                                                 talloc_asprintf(mem_ctx, "failed to set password: %s", nt_errstr(status)),
                                                 error_blob);
-               
+
        }
        return kpasswdd_make_error_reply(kdc, mem_ctx, KRB5_KPASSWD_SUCCESS,
                                        "Password changed",
                                        error_blob);
 }
 
-/* 
+/*
    A user password change
-   
+
    Return true if there is a valid error packet (or sucess) formed in
    the error_blob
 */
 static bool kpasswdd_change_password(struct kdc_server *kdc,
-                                    TALLOC_CTX *mem_ctx, 
+                                    TALLOC_CTX *mem_ctx,
                                     struct auth_session_info *session_info,
                                     const DATA_BLOB *password,
                                     DATA_BLOB *reply)
@@ -174,45 +174,45 @@ static bool kpasswdd_change_password(struct kdc_server *kdc,
 
        samdb = samdb_connect(mem_ctx, kdc->task->event_ctx, kdc->task->lp_ctx, system_session(kdc->task->lp_ctx));
        if (!samdb) {
-               return kpasswdd_make_error_reply(kdc, mem_ctx, 
+               return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                KRB5_KPASSWD_HARDERROR,
                                                "Failed to open samdb",
                                                reply);
        }
-       
-       DEBUG(3, ("Changing password of %s\\%s (%s)\n", 
+
+       DEBUG(3, ("Changing password of %s\\%s (%s)\n",
                  session_info->server_info->domain_name,
                  session_info->server_info->account_name,
                  dom_sid_string(mem_ctx, session_info->security_token->user_sid)));
 
        /* User password change */
-       status = samdb_set_password_sid(samdb, mem_ctx, 
+       status = samdb_set_password_sid(samdb, mem_ctx,
                                        session_info->security_token->user_sid,
-                                       password, NULL, NULL, 
+                                       password, NULL, NULL,
                                        true, /* this is a user password change */
                                        &reject_reason,
                                        &dominfo);
-       return kpasswd_make_pwchange_reply(kdc, mem_ctx, 
-                                          status, 
+       return kpasswd_make_pwchange_reply(kdc, mem_ctx,
+                                          status,
                                           reject_reason,
-                                          dominfo, 
+                                          dominfo,
                                           reply);
 
 }
 
 static bool kpasswd_process_request(struct kdc_server *kdc,
-                                   TALLOC_CTX *mem_ctx, 
+                                   TALLOC_CTX *mem_ctx,
                                    struct gensec_security *gensec_security,
                                    uint16_t version,
-                                   DATA_BLOB *input, 
+                                   DATA_BLOB *input,
                                    DATA_BLOB *reply)
 {
        struct auth_session_info *session_info;
        size_t pw_len;
 
-       if (!NT_STATUS_IS_OK(gensec_session_info(gensec_security, 
+       if (!NT_STATUS_IS_OK(gensec_session_info(gensec_security,
                                                 &session_info))) {
-               return kpasswdd_make_error_reply(kdc, mem_ctx, 
+               return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                KRB5_KPASSWD_HARDERROR,
                                                "gensec_session_info failed!",
                                                reply);
@@ -222,16 +222,16 @@ static bool kpasswd_process_request(struct kdc_server *kdc,
        case KRB5_KPASSWD_VERS_CHANGEPW:
        {
                DATA_BLOB password;
-               if (!convert_string_talloc_convenience(mem_ctx, lp_iconv_convenience(kdc->task->lp_ctx), 
-                                              CH_UTF8, CH_UTF16, 
-                                              (const char *)input->data, 
+               if (!convert_string_talloc_convenience(mem_ctx, lp_iconv_convenience(kdc->task->lp_ctx),
+                                              CH_UTF8, CH_UTF16,
+                                              (const char *)input->data,
                                               input->length,
                                               (void **)&password.data, &pw_len, false)) {
                        return false;
                }
                password.length = pw_len;
-       
-               return kpasswdd_change_password(kdc, mem_ctx, session_info, 
+
+               return kpasswdd_change_password(kdc, mem_ctx, session_info,
                                                &password, reply);
                break;
        }
@@ -262,26 +262,26 @@ static bool kpasswd_process_request(struct kdc_server *kdc,
                ret = decode_ChangePasswdDataMS(input->data, input->length,
                                                &chpw, &len);
                if (ret) {
-                       return kpasswdd_make_error_reply(kdc, mem_ctx, 
+                       return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                        KRB5_KPASSWD_MALFORMED,
                                                        "failed to decode password change structure",
                                                        reply);
                }
-               
-               if (!convert_string_talloc_convenience(mem_ctx, lp_iconv_convenience(kdc->task->lp_ctx), 
-                                              CH_UTF8, CH_UTF16, 
-                                              (const char *)chpw.newpasswd.data, 
+
+               if (!convert_string_talloc_convenience(mem_ctx, lp_iconv_convenience(kdc->task->lp_ctx),
+                                              CH_UTF8, CH_UTF16,
+                                              (const char *)chpw.newpasswd.data,
                                               chpw.newpasswd.length,
                                               (void **)&password.data, &pw_len, false)) {
                        free_ChangePasswdDataMS(&chpw);
                        return false;
                }
-               
+
                password.length = pw_len;
-       
-               if ((chpw.targname && !chpw.targrealm) 
+
+               if ((chpw.targname && !chpw.targrealm)
                    || (!chpw.targname && chpw.targrealm)) {
-                       return kpasswdd_make_error_reply(kdc, mem_ctx, 
+                       return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                        KRB5_KPASSWD_MALFORMED,
                                                        "Realm and principal must be both present, or neither present",
                                                        reply);
@@ -289,14 +289,14 @@ static bool kpasswd_process_request(struct kdc_server *kdc,
                if (chpw.targname && chpw.targrealm) {
 #ifdef SAMBA4_INTERNAL_HEIMDAL
                        if (_krb5_principalname2krb5_principal(kdc->smb_krb5_context->krb5_context,
-                                                              &principal, *chpw.targname, 
+                                                              &principal, *chpw.targname,
                                                               *chpw.targrealm) != 0) {
                                free_ChangePasswdDataMS(&chpw);
-                               return kpasswdd_make_error_reply(kdc, mem_ctx, 
+                               return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                                KRB5_KPASSWD_MALFORMED,
                                                                "failed to extract principal to set",
                                                                reply);
-                               
+
                        }
 #else /* SAMBA4_INTERNAL_HEIMDAL */
                                return kpasswdd_make_error_reply(kdc, mem_ctx,
@@ -306,54 +306,54 @@ static bool kpasswd_process_request(struct kdc_server *kdc,
 #endif /* SAMBA4_INTERNAL_HEIMDAL */
                } else {
                        free_ChangePasswdDataMS(&chpw);
-                       return kpasswdd_change_password(kdc, mem_ctx, session_info, 
+                       return kpasswdd_change_password(kdc, mem_ctx, session_info,
                                                        &password, reply);
                }
                free_ChangePasswdDataMS(&chpw);
 
                if (krb5_unparse_name(context, principal, &set_password_on_princ) != 0) {
                        krb5_free_principal(context, principal);
-                       return kpasswdd_make_error_reply(kdc, mem_ctx, 
+                       return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                        KRB5_KPASSWD_MALFORMED,
                                                        "krb5_unparse_name failed!",
                                                        reply);
                }
-               
+
                krb5_free_principal(context, principal);
-               
+
                samdb = samdb_connect(mem_ctx, kdc->task->event_ctx, kdc->task->lp_ctx, session_info);
                if (!samdb) {
-                       return kpasswdd_make_error_reply(kdc, mem_ctx, 
+                       return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                         KRB5_KPASSWD_HARDERROR,
                                                         "Unable to open database!",
                                                         reply);
                }
 
-               DEBUG(3, ("%s\\%s (%s) is changing password of %s\n", 
+               DEBUG(3, ("%s\\%s (%s) is changing password of %s\n",
                          session_info->server_info->domain_name,
                          session_info->server_info->account_name,
-                         dom_sid_string(mem_ctx, session_info->security_token->user_sid), 
+                         dom_sid_string(mem_ctx, session_info->security_token->user_sid),
                          set_password_on_princ));
                ret = ldb_transaction_start(samdb);
                if (ret) {
                        status = NT_STATUS_TRANSACTION_ABORTED;
-                       return kpasswd_make_pwchange_reply(kdc, mem_ctx, 
+                       return kpasswd_make_pwchange_reply(kdc, mem_ctx,
                                                           status,
                                                           SAM_PWD_CHANGE_NO_ERROR,
-                                                          NULL, 
+                                                          NULL,
                                                           reply);
                }
 
-               status = crack_user_principal_name(samdb, mem_ctx, 
-                                                  set_password_on_princ, 
+               status = crack_user_principal_name(samdb, mem_ctx,
+                                                  set_password_on_princ,
                                                   &set_password_on_dn, NULL);
                free(set_password_on_princ);
                if (!NT_STATUS_IS_OK(status)) {
                        ldb_transaction_cancel(samdb);
-                       return kpasswd_make_pwchange_reply(kdc, mem_ctx, 
+                       return kpasswd_make_pwchange_reply(kdc, mem_ctx,
                                                           status,
                                                           SAM_PWD_CHANGE_NO_ERROR,
-                                                          NULL, 
+                                                          NULL,
                                                           reply);
                }
 
@@ -372,7 +372,7 @@ static bool kpasswd_process_request(struct kdc_server *kdc,
                        /* Admin password set */
                        status = samdb_set_password(samdb, mem_ctx,
                                                    set_password_on_dn, NULL,
-                                                   msg, &password, NULL, NULL, 
+                                                   msg, &password, NULL, NULL,
                                                    false, /* this is not a user password change */
                                                    &reject_reason, &dominfo);
                }
@@ -398,17 +398,17 @@ static bool kpasswd_process_request(struct kdc_server *kdc,
                } else {
                        ldb_transaction_cancel(samdb);
                }
-               return kpasswd_make_pwchange_reply(kdc, mem_ctx, 
+               return kpasswd_make_pwchange_reply(kdc, mem_ctx,
                                                   status,
-                                                  reject_reason, 
-                                                  dominfo, 
+                                                  reject_reason,
+                                                  dominfo,
                                                   reply);
        }
        default:
-               return kpasswdd_make_error_reply(kdc, mem_ctx, 
+               return kpasswdd_make_error_reply(kdc, mem_ctx,
                                                 KRB5_KPASSWD_BAD_VERSION,
-                                                talloc_asprintf(mem_ctx, 
-                                                                "Protocol version %u not supported", 
+                                                talloc_asprintf(mem_ctx,
+                                                                "Protocol version %u not supported",
                                                                 version),
                                                 reply);
        }
@@ -416,8 +416,8 @@ static bool kpasswd_process_request(struct kdc_server *kdc,
 }
 
 bool kpasswdd_process(struct kdc_server *kdc,
-                     TALLOC_CTX *mem_ctx, 
-                     DATA_BLOB *input, 
+                     TALLOC_CTX *mem_ctx,
+                     DATA_BLOB *input,
                      DATA_BLOB *reply,
                      struct tsocket_address *peer_addr,
                      struct tsocket_address *my_addr,
@@ -466,11 +466,11 @@ bool kpasswdd_process(struct kdc_server *kdc,
                talloc_free(tmp_ctx);
                return false;
        }
-       
+
        krb_priv_len = len - ap_req_len;
        ap_req = data_blob_const(&input->data[header_len], ap_req_len);
        krb_priv_req = data_blob_const(&input->data[header_len + ap_req_len], krb_priv_len);
-       
+
        server_credentials = cli_credentials_init(tmp_ctx);
        if (!server_credentials) {
                DEBUG(1, ("Failed to init server credentials\n"));
@@ -478,7 +478,7 @@ bool kpasswdd_process(struct kdc_server *kdc,
        }
 
        /* We want the credentials subsystem to use the krb5 context
-        * we already have, rather than a new context */        
+        * we already have, rather than a new context */
        cli_credentials_set_krb5_context(server_credentials, kdc->smb_krb5_context);
        cli_credentials_set_conf(server_credentials, kdc->task->lp_ctx);
 
@@ -487,10 +487,10 @@ bool kpasswdd_process(struct kdc_server *kdc,
        cli_credentials_set_username(server_credentials, "kadmin/changepw", CRED_SPECIFIED);
        ret = cli_credentials_set_keytab_name(server_credentials, kdc->task->event_ctx, kdc->task->lp_ctx, keytab_name, CRED_SPECIFIED);
        if (ret != 0) {
-               ret = kpasswdd_make_unauth_error_reply(kdc, mem_ctx, 
+               ret = kpasswdd_make_unauth_error_reply(kdc, mem_ctx,
                                                       KRB5_KPASSWD_HARDERROR,
-                                                      talloc_asprintf(mem_ctx, 
-                                                                      "Failed to obtain server credentials for kadmin/changepw: %s\n", 
+                                                      talloc_asprintf(mem_ctx,
+                                                                      "Failed to obtain server credentials for kadmin/changepw: %s\n",
                                                                       nt_errstr(nt_status)),
                                                       &krb_priv_rep);
                ap_rep.length = 0;
@@ -500,16 +500,16 @@ bool kpasswdd_process(struct kdc_server *kdc,
                talloc_free(tmp_ctx);
                return ret;
        }
-       
+
        /* We don't strictly need to call this wrapper, and could call
         * gensec_server_start directly, as we have no need for NTLM
         * and we have a PAC, but this ensures that the wrapper can be
         * safely extended for other helpful things in future */
-       nt_status = samba_server_gensec_start(tmp_ctx, kdc->task->event_ctx, 
+       nt_status = samba_server_gensec_start(tmp_ctx, kdc->task->event_ctx,
                                              kdc->task->msg_ctx,
                                              kdc->task->lp_ctx,
                                              server_credentials,
-                                             "kpasswd", 
+                                             "kpasswd",
                                              &gensec_security);
        if (!NT_STATUS_IS_OK(nt_status)) {
                talloc_free(tmp_ctx);
@@ -549,11 +549,11 @@ bool kpasswdd_process(struct kdc_server *kdc,
        /* Accept the AP-REQ and generate teh AP-REP we need for the reply */
        nt_status = gensec_update(gensec_security, tmp_ctx, ap_req, &ap_rep);
        if (!NT_STATUS_IS_OK(nt_status) && !NT_STATUS_EQUAL(nt_status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
-               
-               ret = kpasswdd_make_unauth_error_reply(kdc, mem_ctx, 
+
+               ret = kpasswdd_make_unauth_error_reply(kdc, mem_ctx,
                                                       KRB5_KPASSWD_HARDERROR,
-                                                      talloc_asprintf(mem_ctx, 
-                                                                      "gensec_update failed: %s", 
+                                                      talloc_asprintf(mem_ctx,
+                                                                      "gensec_update failed: %s",
                                                                       nt_errstr(nt_status)),
                                                       &krb_priv_rep);
                ap_rep.length = 0;
@@ -567,10 +567,10 @@ bool kpasswdd_process(struct kdc_server *kdc,
        /* Extract the data from the KRB-PRIV half of the message */
        nt_status = gensec_unwrap(gensec_security, tmp_ctx, &krb_priv_req, &kpasswd_req);
        if (!NT_STATUS_IS_OK(nt_status)) {
-               ret = kpasswdd_make_unauth_error_reply(kdc, mem_ctx, 
+               ret = kpasswdd_make_unauth_error_reply(kdc, mem_ctx,
                                                       KRB5_KPASSWD_HARDERROR,
-                                                      talloc_asprintf(mem_ctx, 
-                                                                      "gensec_unwrap failed: %s", 
+                                                      talloc_asprintf(mem_ctx,
+                                                                      "gensec_unwrap failed: %s",
                                                                       nt_errstr(nt_status)),
                                                       &krb_priv_rep);
                ap_rep.length = 0;
@@ -582,10 +582,10 @@ bool kpasswdd_process(struct kdc_server *kdc,
        }
 
        /* Figure out something to do with it (probably changing a password...) */
-       ret = kpasswd_process_request(kdc, tmp_ctx, 
-                                     gensec_security, 
-                                     version, 
-                                     &kpasswd_req, &kpasswd_rep); 
+       ret = kpasswd_process_request(kdc, tmp_ctx,
+                                     gensec_security,
+                                     version,
+                                     &kpasswd_req, &kpasswd_rep);
        if (!ret) {
                /* Argh! */
                return false;
@@ -593,13 +593,13 @@ bool kpasswdd_process(struct kdc_server *kdc,
 
        /* And wrap up the reply: This ensures that the error message
         * or success can be verified by the client */
-       nt_status = gensec_wrap(gensec_security, tmp_ctx, 
+       nt_status = gensec_wrap(gensec_security, tmp_ctx,
                                &kpasswd_rep, &krb_priv_rep);
        if (!NT_STATUS_IS_OK(nt_status)) {
-               ret = kpasswdd_make_unauth_error_reply(kdc, mem_ctx, 
+               ret = kpasswdd_make_unauth_error_reply(kdc, mem_ctx,
                                                       KRB5_KPASSWD_HARDERROR,
-                                                      talloc_asprintf(mem_ctx, 
-                                                                      "gensec_wrap failed: %s", 
+                                                      talloc_asprintf(mem_ctx,
+                                                                      "gensec_wrap failed: %s",
                                                                       nt_errstr(nt_status)),
                                                       &krb_priv_rep);
                ap_rep.length = 0;
@@ -609,7 +609,7 @@ bool kpasswdd_process(struct kdc_server *kdc,
                talloc_free(tmp_ctx);
                return ret;
        }
-       
+
 reply:
        *reply = data_blob_talloc(mem_ctx, NULL, krb_priv_rep.length + ap_rep.length + header_len);
        if (!reply->data) {
@@ -619,11 +619,11 @@ reply:
        RSSVAL(reply->data, 0, reply->length);
        RSSVAL(reply->data, 2, 1); /* This is a version 1 reply, MS change/set or otherwise */
        RSSVAL(reply->data, 4, ap_rep.length);
-       memcpy(reply->data + header_len, 
-              ap_rep.data, 
+       memcpy(reply->data + header_len,
+              ap_rep.data,
               ap_rep.length);
-       memcpy(reply->data + header_len + ap_rep.length, 
-              krb_priv_rep.data, 
+       memcpy(reply->data + header_len + ap_rep.length,
+              krb_priv_rep.data,
               krb_priv_rep.length);
 
        talloc_free(tmp_ctx);
index 3d542d9a942e1c28cff459556f90e6167cdd7409..d921899c610945b222fac404a3c0d66e6daeac19 100644 (file)
@@ -1,21 +1,21 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    PAC Glue between Samba and the KDC
-   
+
    Copyright (C) Andrew Bartlett <abartlet@samba.org> 2005-2009
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 struct krb5_dh_moduli;
 struct _krb5_krb_auth_data;
 
-static krb5_error_code samba_kdc_plugin_init(krb5_context context, void **ptr) 
+static krb5_error_code samba_kdc_plugin_init(krb5_context context, void **ptr)
 {
        *ptr = NULL;
        return 0;
 }
 
-static void    samba_kdc_plugin_fini(void *ptr) 
+static void    samba_kdc_plugin_fini(void *ptr)
 {
        return;
 }
 
 static krb5_error_code make_pac(krb5_context context,
-                               TALLOC_CTX *mem_ctx, 
+                               TALLOC_CTX *mem_ctx,
                                struct smb_iconv_convenience *iconv_convenience,
                                struct auth_serversupplied_info *server_info,
-                               krb5_pac *pac) 
+                               krb5_pac *pac)
 {
        union PAC_INFO info;
        struct netr_SamInfo3 *info3;
@@ -105,7 +105,7 @@ static krb5_error_code make_pac(krb5_context context,
 
 /* Given the right private pointer from hdb_samba4, get a PAC from the attached ldb messages */
 static krb5_error_code samba_kdc_get_pac(void *priv,
-                                        krb5_context context, 
+                                        krb5_context context,
                                         struct hdb_entry_ex *client,
                                         krb5_pac *pac)
 {
@@ -151,7 +151,7 @@ static krb5_error_code samba_kdc_get_pac(void *priv,
 
 static krb5_error_code samba_kdc_reget_pac(void *priv, krb5_context context,
                                           const krb5_principal client_principal,
-                                          struct hdb_entry_ex *client,  
+                                          struct hdb_entry_ex *client,
                                           struct hdb_entry_ex *server, krb5_pac *pac)
 {
        krb5_error_code ret;
@@ -163,7 +163,7 @@ static krb5_error_code samba_kdc_reget_pac(void *priv, krb5_context context,
        struct auth_serversupplied_info *server_info_out;
 
        TALLOC_CTX *mem_ctx = talloc_named(p, 0, "samba_get_pac context");
-       
+
        if (!mem_ctx) {
                return ENOMEM;
        }
@@ -230,8 +230,8 @@ static void samba_kdc_build_edata_reply(TALLOC_CTX *tmp_ctx, krb5_data *e_data,
  * the account_ok routine in auth/auth_sam.c for consistancy */
 
 
-static krb5_error_code samba_kdc_check_client_access(void *priv, 
-                                                    krb5_context context, 
+static krb5_error_code samba_kdc_check_client_access(void *priv,
+                                                    krb5_context context,
                                                     krb5_kdc_configuration *config,
                                                     hdb_entry_ex *client_ex, const char *client_name,
                                                     hdb_entry_ex *server_ex, const char *server_name,
@@ -253,7 +253,7 @@ static krb5_error_code samba_kdc_check_client_access(void *priv,
        if (!tmp_ctx) {
                return ENOMEM;
        }
-       
+
        if (addresses) {
                for (i=0; i < addresses->len; i++) {
                        if (addresses->val->addr_type == KRB5_ADDRESS_NETBIOS) {
@@ -276,7 +276,7 @@ static krb5_error_code samba_kdc_check_client_access(void *priv,
        password_change = (server_ex && server_ex->entry.flags.change_pw);
 
        /* we allow all kinds of trusts here */
-       nt_status = authsam_account_ok(tmp_ctx, 
+       nt_status = authsam_account_ok(tmp_ctx,
                                       p->samdb,
                                       MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT | MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT,
                                       p->realm_dn,
index 1c14f7fdb6fecfe8d6c1859d0b79307d4197f3d3..f838ec353ad884a4b530aaa1dd73a07facc26e8f 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    KDC Server startup
@@ -9,12 +9,12 @@
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */