Reduce the number of indentation levels in generate_key().

---
 suspend.c |   75 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 40 insertions(+), 35 deletions(-)

Index: suspend/suspend.c
===================================================================
--- suspend.orig/suspend.c      2007-08-16 15:00:28.000000000 +0200
+++ suspend/suspend.c   2007-08-16 15:09:26.000000000 +0200
@@ -1061,6 +1061,7 @@ static void generate_key(void)
        int ret, fd, rnd_fd;
        struct RSA_data *rsa;
        unsigned char *buf;
+       unsigned short size;
        int j;
 
        if (!key_data)
@@ -1099,52 +1100,56 @@ static void generate_key(void)
                ret = gcry_ac_key_init(&rsa_pub, rsa_hd, GCRY_AC_KEY_PUBLIC,
                                        rsa_data_set);
 
-       if (!ret) {
-               unsigned short size;
+       if (ret)
+               goto Destroy_data_set;
 
-               ret = gcry_ac_data_new(&key_set);
-               if (ret)
-                       goto Destroy_key;
+       ret = gcry_ac_data_new(&key_set);
+       if (ret)
+               goto Destroy_key;
 
-               rnd_fd = open("/dev/urandom", O_RDONLY);
-               if (rnd_fd <= 0)
-                       goto Destroy_set;
-
-               size = KEY_SIZE + CIPHER_BLOCK;
-               if (read(rnd_fd, key_data->key, size) != size)
-                       goto Close_urandom;
+       rnd_fd = open("/dev/urandom", O_RDONLY);
+       if (rnd_fd <= 0)
+               goto Destroy_key_set;
+
+       size = KEY_SIZE + CIPHER_BLOCK;
+       if (read(rnd_fd, key_data->key, size) != size)
+               goto Close_urandom;
+
+       gcry_mpi_scan(&mpi, GCRYMPI_FMT_USG, key_data->key, size, NULL);
+       ret = gcry_ac_data_encrypt(rsa_hd, 0, rsa_pub, mpi, &key_set);
+       gcry_mpi_release(mpi);
+       if (!ret) {
+               struct encrypted_key *key = &key_data->encrypted_key;
+               char *str;
+               size_t s;
 
-               gcry_mpi_scan(&mpi, GCRYMPI_FMT_USG, key_data->key, size, NULL);
-               ret = gcry_ac_data_encrypt(rsa_hd, 0, rsa_pub, mpi, &key_set);
+               gcry_ac_data_get_index(key_set, GCRY_AC_FLAG_COPY, 0,
+                                               (const char **)&str, &mpi);
+               gcry_free(str);
+               ret = gcry_mpi_print(GCRYMPI_FMT_USG, key->data, KEY_DATA_SIZE,
+                                       &s, mpi);
                gcry_mpi_release(mpi);
                if (!ret) {
-                       struct encrypted_key *key = &key_data->encrypted_key;
-                       char *str;
-                       size_t s;
-
-                       gcry_ac_data_get_index(key_set, GCRY_AC_FLAG_COPY, 0,
-                                               (const char **)&str, &mpi);
-                       gcry_free(str);
-                       ret = gcry_mpi_print(GCRYMPI_FMT_USG, key->data,
-                                       KEY_DATA_SIZE, &s, mpi);
-                       gcry_mpi_release(mpi);
-                       if (!ret) {
-                               key->size = s;
-                               use_RSA = 'y';
-                       }
+                       key->size = s;
+                       use_RSA = 'y';
                }
+       }
+
 Close_urandom:
-               close(rnd_fd);
-Destroy_set:
-               gcry_ac_data_destroy(key_set);
+       close(rnd_fd);
+
+Destroy_key_set:
+       gcry_ac_data_destroy(key_set);
+
 Destroy_key:
-               gcry_ac_key_destroy(rsa_pub);
-       } else {
-               gcry_ac_data_destroy(rsa_data_set);
-       }
+       gcry_ac_key_destroy(rsa_pub);
+
+Destroy_data_set:
+       gcry_ac_data_destroy(rsa_data_set);
 
 Free_rsa:
        gcry_ac_close(rsa_hd);
+
 Close:
        close(fd);
 }

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Suspend-devel mailing list
Suspend-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/suspend-devel

Reply via email to