#include <openssl/hmac.h>
#include <openssl/err.h>
#include <openssl/bn.h>
-#include <openssl/x509v3.h>
#ifndef OPENSSL_FIPS
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]))
{
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;
}
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)
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