krb5 commit: Simplify kdb5_util create using a null password

Greg Hudson ghudson at MIT.EDU
Mon Feb 4 16:54:32 EST 2013


https://github.com/krb5/krb5/commit/1c84a94d25d62e4f78c09464f5ef9bd30bbb1e3e
commit 1c84a94d25d62e4f78c09464f5ef9bd30bbb1e3e
Author: Greg Hudson <ghudson at mit.edu>
Date:   Mon Feb 4 14:01:40 2013 -0500

    Simplify kdb5_util create using a null password
    
    kadm5_create_principal now uses a random key if passed a null
    password, so we don't need a multi-step process to create admin
    principals when creating a database any more.

 src/kadmin/dbutil/kadm5_create.c |   37 +++++++------------------------------
 1 files changed, 7 insertions(+), 30 deletions(-)

diff --git a/src/kadmin/dbutil/kadm5_create.c b/src/kadmin/dbutil/kadm5_create.c
index 567f5f5..40f89a7 100644
--- a/src/kadmin/dbutil/kadm5_create.c
+++ b/src/kadmin/dbutil/kadm5_create.c
@@ -291,39 +291,16 @@ int add_admin_princ(void *handle, krb5_context context,
         return(ERR);
     }
     ent.max_life = lifetime;
-    ent.attributes = attrs | KRB5_KDB_DISALLOW_ALL_TIX;
+    ent.attributes = attrs;
 
     ret = kadm5_create_principal(handle, &ent,
                                  (KADM5_PRINCIPAL | KADM5_MAX_LIFE |
-                                  KADM5_ATTRIBUTES),
-                                 "to-be-random");
-    if (ret) {
-        if (ret != KADM5_DUP) {
-            com_err(progname, ret, _("while creating principal %s"), fullname);
-            krb5_free_principal(context, ent.principal);
-            free(fullname);
-            return ERR;
-        }
-    } else {
-        /* only randomize key if we created the principal */
-        ret = kadm5_randkey_principal(handle, ent.principal, NULL, NULL);
-        if (ret) {
-            com_err(progname, ret, _("while randomizing principal %s"),
-                    fullname);
-            krb5_free_principal(context, ent.principal);
-            free(fullname);
-            return ERR;
-        }
-
-        ent.attributes = attrs;
-        ret = kadm5_modify_principal(handle, &ent, KADM5_ATTRIBUTES);
-        if (ret) {
-            com_err(progname, ret, _("while setting attributes on %s"),
-                    fullname);
-            krb5_free_principal(context, ent.principal);
-            free(fullname);
-            return ERR;
-        }
+                                  KADM5_ATTRIBUTES), NULL);
+    if (ret && ret != KADM5_DUP) {
+        com_err(progname, ret, _("while creating principal %s"), fullname);
+        krb5_free_principal(context, ent.principal);
+        free(fullname);
+        return ERR;
     }
 
     krb5_free_principal(context, ent.principal);


More information about the cvs-krb5 mailing list