Add single call public key sign and verify functions.
[openssl.git] / fips / rsa / fips_rsastest.c
index 9dff464a36bc880675aa8f25583cc11944b3176e..a96f277e6a3d247fd26fa618ffb7a0e436107a86 100644 (file)
@@ -66,7 +66,6 @@
 #include <openssl/hmac.h>
 #include <openssl/err.h>
 #include <openssl/bn.h>
-#include <openssl/x509v3.h>
 
 #ifndef OPENSSL_FIPS
 
@@ -86,15 +85,17 @@ static int rsa_stest(FILE *out, FILE *in, int Saltlen);
 static int rsa_printsig(FILE *out, RSA *rsa, const EVP_MD *dgst,
                unsigned char *Msg, long Msglen, int Saltlen);
 
+#ifdef FIPS_ALGVS
+int fips_rsastest_main(int argc, char **argv)
+#else
 int main(int argc, char **argv)
+#endif
        {
        FILE *in = NULL, *out = NULL;
 
        int ret = 1, Saltlen = -1;
 
-       fips_set_error_print();
-       if(!FIPS_mode_set(1))
-               goto end;
+       fips_algtest_init();
 
        if ((argc > 2) && !strcmp("-saltlen", argv[1]))
                {
@@ -279,9 +280,9 @@ int rsa_stest(FILE *out, FILE *in, int Saltlen)
                        BN_free(bn_e);
                        fputs("n = ", out);
                        do_bn_print(out, rsa->n);
-                       fputs("\ne = ", out);
+                       fputs(RESP_EOL "e = ", out);
                        do_bn_print(out, rsa->e);
-                       fputs("\n", out);
+                       fputs(RESP_EOL, out);
                        current_keylen = keylen;
                        }
 
@@ -324,15 +325,12 @@ static int rsa_printsig(FILE *out, RSA *rsa, const EVP_MD *dgst,
        unsigned char *sigbuf = NULL;
        int i, siglen, pad_mode;
        /* EVP_PKEY structure */
-       EVP_MD_CTX ctx;
 
        siglen = RSA_size(rsa);
        sigbuf = OPENSSL_malloc(siglen);
        if (!sigbuf)
                goto error;
 
-       EVP_MD_CTX_init(&ctx);
-
        if (Saltlen >= 0)
                pad_mode = RSA_PKCS1_PSS_PADDING;
        else if (Saltlen == -2)
@@ -340,27 +338,24 @@ static int rsa_printsig(FILE *out, RSA *rsa, const EVP_MD *dgst,
        else
                pad_mode = RSA_PKCS1_PADDING;
 
-       if (!EVP_DigestInit_ex(&ctx, dgst, NULL))
-               goto error;
-       if (!EVP_DigestUpdate(&ctx, Msg, Msglen))
-               goto error;
-       if (!FIPS_rsa_sign_ctx(rsa, &ctx, pad_mode, Saltlen, NULL,
+       if (!FIPS_rsa_sign(rsa, Msg, Msglen, dgst, pad_mode, Saltlen, NULL,
                                sigbuf, (unsigned int *)&siglen))
                goto error;
 
-       EVP_MD_CTX_cleanup(&ctx);
-
        fputs("S = ", out);
 
        for (i = 0; i < siglen; i++)
                fprintf(out, "%02X", sigbuf[i]);
 
-       fputs("\n", out);
+       fputs(RESP_EOL, out);
 
        ret = 1;
 
        error:
 
+       if (sigbuf)
+               OPENSSL_free(sigbuf);
+
        return ret;
        }
 #endif