Fix 3DES Monte Carlo test file output which previously outputted
[openssl.git] / fips / des / fips_desmovs.c
index 16b8dc1936aee5983f76b6afe9d9842283affe45..30fa01fa3cf0b4bcf4d5de1659bac2307c8189ab 100644 (file)
@@ -105,17 +105,17 @@ static int DESTest(EVP_CIPHER_CTX *ctx,
        EXIT(1);
        }
 
-    if (strcasecmp(amode, "CBC") == 0)
+    if (fips_strcasecmp(amode, "CBC") == 0)
        cipher = EVP_des_ede3_cbc();
-    else if (strcasecmp(amode, "ECB") == 0)
+    else if (fips_strcasecmp(amode, "ECB") == 0)
        cipher = EVP_des_ede3_ecb();
-    else if (strcasecmp(amode, "CFB64") == 0)
+    else if (fips_strcasecmp(amode, "CFB64") == 0)
        cipher = EVP_des_ede3_cfb64();
-    else if (strncasecmp(amode, "OFB", 3) == 0)
+    else if (fips_strncasecmp(amode, "OFB", 3) == 0)
        cipher = EVP_des_ede3_ofb();
-    else if(!strcasecmp(amode,"CFB8"))
+    else if(!fips_strcasecmp(amode,"CFB8"))
        cipher = EVP_des_ede3_cfb8();
