From f93ac9817d952baaa63dc9f3008ea7678ccc1697 Mon Sep 17 00:00:00 2001
From: beck <>
Date: Tue, 11 Jun 2002 12:26:02 +0000
Subject: Make DSA work now... at least for things that can do bn_mod_exp.

---
 src/lib/libcrypto/engine/hw_cryptodev.c         | 11 ++++-------
 src/lib/libssl/src/crypto/engine/hw_cryptodev.c | 11 ++++-------
 2 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/src/lib/libcrypto/engine/hw_cryptodev.c b/src/lib/libcrypto/engine/hw_cryptodev.c
index 8f55798421..8eea1935a6 100644
--- a/src/lib/libcrypto/engine/hw_cryptodev.c
+++ b/src/lib/libcrypto/engine/hw_cryptodev.c
@@ -809,6 +809,7 @@ cryptodev_dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
 		goto err;
 	}
 
+	printf("bar\n");
 	memset(&kop, 0, sizeof kop);
 	kop.crk_op = CRK_DSA_SIGN;
 
@@ -849,6 +850,7 @@ cryptodev_dsa_verify(const unsigned char *dgst, int dlen,
 	struct crypt_kop kop;
 	int dsaret = 1;
 
+	printf("foo\n");
 	memset(&kop, 0, sizeof kop);
 	kop.crk_op = CRK_DSA_VERIFY;
 
@@ -1021,14 +1023,10 @@ ENGINE_load_cryptodev(void)
 		}
 	}
 
-#if 0 
-	/* dsa is currently busted. */
 	if (ENGINE_set_DSA(engine, &cryptodev_dsa)) {
 		const DSA_METHOD *meth = DSA_OpenSSL();
-
-		cryptodev_dsa.dsa_do_sign = meth->dsa_do_sign;
-		cryptodev_dsa.dsa_do_verify = meth->dsa_do_verify;   
-		cryptodev_dsa.bn_mod_exp = meth->bn_mod_exp;
+		
+		memcpy(&cryptodev_dsa, meth, sizeof(DSA_METHOD)); 
 		if (cryptodev_asymfeat & CRF_DSA_SIGN) 
 			cryptodev_dsa.dsa_do_sign = cryptodev_dsa_do_sign;   
   	        if (cryptodev_asymfeat & CRF_DSA_VERIFY)
@@ -1036,7 +1034,6 @@ ENGINE_load_cryptodev(void)
   	        if (cryptodev_asymfeat & CRF_MOD_EXP)
 			cryptodev_dsa.bn_mod_exp = cryptodev_dsa_bn_mod_exp;
 	}
-#endif
 		
 
 	if (ENGINE_set_DH(engine, &cryptodev_dh)){
diff --git a/src/lib/libssl/src/crypto/engine/hw_cryptodev.c b/src/lib/libssl/src/crypto/engine/hw_cryptodev.c
index 8f55798421..8eea1935a6 100644
--- a/src/lib/libssl/src/crypto/engine/hw_cryptodev.c
+++ b/src/lib/libssl/src/crypto/engine/hw_cryptodev.c
@@ -809,6 +809,7 @@ cryptodev_dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
 		goto err;
 	}
 
+	printf("bar\n");
 	memset(&kop, 0, sizeof kop);
 	kop.crk_op = CRK_DSA_SIGN;
 
@@ -849,6 +850,7 @@ cryptodev_dsa_verify(const unsigned char *dgst, int dlen,
 	struct crypt_kop kop;
 	int dsaret = 1;
 
+	printf("foo\n");
 	memset(&kop, 0, sizeof kop);
 	kop.crk_op = CRK_DSA_VERIFY;
 
@@ -1021,14 +1023,10 @@ ENGINE_load_cryptodev(void)
 		}
 	}
 
-#if 0 
-	/* dsa is currently busted. */
 	if (ENGINE_set_DSA(engine, &cryptodev_dsa)) {
 		const DSA_METHOD *meth = DSA_OpenSSL();
-
-		cryptodev_dsa.dsa_do_sign = meth->dsa_do_sign;
-		cryptodev_dsa.dsa_do_verify = meth->dsa_do_verify;   
-		cryptodev_dsa.bn_mod_exp = meth->bn_mod_exp;
+		
+		memcpy(&cryptodev_dsa, meth, sizeof(DSA_METHOD)); 
 		if (cryptodev_asymfeat & CRF_DSA_SIGN) 
 			cryptodev_dsa.dsa_do_sign = cryptodev_dsa_do_sign;   
   	        if (cryptodev_asymfeat & CRF_DSA_VERIFY)
@@ -1036,7 +1034,6 @@ ENGINE_load_cryptodev(void)
   	        if (cryptodev_asymfeat & CRF_MOD_EXP)
 			cryptodev_dsa.bn_mod_exp = cryptodev_dsa_bn_mod_exp;
 	}
-#endif
 		
 
 	if (ENGINE_set_DH(engine, &cryptodev_dh)){
-- 
cgit v1.2.3-55-g6feb