Merge from 1.0.0-stable branch.
[openssl.git] / engines / e_cswift.c
index 2017e48c0e0e6b2d7c01e6297ae322d2e4c1573c..bc6517984649850c6ccb3d32f9b3af5c44a5c909 100644 (file)
@@ -744,6 +744,12 @@ static int cswift_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx
        int to_return = 0;
        const RSA_METHOD * def_rsa_method;
 
+       if(!rsa->p || !rsa->q || !rsa->dmp1 || !rsa->dmq1 || !rsa->iqmp)
+               {
+               CSWIFTerr(CSWIFT_F_CSWIFT_RSA_MOD_EXP,CSWIFT_R_MISSING_KEY_COMPONENTS);
+               goto err;
+               }
+
        /* Try the limits of RSA (2048 bits) */
        if(BN_num_bytes(rsa->p) > 128 ||
                BN_num_bytes(rsa->q) > 128 ||
@@ -764,11 +770,6 @@ static int cswift_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx
                        return def_rsa_method->rsa_mod_exp(r0, I, rsa, ctx);
        }
 
-       if(!rsa->p || !rsa->q || !rsa->dmp1 || !rsa->dmq1 || !rsa->iqmp)
-               {
-               CSWIFTerr(CSWIFT_F_CSWIFT_RSA_MOD_EXP,CSWIFT_R_MISSING_KEY_COMPONENTS);
-               goto err;
-               }
        to_return = cswift_mod_exp_crt(r0, I, rsa->p, rsa->q, rsa->dmp1,
                rsa->dmq1, rsa->iqmp, ctx);
 err:
@@ -1062,7 +1063,7 @@ static int cswift_rand_bytes(unsigned char *buf, int num)
        /* limitation of cswift with values not a multiple of 32                */
        /************************************************************************/
 
-       while(num >= sizeof(buf32))
+       while(num >= (int)sizeof(buf32))
        {
                largenum.value = buf;
                largenum.nbytes = sizeof(buf32);
@@ -1089,7 +1090,7 @@ static int cswift_rand_bytes(unsigned char *buf, int num)
                if (swrc != SW_OK)
                {
                        char tmpbuf[20];
-                       CSWIFTerr(CSWIFT_F_CSWIFT_CTRL, CSWIFT_R_REQUEST_FAILED);
+                       CSWIFTerr(CSWIFT_F_CSWIFT_RAND_BYTES, CSWIFT_R_REQUEST_FAILED);
                        sprintf(tmpbuf, "%ld", swrc);
                        ERR_add_error_data(2, "CryptoSwift error number is ", tmpbuf);
                        goto err;