-    else if(!strcasecmp(amode,"CFB1"))
+    else if(!fips_strcasecmp(amode,"CFB1"))
        cipher = EVP_des_ede3_cfb1();
     else
        {
@@ -125,7 +125,7 @@ static int DESTest(EVP_CIPHER_CTX *ctx,
 
     if (FIPS_cipherinit(ctx, cipher, aKey, iVec, dir) <= 0)
        return 0;
-    if(!strcasecmp(amode,"CFB1"))
+    if(!fips_strcasecmp(amode,"CFB1"))
        M_EVP_CIPHER_CTX_set_flags(ctx, EVP_CIPH_FLAG_LENGTH_BITS);
     FIPS_cipher(ctx, out, in, len);
 
@@ -177,7 +177,6 @@ static void do_mct(char *amode,
        printf("Unrecognized mode: %s\n", amode);
        EXIT(1);
        }
-
     for(i=0 ; i < 400 ; ++i)
        {
        int j;
@@ -277,7 +276,7 @@ static int proc_file(char *rqfile, char *rspfile)
     char atest[100] = "";
     int akeysz=0;
     unsigned char iVec[20], aKey[40];
-    int dir = -1, err = 0, step = 0;
+    int dir = -1, err = 0, step = 0, echo = 1;
     unsigned char plaintext[2048];
     unsigned char ciphertext[2048];
     char *rp;
@@ -383,6 +382,8 @@ static int proc_file(char *rqfile, char *rspfile)
                        n = strlen(xp+1)-1;
                        strncpy(amode, xp+1, n);
                        amode[n] = '\0';
+                       if (!strcmp(atest, "Monte"))
+                               echo = 0;
                        /* amode[3] = '\0'; */
                        if (VERBOSE)
                                printf("Test=%s, Mode=%s\n",atest,amode);
@@ -398,9 +399,9 @@ static int proc_file(char *rqfile, char *rspfile)
                {
                fputs(ibuf, rfp);
                ++step;
-               if (strncasecmp(ibuf, "[ENCRYPT]", 9) == 0)
+               if (fips_strncasecmp(ibuf, "[ENCRYPT]", 9) == 0)
                    dir = 1;
-               else if (strncasecmp(ibuf, "[DECRYPT]", 9) == 0)
+               else if (fips_strncasecmp(ibuf, "[DECRYPT]", 9) == 0)
                    dir = 0;
                else
                    {
@@ -424,24 +425,24 @@ static int proc_file(char *rqfile, char *rspfile)
                fputs(ibuf, rfp);
                break;
                 }
-           if(!strncasecmp(ibuf,"COUNT = ",8))
+           if(!fips_strncasecmp(ibuf,"COUNT = ",8))
                {
                fputs(ibuf, rfp);
                break;
                 }
-           if(!strncasecmp(ibuf,"COUNT=",6))
+           if(!fips_strncasecmp(ibuf,"COUNT=",6))
                {
                fputs(ibuf, rfp);
                break;
                 }
-           if(!strncasecmp(ibuf,"NumKeys = ",10))
+           if(!fips_strncasecmp(ibuf,"NumKeys = ",10))
                {
                numkeys=atoi(ibuf+10);
                break;
                }
-         
-           fputs(ibuf, rfp);
-           if(!strncasecmp(ibuf,"KEY = ",6))
+           if (echo) 
+               fputs(ibuf, rfp);
+           if(!fips_strncasecmp(ibuf,"KEY = ",6))
                {
                akeysz=64;
                len = hex2bin((char*)ibuf+6, aKey);
@@ -454,7 +455,7 @@ static int proc_file(char *rqfile, char *rspfile)
                PrintValue("KEY", aKey, len);
                ++step;
                }
-           else if(!strncasecmp(ibuf,"KEYs = ",7))
+           else if(!fips_strncasecmp(ibuf,"KEYs = ",7))
                {
                akeysz=64*3;
                len=hex2bin(ibuf+7,aKey);
@@ -470,7 +471,7 @@ static int proc_file(char *rqfile, char *rspfile)
                PrintValue("KEYs",aKey,len);
                ++step;
                }
-           else if(!strncasecmp(ibuf,"KEY",3))
+           else if(!fips_strncasecmp(ibuf,"KEY",3))
                {
                int n=ibuf[3]-'1';
 
@@ -495,8 +496,9 @@ static int proc_file(char *rqfile, char *rspfile)
            break;
 
        case 3: /* IV = xxxx */
-           fputs(ibuf, rfp);
-           if (strncasecmp(ibuf, "IV = ", 5) != 0)
+           if (echo)
+               fputs(ibuf, rfp);
+           if (fips_strncasecmp(ibuf, "IV = ", 5) != 0)
                {
                printf("Missing IV\n");
                err = 1;
@@ -516,8 +518,9 @@ static int proc_file(char *rqfile, char *rspfile)
            break;
 
        case 4: /* PLAINTEXT = xxxx */
-           fputs(ibuf, rfp);
-           if (strncasecmp(ibuf, "PLAINTEXT = ", 12) != 0)
+           if (echo)
+               fputs(ibuf, rfp);
+           if (fips_strncasecmp(ibuf, "PLAINTEXT = ", 12) != 0)
                {
                printf("Missing PLAINTEXT\n");
                err = 1;
@@ -558,8 +561,9 @@ static int proc_file(char *rqfile, char *rspfile)
            break;
 
        case 5: /* CIPHERTEXT = xxxx */
-           fputs(ibuf, rfp);
-           if (strncasecmp(ibuf, "CIPHERTEXT = ", 13) != 0)
+           if (echo)
+               fputs(ibuf, rfp);
+           if (fips_strncasecmp(ibuf, "CIPHERTEXT = ", 13) != 0)
                {
                printf("Missing KEY\n");
                err = 1;
@@ -633,18 +637,14 @@ int main(int argc, char **argv)
     char fn[250] = "", rfn[256] = "";
     int f_opt = 0, d_opt = 1;
 
-#ifdef OPENSSL_FIPS
-    fips_set_error_print();
-    if(!FIPS_mode_set(1))
-       EXIT(1);
-#endif
+    fips_algtest_init();
     if (argc > 1)
        {
-       if (strcasecmp(argv[1], "-d") == 0)
+       if (fips_strcasecmp(argv[1], "-d") == 0)
            {
            d_opt = 1;
            }
-       else if (strcasecmp(argv[1], "-f") == 0)
+       else if (fips_strcasecmp(argv[1], "-f") == 0)
            {
            f_opt = 1;
            d_opt = 0;