shishi-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVS shishi/src


From: shishi-commit
Subject: CVS shishi/src
Date: Thu, 23 Mar 2006 11:49:24 +0100

Update of /home/jas/self/public-cvs/shishi/src
In directory latte:/home/jas/self/src/shishi/src

Modified Files:
        shisa.c 
Log Message:
Use new salt API.


--- /home/jas/self/public-cvs/shishi/src/shisa.c        2006/03/23 09:54:11     
1.42
+++ /home/jas/self/public-cvs/shishi/src/shisa.c        2006/03/23 10:49:16     
1.43
@@ -41,7 +41,7 @@
 #define N_(String) gettext_noop (String)
 
 /* Get asprintf. */
-#include "vasprintf.h"
+#include "xvasprintf.h"
 
 /* Get xgethostname. */
 #include "xgethostname.h"
@@ -81,8 +81,7 @@
 static void
 printintfield (const char *fieldname, int num)
 {
-  char *p;
-  asprintf (&p, "%d (0x%x)", num, num);
+  char *p = xasprintf ("%d (0x%x)", num, num);
   printfield (fieldname, p);
   free (p);
 }
@@ -90,8 +89,7 @@
 static void
 printuint32field (const char *fieldname, uint32_t num)
 {
-  char *p;
-  asprintf (&p, "%d (0x%x)", num, num);
+  char *p = xasprintf ("%d (0x%x)", num, num);
   printfield (fieldname, p);
   free (p);
 }
@@ -99,8 +97,7 @@
 static void
 print3field (const char *fieldname, const char *text, uint32_t num)
 {
-  char *p;
-  asprintf (&p, "%s (0x%x, %d)", text, num, num);
+  char *p = xasprintf ("%s (0x%x, %d)", text, num, num);
   printfield (fieldname, p);
   free (p);
 }
@@ -361,6 +358,17 @@
     {
       etype = shishi_cfg_clientkdcetype_fast (sh);
 
+      if (!salt && realm && principal)
+       {
+         char *name = xasprintf ("address@hidden", principal, realm);
+
+         rc = shishi_derive_default_salt (sh, name, &salt);
+         free (name);
+         if (rc != SHISHI_OK)
+           error (EXIT_FAILURE, 0, "shisa_derive_default_salt (%d):\n%s",
+                  rc, shisa_strerror (rc));
+       }
+
       if (args.string_to_key_parameter_given)
        {
          /* XXX */
@@ -380,21 +388,10 @@
                error (EXIT_FAILURE, 0, _("Could not read password"));
            }
 
-         if (salt)
-           rc = shishi_key_from_string (sh, etype,
-                                        passwd, strlen (passwd),
-                                        salt, strlen (salt),
-                                        str2keyparam, &key);
-         else
-           {
-             char *name;
-             asprintf (&name, "address@hidden", principal, realm);
-
-             rc = shishi_key_from_name (sh, etype, name,
-                                        passwd, strlen (passwd),
-                                        str2keyparam, &key);
-             free (name);
-           }
+         rc = shishi_key_from_string (sh, etype,
+                                      passwd, strlen (passwd),
+                                      salt, salt ? strlen (salt) : 0,
+                                      str2keyparam, &key);
        }
       else
        rc = shishi_key_random (sh, etype, &key);
@@ -425,7 +422,8 @@
 int
 main (int argc, char *argv[])
 {
-  char *realm = NULL, *principal = NULL;
+  const char *realm = NULL;
+  const char *principal = NULL;
   Shisa_principal ph;
   Shisa_key key;
   int rc;
@@ -519,12 +517,12 @@
       printf (_("Adding default realm `%s'...\n"), realm);
       add (realm, NULL, NULL, NULL);
 
-      asprintf (&tmp, "krbtgt/%s", realm);
+      tmp = xasprintf ("krbtgt/%s", realm);
       add (realm, tmp, &ph, &key);
       free (tmp);
 
       host = xgethostname ();
-      asprintf (&tmp, "host/%s", host);
+      tmp = xasprintf ("host/%s", host);
       free (host);
 
       memset (&key2, 0, sizeof (key2));





reply via email to

[Prev in Thread] Current Thread [Next in Thread]