Fix random number generation
authorSimo Sorce <simo@redhat.com>
Tue, 10 Mar 2015 17:32:36 +0000 (13:32 -0400)
committerSimo Sorce <simo@redhat.com>
Tue, 10 Mar 2015 17:33:10 +0000 (13:33 -0400)
Untested code is broken code :(

src/crypto.c

index a902d63..a5dea45 100644 (file)
@@ -58,13 +58,13 @@ apr_status_t SEAL_KEY_CREATE(apr_pool_t *p, struct seal_key **skey,
         memcpy(n->hkey, keys->value + keylen, keylen);
     } else {
         ret = apr_generate_random_bytes(n->ekey, keylen);
         memcpy(n->hkey, keys->value + keylen, keylen);
     } else {
         ret = apr_generate_random_bytes(n->ekey, keylen);
-        if (ret == 0) {
+        if (ret != 0) {
             ret = EFAULT;
             goto done;
         }
 
         ret = apr_generate_random_bytes(n->hkey, keylen);
             ret = EFAULT;
             goto done;
         }
 
         ret = apr_generate_random_bytes(n->hkey, keylen);
-        if (ret == 0) {
+        if (ret != 0) {
             ret = EFAULT;
             goto done;
         }
             ret = EFAULT;
             goto done;
         }
@@ -99,7 +99,7 @@ apr_status_t SEAL_BUFFER(apr_pool_t *p, struct seal_key *skey,
     /* confounder to avoid exposing random numbers directly to clients
      * as IVs */
     ret = apr_generate_random_bytes(rbuf, sizeof(rbuf));
     /* confounder to avoid exposing random numbers directly to clients
      * as IVs */
     ret = apr_generate_random_bytes(rbuf, sizeof(rbuf));
-    if (ret == 0) goto done;
+    if (ret != 0) goto done;
 
     if (cipher->length == 0) {
         /* add space for confounder and padding and MAC */
 
     if (cipher->length == 0) {
         /* add space for confounder and padding and MAC */