]> code.ossystems Code Review - meta-freescale.git/blob
e5aa1baa33c3c4d8e54420fa33154f709c65d3f7
[meta-freescale.git] /
1 From 8b1ed323d08dce8b6e303ce63a82337543e9187f 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][fsl 14/15] SW Backoff mechanism for dsa keygen
5
6 Upstream-status: Pending
7
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.
11
12 Signed-off-by: Yashpal Dutta <yashpal.dutta@freescale.com>
13 Tested-by: Cristian Stoica <cristian.stoica@freescale.com>
14 ---
15  crypto/engine/eng_cryptodev.c |   12 ++++++++----
16  1 file changed, 8 insertions(+), 4 deletions(-)
17
18 diff --git a/crypto/engine/eng_cryptodev.c b/crypto/engine/eng_cryptodev.c
19 index 8de8f09..7c2661f 100644
20 --- a/crypto/engine/eng_cryptodev.c
21 +++ b/crypto/engine/eng_cryptodev.c
22 @@ -2075,8 +2075,10 @@ static int cryptodev_dsa_keygen(DSA *dsa)
23         return ret;
24  sw_try:
25         {
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);
31 +               dsa->meth = meth;
32         }
33         return ret;
34  }
35 @@ -2130,11 +2132,13 @@ static int cryptodev_dsa_keygen_async(DSA *dsa,  struct pkc_cookie_s *cookie)
36         return ret;
37  sw_try:
38         {
39 -               const DSA_METHOD *meth = DSA_OpenSSL();
40 +               const DSA_METHOD *meth = dsa->meth;
41  
42 +               dsa->meth = DSA_OpenSSL();
43                 if (kop)
44                         free(kop);
45 -               ret = (meth->dsa_keygen)(dsa);
46 +               ret = DSA_generate_key(dsa);
47 +               dsa->meth = meth;
48                 cookie->pkc_callback(cookie, 0);
49         }
50         return ret;
51 -- 
52 1.7.9.7
53