summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libssl/src/test/enginetest.c45
-rw-r--r--src/lib/libssl/src/test/md4test.c7
-rw-r--r--src/lib/libssl/src/test/rsa_test.c14
-rw-r--r--src/lib/libssl/src/test/testgen16
-rw-r--r--src/lib/libssl/src/test/treq5
-rw-r--r--src/lib/libssl/src/test/trsa5
-rw-r--r--src/lib/libssl/test/enginetest.c45
-rw-r--r--src/lib/libssl/test/md4test.c7
-rw-r--r--src/lib/libssl/test/rsa_test.c14
-rw-r--r--src/lib/libssl/test/testgen16
-rw-r--r--src/lib/libssl/test/treq5
-rw-r--r--src/lib/libssl/test/trsa5
12 files changed, 138 insertions, 46 deletions
diff --git a/src/lib/libssl/src/test/enginetest.c b/src/lib/libssl/src/test/enginetest.c
index a5a3c47fcb..87fa8c57b7 100644
--- a/src/lib/libssl/src/test/enginetest.c
+++ b/src/lib/libssl/src/test/enginetest.c
@@ -3,7 +3,7 @@
3 * project 2000. 3 * project 2000.
4 */ 4 */
5/* ==================================================================== 5/* ====================================================================
6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 1999-2001 The OpenSSL Project. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
@@ -56,8 +56,11 @@
56 * 56 *
57 */ 57 */
58 58
59#include <openssl/e_os2.h>
59#include <stdio.h> 60#include <stdio.h>
60#include <string.h> 61#include <string.h>
62#include <openssl/buffer.h>
63#include <openssl/crypto.h>
61#include <openssl/engine.h> 64#include <openssl/engine.h>
62#include <openssl/err.h> 65#include <openssl/err.h>
63 66
@@ -76,6 +79,9 @@ static void display_engine_list()
76 h = ENGINE_get_next(h); 79 h = ENGINE_get_next(h);
77 } 80 }
78 printf("end of list\n"); 81 printf("end of list\n");
82 /* ENGINE_get_first() increases the struct_ref counter, so we
83 must call ENGINE_free() to decrease it again */
84 ENGINE_free(h);
79 } 85 }
80 86
81int main(int argc, char *argv[]) 87int main(int argc, char *argv[])
@@ -91,6 +97,18 @@ int main(int argc, char *argv[])
91 ENGINE *new_h3 = NULL; 97 ENGINE *new_h3 = NULL;
92 ENGINE *new_h4 = NULL; 98 ENGINE *new_h4 = NULL;
93 99
100 /* enable memory leak checking unless explicitly disabled */
101 if (!((getenv("OPENSSL_DEBUG_MEMORY") != NULL) && (0 == strcmp(getenv("OPENSSL_DEBUG_MEMORY"), "off"))))
102 {
103 CRYPTO_malloc_debug_init();
104 CRYPTO_set_mem_debug_options(V_CRYPTO_MDEBUG_ALL);
105 }
106 else
107 {
108 /* OPENSSL_DEBUG_MEMORY=off */
109 CRYPTO_set_mem_debug_functions(0, 0, 0, 0, 0);
110 }
111 CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
94 ERR_load_crypto_strings(); 112 ERR_load_crypto_strings();
95 113
96 memset(block, 0, 512 * sizeof(ENGINE *)); 114 memset(block, 0, 512 * sizeof(ENGINE *));
@@ -124,6 +142,8 @@ int main(int argc, char *argv[])
124 printf("Remove failed!\n"); 142 printf("Remove failed!\n");
125 goto end; 143 goto end;
126 } 144 }
145 if (ptr)
146 ENGINE_free(ptr);
127 display_engine_list(); 147 display_engine_list();
128 if(!ENGINE_add(new_h3) || !ENGINE_add(new_h2)) 148 if(!ENGINE_add(new_h3) || !ENGINE_add(new_h2))
129 { 149 {
@@ -158,12 +178,7 @@ int main(int argc, char *argv[])
158 } 178 }
159 else 179 else
160 printf("Remove that should fail did.\n"); 180 printf("Remove that should fail did.\n");
161 if(!ENGINE_remove(new_h1)) 181 ERR_clear_error();
162 {
163 printf("Remove failed!\n");
164 goto end;
165 }
166 display_engine_list();
167 if(!ENGINE_remove(new_h3)) 182 if(!ENGINE_remove(new_h3))
168 { 183 {
169 printf("Remove failed!\n"); 184 printf("Remove failed!\n");
@@ -183,6 +198,8 @@ int main(int argc, char *argv[])
183 if(!ENGINE_remove(ptr)) 198 if(!ENGINE_remove(ptr))
184 printf("Remove failed!i - probably no hardware " 199 printf("Remove failed!i - probably no hardware "
185 "support present.\n"); 200 "support present.\n");
201 if (ptr)
202 ENGINE_free(ptr);
186 display_engine_list(); 203 display_engine_list();
187 if(!ENGINE_add(new_h1) || !ENGINE_remove(new_h1)) 204 if(!ENGINE_add(new_h1) || !ENGINE_remove(new_h1))
188 { 205 {
@@ -195,9 +212,9 @@ int main(int argc, char *argv[])
195 for(loop = 0; loop < 512; loop++) 212 for(loop = 0; loop < 512; loop++)
196 { 213 {
197 sprintf(buf, "id%i", loop); 214 sprintf(buf, "id%i", loop);
198 id = strdup(buf); 215 id = BUF_strdup(buf);
199 sprintf(buf, "Fake engine type %i", loop); 216 sprintf(buf, "Fake engine type %i", loop);
200 name = strdup(buf); 217 name = BUF_strdup(buf);
201 if(((block[loop] = ENGINE_new()) == NULL) || 218 if(((block[loop] = ENGINE_new()) == NULL) ||
202 !ENGINE_set_id(block[loop], id) || 219 !ENGINE_set_id(block[loop], id) ||
203 !ENGINE_set_name(block[loop], name)) 220 !ENGINE_set_name(block[loop], name))
@@ -228,12 +245,13 @@ cleanup_loop:
228 printf("\nRemove failed!\n"); 245 printf("\nRemove failed!\n");
229 goto end; 246 goto end;
230 } 247 }
248 ENGINE_free(ptr);
231 printf("."); fflush(stdout); 249 printf("."); fflush(stdout);
232 } 250 }
233 for(loop = 0; loop < 512; loop++) 251 for(loop = 0; loop < 512; loop++)
234 { 252 {
235 free((char *)(ENGINE_get_id(block[loop]))); 253 OPENSSL_free((void *)ENGINE_get_id(block[loop]));
236 free((char *)(ENGINE_get_name(block[loop]))); 254 OPENSSL_free((void *)ENGINE_get_name(block[loop]));
237 } 255 }
238 printf("\nTests completed happily\n"); 256 printf("\nTests completed happily\n");
239 to_return = 0; 257 to_return = 0;
@@ -247,5 +265,10 @@ end:
247 for(loop = 0; loop < 512; loop++) 265 for(loop = 0; loop < 512; loop++)
248 if(block[loop]) 266 if(block[loop])
249 ENGINE_free(block[loop]); 267 ENGINE_free(block[loop]);
268 ENGINE_cleanup();
269 CRYPTO_cleanup_all_ex_data();
270 ERR_free_strings();
271 ERR_remove_state(0);
272 CRYPTO_mem_leaks_fp(stderr);
250 return to_return; 273 return to_return;
251 } 274 }
diff --git a/src/lib/libssl/src/test/md4test.c b/src/lib/libssl/src/test/md4test.c
index 97e6e21efd..e0fdc42282 100644
--- a/src/lib/libssl/src/test/md4test.c
+++ b/src/lib/libssl/src/test/md4test.c
@@ -60,13 +60,14 @@
60#include <string.h> 60#include <string.h>
61#include <stdlib.h> 61#include <stdlib.h>
62 62
63#ifdef NO_MD4 63#ifdef OPENSSL_NO_MD4
64int main(int argc, char *argv[]) 64int main(int argc, char *argv[])
65{ 65{
66 printf("No MD4 support\n"); 66 printf("No MD4 support\n");
67 return(0); 67 return(0);
68} 68}
69#else 69#else
70#include <openssl/evp.h>
70#include <openssl/md4.h> 71#include <openssl/md4.h>
71 72
72static char *test[]={ 73static char *test[]={
@@ -96,13 +97,15 @@ int main(int argc, char *argv[])
96 int i,err=0; 97 int i,err=0;
97 unsigned char **P,**R; 98 unsigned char **P,**R;
98 char *p; 99 char *p;
100 unsigned char md[MD4_DIGEST_LENGTH];
99 101
100 P=(unsigned char **)test; 102 P=(unsigned char **)test;
101 R=(unsigned char **)ret; 103 R=(unsigned char **)ret;
102 i=1; 104 i=1;
103 while (*P != NULL) 105 while (*P != NULL)
104 { 106 {
105 p=pt(MD4(&(P[0][0]),(unsigned long)strlen((char *)*P),NULL)); 107 EVP_Digest(&(P[0][0]),(unsigned long)strlen((char *)*P),md,NULL,EVP_md4(), NULL);
108 p=pt(md);
106 if (strcmp(p,(char *)*R) != 0) 109 if (strcmp(p,(char *)*R) != 0)
107 { 110 {
108 printf("error calculating MD4 on '%s'\n",*P); 111 printf("error calculating MD4 on '%s'\n",*P);
diff --git a/src/lib/libssl/src/test/rsa_test.c b/src/lib/libssl/src/test/rsa_test.c
index e5ae0c1f69..b8b462d33b 100644
--- a/src/lib/libssl/src/test/rsa_test.c
+++ b/src/lib/libssl/src/test/rsa_test.c
@@ -3,12 +3,12 @@
3#include <stdio.h> 3#include <stdio.h>
4#include <string.h> 4#include <string.h>
5 5
6#include "openssl/e_os.h" 6#include "e_os.h"
7 7
8#include <openssl/crypto.h> 8#include <openssl/crypto.h>
9#include <openssl/err.h> 9#include <openssl/err.h>
10#include <openssl/rand.h> 10#include <openssl/rand.h>
11#ifdef NO_RSA 11#ifdef OPENSSL_NO_RSA
12int main(int argc, char *argv[]) 12int main(int argc, char *argv[])
13{ 13{
14 printf("No RSA support\n"); 14 printf("No RSA support\n");
@@ -16,6 +16,7 @@ int main(int argc, char *argv[])
16} 16}
17#else 17#else
18#include <openssl/rsa.h> 18#include <openssl/rsa.h>
19#include <openssl/engine.h>
19 20
20#define SetKey \ 21#define SetKey \
21 key->n = BN_bin2bn(n, sizeof(n)-1, key->n); \ 22 key->n = BN_bin2bn(n, sizeof(n)-1, key->n); \
@@ -219,10 +220,12 @@ int main(int argc, char *argv[])
219 int clen = 0; 220 int clen = 0;
220 int num; 221 int num;
221 222
223 CRYPTO_malloc_debug_init();
224 CRYPTO_dbg_set_options(V_CRYPTO_MDEBUG_ALL);
225 CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
226
222 RAND_seed(rnd_seed, sizeof rnd_seed); /* or OAEP may fail */ 227 RAND_seed(rnd_seed, sizeof rnd_seed); /* or OAEP may fail */
223 228
224 CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
225
226 plen = sizeof(ptext_ex) - 1; 229 plen = sizeof(ptext_ex) - 1;
227 230
228 for (v = 0; v < 3; v++) 231 for (v = 0; v < 3; v++)
@@ -305,9 +308,10 @@ int main(int argc, char *argv[])
305 RSA_free(key); 308 RSA_free(key);
306 } 309 }
307 310
311 CRYPTO_cleanup_all_ex_data();
308 ERR_remove_state(0); 312 ERR_remove_state(0);
309 313
310 CRYPTO_mem_leaks_fp(stdout); 314 CRYPTO_mem_leaks_fp(stderr);
311 315
312 return err; 316 return err;
313 } 317 }
diff --git a/src/lib/libssl/src/test/testgen b/src/lib/libssl/src/test/testgen
index c5f61b582b..6a4b6b9221 100644
--- a/src/lib/libssl/src/test/testgen
+++ b/src/lib/libssl/src/test/testgen
@@ -11,13 +11,19 @@ export PATH
11 11
12echo "generating certificate request" 12echo "generating certificate request"
13 13
14echo "There should be a 2 sequences of .'s and some +'s."
15echo "There should not be more that at most 80 per line"
16echo "This could take some time."
17
18echo "string to make the random number generator think it has entropy" >> ./.rnd 14echo "string to make the random number generator think it has entropy" >> ./.rnd
19 15
20../apps/openssl req -config test.cnf -new -out testreq.pem 16if ../apps/openssl no-rsa; then
17 req_new='-newkey dsa:../apps/dsa512.pem'
18else
19 req_new='-new'
20 echo "There should be a 2 sequences of .'s and some +'s."
21 echo "There should not be more that at most 80 per line"
22fi
23
24echo "This could take some time."
25
26../apps/openssl req -config test.cnf $req_new -out testreq.pem
21if [ $? != 0 ]; then 27if [ $? != 0 ]; then
22echo problems creating request 28echo problems creating request
23exit 1 29exit 1
diff --git a/src/lib/libssl/src/test/treq b/src/lib/libssl/src/test/treq
index 0464c9d902..9f5eb7eea5 100644
--- a/src/lib/libssl/src/test/treq
+++ b/src/lib/libssl/src/test/treq
@@ -11,6 +11,11 @@ else
11 t=testreq.pem 11 t=testreq.pem
12fi 12fi
13 13
14if $cmd -in $t -inform p -noout -text | fgrep 'Unknown Public Key'; then
15 echo "skipping req conversion test for $t"
16 exit 0
17fi
18
14echo testing req conversions 19echo testing req conversions
15cp $t fff.p 20cp $t fff.p
16 21
diff --git a/src/lib/libssl/src/test/trsa b/src/lib/libssl/src/test/trsa
index d6a4dd826d..bd6c07650a 100644
--- a/src/lib/libssl/src/test/trsa
+++ b/src/lib/libssl/src/test/trsa
@@ -3,6 +3,11 @@
3PATH=../apps:$PATH 3PATH=../apps:$PATH
4export PATH 4export PATH
5 5
6if ../apps/openssl no-rsa; then
7 echo skipping rsa conversion test
8 exit 0
9fi
10
6cmd='../apps/openssl rsa' 11cmd='../apps/openssl rsa'
7 12
8if [ "$1"x != "x" ]; then 13if [ "$1"x != "x" ]; then
diff --git a/src/lib/libssl/test/enginetest.c b/src/lib/libssl/test/enginetest.c
index a5a3c47fcb..87fa8c57b7 100644
--- a/src/lib/libssl/test/enginetest.c
+++ b/src/lib/libssl/test/enginetest.c
@@ -3,7 +3,7 @@
3 * project 2000. 3 * project 2000.
4 */ 4 */
5/* ==================================================================== 5/* ====================================================================
6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 1999-2001 The OpenSSL Project. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
@@ -56,8 +56,11 @@
56 * 56 *
57 */ 57 */
58 58
59#include <openssl/e_os2.h>
59#include <stdio.h> 60#include <stdio.h>
60#include <string.h> 61#include <string.h>
62#include <openssl/buffer.h>
63#include <openssl/crypto.h>
61#include <openssl/engine.h> 64#include <openssl/engine.h>
62#include <openssl/err.h> 65#include <openssl/err.h>
63 66
@@ -76,6 +79,9 @@ static void display_engine_list()
76 h = ENGINE_get_next(h); 79 h = ENGINE_get_next(h);
77 } 80 }
78 printf("end of list\n"); 81 printf("end of list\n");
82 /* ENGINE_get_first() increases the struct_ref counter, so we
83 must call ENGINE_free() to decrease it again */
84 ENGINE_free(h);
79 } 85 }
80 86
81int main(int argc, char *argv[]) 87int main(int argc, char *argv[])
@@ -91,6 +97,18 @@ int main(int argc, char *argv[])
91 ENGINE *new_h3 = NULL; 97 ENGINE *new_h3 = NULL;
92 ENGINE *new_h4 = NULL; 98 ENGINE *new_h4 = NULL;
93 99
100 /* enable memory leak checking unless explicitly disabled */
101 if (!((getenv("OPENSSL_DEBUG_MEMORY") != NULL) && (0 == strcmp(getenv("OPENSSL_DEBUG_MEMORY"), "off"))))
102 {
103 CRYPTO_malloc_debug_init();
104 CRYPTO_set_mem_debug_options(V_CRYPTO_MDEBUG_ALL);
105 }
106 else
107 {
108 /* OPENSSL_DEBUG_MEMORY=off */
109 CRYPTO_set_mem_debug_functions(0, 0, 0, 0, 0);
110 }
111 CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
94 ERR_load_crypto_strings(); 112 ERR_load_crypto_strings();
95 113
96 memset(block, 0, 512 * sizeof(ENGINE *)); 114 memset(block, 0, 512 * sizeof(ENGINE *));
@@ -124,6 +142,8 @@ int main(int argc, char *argv[])
124 printf("Remove failed!\n"); 142 printf("Remove failed!\n");
125 goto end; 143 goto end;
126 } 144 }
145 if (ptr)
146 ENGINE_free(ptr);
127 display_engine_list(); 147 display_engine_list();
128 if(!ENGINE_add(new_h3) || !ENGINE_add(new_h2)) 148 if(!ENGINE_add(new_h3) || !ENGINE_add(new_h2))
129 { 149 {
@@ -158,12 +178,7 @@ int main(int argc, char *argv[])
158 } 178 }
159 else 179 else
160 printf("Remove that should fail did.\n"); 180 printf("Remove that should fail did.\n");
161 if(!ENGINE_remove(new_h1)) 181 ERR_clear_error();
162 {
163 printf("Remove failed!\n");
164 goto end;
165 }
166 display_engine_list();
167 if(!ENGINE_remove(new_h3)) 182 if(!ENGINE_remove(new_h3))
168 { 183 {
169 printf("Remove failed!\n"); 184 printf("Remove failed!\n");
@@ -183,6 +198,8 @@ int main(int argc, char *argv[])
183 if(!ENGINE_remove(ptr)) 198 if(!ENGINE_remove(ptr))
184 printf("Remove failed!i - probably no hardware " 199 printf("Remove failed!i - probably no hardware "
185 "support present.\n"); 200 "support present.\n");
201 if (ptr)
202 ENGINE_free(ptr);
186 display_engine_list(); 203 display_engine_list();
187 if(!ENGINE_add(new_h1) || !ENGINE_remove(new_h1)) 204 if(!ENGINE_add(new_h1) || !ENGINE_remove(new_h1))
188 { 205 {
@@ -195,9 +212,9 @@ int main(int argc, char *argv[])
195 for(loop = 0; loop < 512; loop++) 212 for(loop = 0; loop < 512; loop++)
196 { 213 {
197 sprintf(buf, "id%i", loop); 214 sprintf(buf, "id%i", loop);
198 id = strdup(buf); 215 id = BUF_strdup(buf);
199 sprintf(buf, "Fake engine type %i", loop); 216 sprintf(buf, "Fake engine type %i", loop);
200 name = strdup(buf); 217 name = BUF_strdup(buf);
201 if(((block[loop] = ENGINE_new()) == NULL) || 218 if(((block[loop] = ENGINE_new()) == NULL) ||
202 !ENGINE_set_id(block[loop], id) || 219 !ENGINE_set_id(block[loop], id) ||
203 !ENGINE_set_name(block[loop], name)) 220 !ENGINE_set_name(block[loop], name))
@@ -228,12 +245,13 @@ cleanup_loop:
228 printf("\nRemove failed!\n"); 245 printf("\nRemove failed!\n");
229 goto end; 246 goto end;
230 } 247 }
248 ENGINE_free(ptr);
231 printf("."); fflush(stdout); 249 printf("."); fflush(stdout);
232 } 250 }
233 for(loop = 0; loop < 512; loop++) 251 for(loop = 0; loop < 512; loop++)
234 { 252 {
235 free((char *)(ENGINE_get_id(block[loop]))); 253 OPENSSL_free((void *)ENGINE_get_id(block[loop]));
236 free((char *)(ENGINE_get_name(block[loop]))); 254 OPENSSL_free((void *)ENGINE_get_name(block[loop]));
237 } 255 }
238 printf("\nTests completed happily\n"); 256 printf("\nTests completed happily\n");
239 to_return = 0; 257 to_return = 0;
@@ -247,5 +265,10 @@ end:
247 for(loop = 0; loop < 512; loop++) 265 for(loop = 0; loop < 512; loop++)
248 if(block[loop]) 266 if(block[loop])
249 ENGINE_free(block[loop]); 267 ENGINE_free(block[loop]);
268 ENGINE_cleanup();
269 CRYPTO_cleanup_all_ex_data();
270 ERR_free_strings();
271 ERR_remove_state(0);
272 CRYPTO_mem_leaks_fp(stderr);
250 return to_return; 273 return to_return;
251 } 274 }
diff --git a/src/lib/libssl/test/md4test.c b/src/lib/libssl/test/md4test.c
index 97e6e21efd..e0fdc42282 100644
--- a/src/lib/libssl/test/md4test.c
+++ b/src/lib/libssl/test/md4test.c
@@ -60,13 +60,14 @@
60#include <string.h> 60#include <string.h>
61#include <stdlib.h> 61#include <stdlib.h>
62 62
63#ifdef NO_MD4 63#ifdef OPENSSL_NO_MD4
64int main(int argc, char *argv[]) 64int main(int argc, char *argv[])
65{ 65{
66 printf("No MD4 support\n"); 66 printf("No MD4 support\n");
67 return(0); 67 return(0);
68} 68}
69#else 69#else
70#include <openssl/evp.h>
70#include <openssl/md4.h> 71#include <openssl/md4.h>
71 72
72static char *test[]={ 73static char *test[]={
@@ -96,13 +97,15 @@ int main(int argc, char *argv[])
96 int i,err=0; 97 int i,err=0;
97 unsigned char **P,**R; 98 unsigned char **P,**R;
98 char *p; 99 char *p;
100 unsigned char md[MD4_DIGEST_LENGTH];
99 101
100 P=(unsigned char **)test; 102 P=(unsigned char **)test;
101 R=(unsigned char **)ret; 103 R=(unsigned char **)ret;
102 i=1; 104 i=1;
103 while (*P != NULL) 105 while (*P != NULL)
104 { 106 {
105 p=pt(MD4(&(P[0][0]),(unsigned long)strlen((char *)*P),NULL)); 107 EVP_Digest(&(P[0][0]),(unsigned long)strlen((char *)*P),md,NULL,EVP_md4(), NULL);
108 p=pt(md);
106 if (strcmp(p,(char *)*R) != 0) 109 if (strcmp(p,(char *)*R) != 0)
107 { 110 {
108 printf("error calculating MD4 on '%s'\n",*P); 111 printf("error calculating MD4 on '%s'\n",*P);
diff --git a/src/lib/libssl/test/rsa_test.c b/src/lib/libssl/test/rsa_test.c
index e5ae0c1f69..b8b462d33b 100644
--- a/src/lib/libssl/test/rsa_test.c
+++ b/src/lib/libssl/test/rsa_test.c
@@ -3,12 +3,12 @@
3#include <stdio.h> 3#include <stdio.h>
4#include <string.h> 4#include <string.h>
5 5
6#include "openssl/e_os.h" 6#include "e_os.h"
7 7
8#include <openssl/crypto.h> 8#include <openssl/crypto.h>
9#include <openssl/err.h> 9#include <openssl/err.h>
10#include <openssl/rand.h> 10#include <openssl/rand.h>
11#ifdef NO_RSA 11#ifdef OPENSSL_NO_RSA
12int main(int argc, char *argv[]) 12int main(int argc, char *argv[])
13{ 13{
14 printf("No RSA support\n"); 14 printf("No RSA support\n");
@@ -16,6 +16,7 @@ int main(int argc, char *argv[])
16} 16}
17#else 17#else
18#include <openssl/rsa.h> 18#include <openssl/rsa.h>
19#include <openssl/engine.h>
19 20
20#define SetKey \ 21#define SetKey \
21 key->n = BN_bin2bn(n, sizeof(n)-1, key->n); \ 22 key->n = BN_bin2bn(n, sizeof(n)-1, key->n); \
@@ -219,10 +220,12 @@ int main(int argc, char *argv[])
219 int clen = 0; 220 int clen = 0;
220 int num; 221 int num;
221 222
223 CRYPTO_malloc_debug_init();
224 CRYPTO_dbg_set_options(V_CRYPTO_MDEBUG_ALL);
225 CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
226
222 RAND_seed(rnd_seed, sizeof rnd_seed); /* or OAEP may fail */ 227 RAND_seed(rnd_seed, sizeof rnd_seed); /* or OAEP may fail */
223 228
224 CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
225
226 plen = sizeof(ptext_ex) - 1; 229 plen = sizeof(ptext_ex) - 1;
227 230
228 for (v = 0; v < 3; v++) 231 for (v = 0; v < 3; v++)
@@ -305,9 +308,10 @@ int main(int argc, char *argv[])
305 RSA_free(key); 308 RSA_free(key);
306 } 309 }
307 310
311 CRYPTO_cleanup_all_ex_data();
308 ERR_remove_state(0); 312 ERR_remove_state(0);
309 313
310 CRYPTO_mem_leaks_fp(stdout); 314 CRYPTO_mem_leaks_fp(stderr);
311 315
312 return err; 316 return err;
313 } 317 }
diff --git a/src/lib/libssl/test/testgen b/src/lib/libssl/test/testgen
index c5f61b582b..6a4b6b9221 100644
--- a/src/lib/libssl/test/testgen
+++ b/src/lib/libssl/test/testgen
@@ -11,13 +11,19 @@ export PATH
11 11
12echo "generating certificate request" 12echo "generating certificate request"
13 13
14echo "There should be a 2 sequences of .'s and some +'s."
15echo "There should not be more that at most 80 per line"
16echo "This could take some time."
17
18echo "string to make the random number generator think it has entropy" >> ./.rnd 14echo "string to make the random number generator think it has entropy" >> ./.rnd
19 15
20../apps/openssl req -config test.cnf -new -out testreq.pem 16if ../apps/openssl no-rsa; then
17 req_new='-newkey dsa:../apps/dsa512.pem'
18else
19 req_new='-new'
20 echo "There should be a 2 sequences of .'s and some +'s."
21 echo "There should not be more that at most 80 per line"
22fi
23
24echo "This could take some time."
25
26../apps/openssl req -config test.cnf $req_new -out testreq.pem
21if [ $? != 0 ]; then 27if [ $? != 0 ]; then
22echo problems creating request 28echo problems creating request
23exit 1 29exit 1
diff --git a/src/lib/libssl/test/treq b/src/lib/libssl/test/treq
index 0464c9d902..9f5eb7eea5 100644
--- a/src/lib/libssl/test/treq
+++ b/src/lib/libssl/test/treq
@@ -11,6 +11,11 @@ else
11 t=testreq.pem 11 t=testreq.pem
12fi 12fi
13 13
14if $cmd -in $t -inform p -noout -text | fgrep 'Unknown Public Key'; then
15 echo "skipping req conversion test for $t"
16 exit 0
17fi
18
14echo testing req conversions 19echo testing req conversions
15cp $t fff.p 20cp $t fff.p
16 21
diff --git a/src/lib/libssl/test/trsa b/src/lib/libssl/test/trsa
index d6a4dd826d..bd6c07650a 100644
--- a/src/lib/libssl/test/trsa
+++ b/src/lib/libssl/test/trsa
@@ -3,6 +3,11 @@
3PATH=../apps:$PATH 3PATH=../apps:$PATH
4export PATH 4export PATH
5 5
6if ../apps/openssl no-rsa; then
7 echo skipping rsa conversion test
8 exit 0
9fi
10
6cmd='../apps/openssl rsa' 11cmd='../apps/openssl rsa'
7 12
8if [ "$1"x != "x" ]; then 13if [ "$1"x != "x" ]; then