1 From 10be401a33e6ebcc325d6747914c70595cd53d0a Mon Sep 17 00:00:00 2001
2 From: Yashpal Dutta <yashpal.dutta@freescale.com>
3 Date: Thu, 24 Apr 2014 00:35:34 +0545
4 Subject: [PATCH 15/17] SW Backoff mechanism for dsa keygen
6 Upstream-status: Pending
8 DSA Keygen is not handled in default openssl dsa method. Due to
9 same null function pointer in SW DSA method, the backoff for dsa
10 keygen gives segmentation fault.
12 Signed-off-by: Yashpal Dutta <yashpal.dutta@freescale.com>
13 Tested-by: Cristian Stoica <cristian.stoica@freescale.com>
15 crypto/engine/eng_cryptodev.c | 12 ++++++++----
16 1 file changed, 8 insertions(+), 4 deletions(-)
18 diff --git a/crypto/engine/eng_cryptodev.c b/crypto/engine/eng_cryptodev.c
19 index 6d69336..dab8fea 100644
20 --- a/crypto/engine/eng_cryptodev.c
21 +++ b/crypto/engine/eng_cryptodev.c
22 @@ -2069,8 +2069,10 @@ static int cryptodev_dsa_keygen(DSA *dsa)
26 - const DSA_METHOD *meth = DSA_OpenSSL();
27 - ret = (meth->dsa_keygen)(dsa);
28 + const DSA_METHOD *meth = dsa->meth;
29 + dsa->meth = DSA_OpenSSL();
30 + ret = DSA_generate_key(dsa);
35 @@ -2124,11 +2126,13 @@ static int cryptodev_dsa_keygen_async(DSA *dsa, struct pkc_cookie_s *cookie)
39 - const DSA_METHOD *meth = DSA_OpenSSL();
40 + const DSA_METHOD *meth = dsa->meth;
42 + dsa->meth = DSA_OpenSSL();
45 - ret = (meth->dsa_keygen)(dsa);
46 + ret = DSA_generate_key(dsa);
48 cookie->pkc_callback(cookie, 0);