Workaround for some CMS signature formats.
[openssl.git] / fips / aes / fips_gcmtest.c
index 3839de8f8adf557f1137a827151ec0dd44049082..9f50857fb9075ed4cd67021d78dd2601af43655e 100644 (file)
@@ -261,6 +261,7 @@ static void gcmtest(FILE *in, FILE *out, int encrypt)
                        iv = aad = ct = pt = key = tag = NULL;
                        }
                }
+       FIPS_cipher_ctx_cleanup(&ctx);  
        }
 
 static void xtstest(FILE *in, FILE *out)
@@ -270,7 +271,6 @@ static void xtstest(FILE *in, FILE *out)
        char *keyword, *value;
        int inlen = 0;
        int encrypt = 0;
-       int rv;
        long l;
        unsigned char *key = NULL, *iv = NULL;
        unsigned char *inbuf = NULL, *outbuf = NULL;
@@ -326,7 +326,7 @@ static void xtstest(FILE *in, FILE *out)
                        {
                        FIPS_cipherinit(&ctx, xts, key, iv, encrypt);
                        outbuf = OPENSSL_malloc(inlen);
-                       rv = FIPS_cipher(&ctx, outbuf, inbuf, inlen);
+                       FIPS_cipher(&ctx, outbuf, inbuf, inlen);
                        OutputValue(encrypt ? "CT":"PT", outbuf, inlen, out, 0);
                        OPENSSL_free(inbuf);
                        OPENSSL_free(outbuf);
@@ -335,6 +335,7 @@ static void xtstest(FILE *in, FILE *out)
                        iv = key = inbuf = outbuf = NULL;
                        }       
                }
+       FIPS_cipher_ctx_cleanup(&ctx);  
        }
 
 static void ccmtest(FILE *in, FILE *out)
@@ -428,6 +429,8 @@ static void ccmtest(FILE *in, FILE *out)
                        }
                else if (!strcmp(keyword,"Adata"))
                        {
+                       if (Adata)
+                               OPENSSL_free(Adata);
                        Adata = hex2bin_m(value, &l);
                        if (Alen && l != Alen)
                                {
@@ -493,10 +496,16 @@ static void ccmtest(FILE *in, FILE *out)
                OPENSSL_free(Key);
        if (Nonce)
                OPENSSL_free(Nonce);
+       if (Adata)
+               OPENSSL_free(Adata);
        FIPS_cipher_ctx_cleanup(&ctx);
        }
 
-int main(int argc,char **argv)
+#ifdef FIPS_ALGVS
+int fips_gcmtest_main(int argc, char **argv)
+#else
+int main(int argc, char **argv)
+#endif
        {
        int encrypt;
        int xts = 0, ccm = 0;