Use krb5_cc_set_config.
authorLove Hörnquist Åstrand <lha@kth.se>
Sat, 26 Jul 2008 18:26:22 +0000 (18:26 +0000)
committerLove Hörnquist Åstrand <lha@kth.se>
Sat, 26 Jul 2008 18:26:22 +0000 (18:26 +0000)
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23394 ec53bebd-3082-4978-b11e-865c3cabbd6b

kuser/kinit.c

index 53e1720cf343310dbbe81356603fa6ff88247bd7..41af6159c44ccb1434fb0e3888daafc464139dc9 100644 (file)
@@ -329,36 +329,25 @@ out:
 }
 
 static krb5_error_code
-store_ntlmkey(krb5_context context, krb5_ccache id, 
-             const char *domain, krb5_const_principal client,
-             struct ntlm_buf *buf)
+store_ntlmkey(krb5_context context, krb5_ccache id,
+             const char *domain, struct ntlm_buf *buf)
 {
     krb5_error_code ret;
-    krb5_creds cred;
-    
-    memset(&cred, 0, sizeof(cred));
+    krb5_data data;
+    char *name;
 
-    ret = krb5_make_principal(context, &cred.server,
-                             krb5_principal_get_realm(context, client),
-                             "@ntlm-key", domain, NULL);
-    if (ret)
-       goto out;
-    ret = krb5_copy_principal(context, client, &cred.client);
-    if (ret)
-       goto out;
+    asprintf(&name, "ntlm-key-%s", domain);
+    if (name == NULL) {
+       krb5_clear_error_string(context);
+       return ENOMEM;
+    }
     
-    cred.times.authtime = time(NULL);
-    cred.times.endtime = time(NULL) + 3600 * 24 * 30; /* XXX */
-    cred.session.keytype = ENCTYPE_ARCFOUR_HMAC_MD5;
-    ret = krb5_data_copy(&cred.session.keyvalue, buf->data, buf->length);
-    if (ret)
-       goto out;
+    data.data = buf->data;
+    data.data = buf->data;
 
-    ret = krb5_cc_store_cred(context, id, &cred);
-
-out:
-    krb5_free_cred_contents (context, &cred);
-    return 0;
+    ret = krb5_cc_set_config(context, id, name, &data);
+    free(name);
+    return ret;
 }
 
 static krb5_error_code
@@ -598,7 +587,7 @@ get_new_tickets(krb5_context context,
        krb5_err (context, 1, ret, "krb5_cc_move");
 
     if (ntlm_domain && ntlmkey.data)
-       store_ntlmkey(context, ccache, ntlm_domain, principal, &ntlmkey);
+       store_ntlmkey(context, ccache, ntlm_domain, &ntlmkey);
 
     if (enctype)
        free(enctype);