pull up r22434 from trunk
authorTom Yu <tlyu@mit.edu>
Mon, 28 Sep 2009 21:22:47 +0000 (21:22 +0000)
committerTom Yu <tlyu@mit.edu>
Mon, 28 Sep 2009 21:22:47 +0000 (21:22 +0000)
 ------------------------------------------------------------------------
 r22434 | tlyu | 2009-07-10 15:20:26 -0400 (Fri, 10 Jul 2009) | 8 lines

 ticket: 1233

 Add a new '-W' option to kadmind and kdb5_util create to allow reading
 weak random numbers on startup, to avoid long delays in testing
 situations.  Use only for testing.

 Update testing scripts accordingly.

ticket: 1233
version_fixed: 1.7.1
status: resolved

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-7@22803 dc483132-0cff-0310-8789-dd5450dbe970

src/kadmin/dbutil/kdb5_create.c
src/kadmin/server/ovsec_kadmd.c
src/kadmin/testing/scripts/start_servers_local
src/tests/dejagnu/config/default.exp

index 6a638a35122d32985e4476d7a48aae1f29caae3e..d4a082c779a6a22e62fb39a08f504e9233cc56f0 100644 (file)
@@ -167,8 +167,9 @@ void kdb5_create(argc, argv)
     krb5_data pwd, seed;
     kdb_log_context *log_ctx;
     krb5_kvno mkey_kvno;
+    int strong_random = 1;
           
-    while ((optchar = getopt(argc, argv, "s")) != -1) {
+    while ((optchar = getopt(argc, argv, "sW")) != -1) {
        switch(optchar) {
        case 's':
            do_stash++;
@@ -179,6 +180,9 @@ void kdb5_create(argc, argv)
                exit(1);
            }
            break;
+       case 'W':
+           strong_random = 0;
+           break;
        case '?':
        default:
            usage();
@@ -196,7 +200,7 @@ void kdb5_create(argc, argv)
     log_ctx = util_context->kdblog_context;
 
     printf ("Loading random data\n");
-    retval = krb5_c_random_os_entropy (util_context, 1, NULL);
+    retval = krb5_c_random_os_entropy (util_context, strong_random, NULL);
     if (retval) {
       com_err (progname, retval, "Loading random data");
       exit_status++; return;
index 81e74758fb459a417833d5e293eea3f0e94ced88..6578e623da3f838d6a691e62e98bf6afdcd42aa6 100644 (file)
@@ -222,6 +222,7 @@ int main(int argc, char *argv[])
      int    db_args_size = 0;
      char *errmsg;
      int i;
+     int strong_random = 1;
 
      kdb_log_context *log_ctx;
 
@@ -292,6 +293,8 @@ int main(int argc, char *argv[])
              usage();
            params.kadmind_port = atoi(*argv);
            params.mask |= KADM5_CONFIG_KADMIND_PORT;
+         } else if (strcmp(*argv, "-W") == 0) {
+             strong_random = 0;
          } else
               break;
          argc--; argv++;
@@ -490,7 +493,7 @@ kterr:
      }
      
      krb5_klog_syslog(LOG_INFO, "Seeding random number generator");
-     ret = krb5_c_random_os_entropy(context, 1, NULL);
+     ret = krb5_c_random_os_entropy(context, strong_random, NULL);
      if (ret) {
          krb5_klog_syslog(LOG_ERR, "Error getting random seed: %s, aborting",
                           krb5_get_error_message(context, ret));
index 5c1df4c2652a9579f7d8b1b88ba8f8471ea0deee..427e8ddd37673aafb0a8531c1800f6fee1e22b77 100755 (executable)
@@ -137,6 +137,8 @@ max_s=60
 sofar_s=0
 timewait_s=300
 
+ovadm_args=-W
+
 while true; do
        rm -f $adm_start_file
 
index aa53f333f33212ac2bdc24e84c42a5b50d93d20b..65816a10d3ba07a8d3d3fe4663fa1e36b1ad7316 100644 (file)
@@ -1272,7 +1272,7 @@ proc setup_kerberos_db { standalone } {
        }
        #exec xterm
        verbose "starting $test"
-       spawn $KDB5_UTIL -r $REALMNAME create
+       spawn $KDB5_UTIL -r $REALMNAME create -W
        expect_after $def_exp_after
 
        expect "Enter KDC database master key:"
@@ -1823,7 +1823,7 @@ proc start_kerberos_daemons { standalone } {
     # removed when this is fixed
     envstack_push
     setup_kerberos_env kdc
-    spawn $BINSH -c "exec $KADMIND -r $REALMNAME -nofork 2>>$kadmind_lfile"
+    spawn $BINSH -c "exec $KADMIND -r $REALMNAME -W -nofork 2>>$kadmind_lfile"
     envstack_pop
     set kadmind_pid [exp_pid]
     set kadmind_spawn_id $spawn_id