1 --- adcli-0.7.5/library/adconn.c.orig 2013-09-13 09:58:49.000000000 +0200
2 +++ adcli-0.7.5/library/adconn.c 2014-12-23 20:40:58.434276020 +0100
6 #include <gssapi/gssapi_krb5.h>
7 -#include <krb5/krb5.h>
10 #include <sasl/sasl.h>
12 @@ -494,10 +494,12 @@ _adcli_kinit_computer_creds (adcli_conn
13 code = krb5_get_init_creds_opt_alloc (k5, &opt);
14 return_val_if_fail (code == 0, code);
18 code = krb5_get_init_creds_opt_set_out_ccache (k5, opt, ccache);
19 return_val_if_fail (code == 0, code);
23 memset (&dummy, 0, sizeof (dummy));
25 @@ -561,10 +563,12 @@ _adcli_kinit_user_creds (adcli_conn *con
26 code = krb5_get_init_creds_opt_alloc (k5, &opt);
27 return_val_if_fail (code == 0, code);
31 code = krb5_get_init_creds_opt_set_out_ccache (k5, opt, ccache);
32 return_val_if_fail (code == 0, code);
36 memset (&dummy, 0, sizeof (dummy));
38 @@ -1420,7 +1424,7 @@ adcli_conn_set_login_ccache_name (adcli_
40 if (conn->login_ccache_name) {
41 if (conn->login_ccache_name_is_krb5)
42 - krb5_free_string (conn->k5, conn->login_ccache_name);
43 + krb5_xfree (conn->login_ccache_name);
45 free (conn->login_ccache_name);
47 --- adcli-0.7.5/library/adconn.h.orig 2013-08-07 10:07:41.000000000 +0200
48 +++ adcli-0.7.5/library/adconn.h 2014-12-22 22:50:24.107575979 +0100
53 -#include <krb5/krb5.h>
58 --- adcli-0.7.5/library/adenroll.c.orig 2013-09-06 10:23:58.000000000 +0200
59 +++ adcli-0.7.5/library/adenroll.c 2014-12-23 20:49:32.970921047 +0100
63 #include <gssapi/gssapi_krb5.h>
64 -#include <krb5/krb5.h>
67 #include <sasl/sasl.h>
69 @@ -852,7 +852,7 @@ set_password_with_user_creds (adcli_enro
70 message ? ": " : "", message ? message : "");
71 res = ADCLI_ERR_CREDENTIALS;
72 #ifdef HAVE_KRB5_CHPW_MESSAGE
73 - krb5_free_string (k5, message);
74 + krb5_xfree (message);
78 @@ -916,7 +916,7 @@ set_password_with_computer_creds (adcli_
79 message ? ": " : "", message ? message : "");
80 res = ADCLI_ERR_CREDENTIALS;
81 #ifdef HAVE_KRB5_CHPW_MESSAGE
82 - krb5_free_string (k5, message);
83 + krb5_xfree (message);
87 @@ -1242,10 +1242,10 @@ ensure_host_keytab (adcli_result res,
88 return ADCLI_ERR_FAIL;
91 - name = malloc (MAX_KEYTAB_NAME_LEN + 1);
92 + name = malloc (1100 + 1);
93 return_unexpected_if_fail (name != NULL);
95 - code = krb5_kt_get_name (k5, enroll->keytab, name, MAX_KEYTAB_NAME_LEN + 1);
96 + code = krb5_kt_get_name (k5, enroll->keytab, name, 1100 + 1);
97 return_unexpected_if_fail (code == 0);
99 enroll->keytab_name = name;
100 @@ -1297,6 +1297,7 @@ build_principal_salts (adcli_enroll *enr
102 krb5_error_code code;
108 @@ -1304,8 +1305,9 @@ build_principal_salts (adcli_enroll *enr
109 return_val_if_fail (salts != NULL, NULL);
111 /* Build up the salts, first a standard kerberos salt */
112 - code = krb5_principal2salt (k5, principal, &salts[i++]);
113 + code = krb5_get_pw_salt (k5, principal, &salt);
114 return_val_if_fail (code == 0, NULL);
115 + salts[i++] = salt.saltvalue;
117 /* Then a Windows 2003 computer account salt */
118 code = _adcli_krb5_w2k3_salt (k5, principal, enroll->computer_name, &salts[i++]);
119 @@ -1941,7 +1943,7 @@ adcli_enroll_set_keytab_name (adcli_enro
120 if (enroll->keytab_name_is_krb5) {
121 k5 = adcli_conn_get_krb5_context (enroll->conn);
122 return_if_fail (k5 != NULL);
123 - krb5_free_string (k5, enroll->keytab_name);
124 + krb5_xfree (enroll->keytab_name);
126 free (enroll->keytab_name);
128 --- adcli-0.7.5/library/adkrb5.c.orig 2013-04-17 22:57:03.000000000 +0200
129 +++ adcli-0.7.5/library/adkrb5.c 2014-12-23 19:50:58.044401806 +0100
131 #include "adprivate.h"
133 #include <gssapi/gssapi_krb5.h>
134 -#include <krb5/krb5.h>
139 @@ -78,7 +78,7 @@ _adcli_krb5_keytab_clear (krb5_context k
141 /* See if we should remove this entry */
142 if (!match_func (k5, &entry, match_data)) {
143 - krb5_free_keytab_entry_contents (k5, &entry);
144 + krb5_kt_free_entry (k5, &entry);
148 @@ -91,7 +91,7 @@ _adcli_krb5_keytab_clear (krb5_context k
149 return_val_if_fail (code == 0, code);
151 code = krb5_kt_remove_entry (k5, keytab, &entry);
152 - krb5_free_keytab_entry_contents (k5, &entry);
153 + krb5_kt_free_entry (k5, &entry);
157 @@ -138,9 +138,10 @@ _adcli_krb5_keytab_add_entries (krb5_con
160 for (i = 0; enctypes[i] != 0; i++) {
161 + krb5_salt k5salt = { KRB5_PADATA_PW_SALT, *salt };
162 memset (&entry, 0, sizeof(entry));
164 - code = krb5_c_string_to_key (k5, enctypes[i], password, salt, &entry.key);
165 + code = krb5_string_to_key_data_salt (k5, enctypes[i], *password, k5salt, &entry.keyblock);
169 @@ -150,7 +151,7 @@ _adcli_krb5_keytab_add_entries (krb5_con
170 code = krb5_kt_add_entry (k5, keytab, &entry);
172 entry.principal = NULL;
173 - krb5_free_keytab_entry_contents (k5, &entry);
174 + krb5_kt_free_entry (k5, &entry);
178 @@ -225,11 +226,12 @@ _adcli_krb5_w2k3_salt (krb5_context k5,
179 const char *host_netbios,
185 size_t host_length = 0;
191 * The format for the w2k3 computer account salt is:
192 @@ -239,37 +241,37 @@ _adcli_krb5_w2k3_salt (krb5_context k5,
193 realm = krb5_princ_realm (k5, principal);
194 host_length = strlen (host_netbios);
196 - size += realm->length;
197 + size += krb5_realm_length(*realm);
198 size += 4; /* "host" */
201 - size += realm->length;
202 + size += krb5_realm_length(*realm);
204 - salt->data = malloc (size);
205 + salt_data = salt->data = malloc (size);
206 return_val_if_fail (salt->data != NULL, ENOMEM);
208 /* Upper case realm */
209 - for (i = 0; i < realm->length; i++)
210 - salt->data[at + i] = toupper (realm->data[i]);
211 - at += realm->length;
212 + for (i = 0; i < krb5_realm_length(*realm); i++)
213 + salt_data[at + i] = toupper (krb5_realm_data(*realm)[i]);
214 + at += krb5_realm_length(*realm);
216 /* The string "host" */
217 - memcpy (salt->data + at, "host", 4);
218 + memcpy (salt_data + at, "host", 4);
221 /* The netbios name in lower case */
222 for (i = 0; i < host_length; i++)
223 - salt->data[at + i] = tolower (host_netbios[i]);
224 + salt_data[at + i] = tolower (host_netbios[i]);
228 - memcpy (salt->data + at, ".", 1);
229 + memcpy (salt_data + at, ".", 1);
232 /* Lower case realm */
233 - for (i = 0; i < realm->length; i++)
234 - salt->data[at + i] = tolower (realm->data[i]);
235 - at += realm->length;
236 + for (i = 0; i < krb5_realm_length(*realm); i++)
237 + salt_data[at + i] = tolower (krb5_realm_data(*realm)[i]);
238 + at += krb5_realm_length(*realm);
242 --- adcli-0.7.5/library/adldap.c.orig 2013-05-02 12:40:10.000000000 +0200
243 +++ adcli-0.7.5/library/adldap.c 2014-12-23 14:59:45.321801852 +0100
245 #include "adprivate.h"
247 #include <gssapi/gssapi_krb5.h>
248 -#include <krb5/krb5.h>
251 #include <sasl/sasl.h>