]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cauthtool: add --gen-print-key
authorSage Weil <sage@newdream.net>
Thu, 22 Apr 2010 18:43:37 +0000 (11:43 -0700)
committerSage Weil <sage@newdream.net>
Thu, 22 Apr 2010 18:43:37 +0000 (11:43 -0700)
Just generate a random cryptokey and print it out.

src/cauthtool.cc

index 4b7c86e8fab252a6804995239579fd440b3853f4..194a070b7b147d6b59d02b9a06f3be8c21929054 100644 (file)
@@ -40,6 +40,7 @@ int main(int argc, const char **argv)
 
   const char *fn = 0;
   bool gen_key = false;
+  bool gen_print_key = false;
   const char *add_key = 0;
   bool list = false;
   bool print_key = false;
@@ -53,6 +54,8 @@ int main(int argc, const char **argv)
   FOR_EACH_ARG(args) {
     if (CONF_ARG_EQ("gen-key", 'g')) {
       CONF_SAFE_SET_ARG_VAL(&gen_key, OPT_BOOL);
+    } else if (CONF_ARG_EQ("gen-print-key", '\0')) {
+      CONF_SAFE_SET_ARG_VAL(&gen_print_key, OPT_BOOL);
     } else if (CONF_ARG_EQ("add-key", 'a')) {
       CONF_SAFE_SET_ARG_VAL(&add_key, OPT_STR);
     } else if (CONF_ARG_EQ("list", 'l')) {
@@ -73,11 +76,12 @@ int main(int argc, const char **argv)
     } else 
       usage();
   }
-  if (!fn) {
+  if (!fn && !gen_print_key) {
     cerr << me << ": must specify filename" << std::endl;
     usage();
   }
   if (!(gen_key ||
+       gen_print_key ||
        add_key ||
        list ||
        caps_fn ||
@@ -99,6 +103,13 @@ int main(int argc, const char **argv)
     }
   }
 
+  if (gen_print_key) {
+    CryptoKey key;
+    key.create(CEPH_CRYPTO_AES);
+    cout << key << std::endl;    
+    return 0;
+  }
+
   // keyring --------
   bool modified = false;
   KeyRing keyring;