Commit 7ae551fd authored by Geoff Thorpe's avatar Geoff Thorpe
Browse files

In RSA, DSA, DH, and RAND - if the "***_new()" function fails because the

ENGINE code does not return a default, set an error.
parent c2e45f6d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -148,6 +148,7 @@ DH *DH_new_method(ENGINE *engine)
		{
		if((ret->engine=ENGINE_get_default_DH()) == NULL)
			{
			DHerr(DH_F_DH_NEW,ERR_LIB_ENGINE);
			OPENSSL_free(ret);
			return NULL;
			}
+1 −0
Original line number Diff line number Diff line
@@ -152,6 +152,7 @@ DSA *DSA_new_method(ENGINE *engine)
		{
		if((ret->engine=ENGINE_get_default_DSA()) == NULL)
			{
			DSAerr(DSA_F_DSA_NEW,ERR_LIB_ENGINE);
			OPENSSL_free(ret);
			return NULL;
			}
+2 −2
Original line number Diff line number Diff line
@@ -96,7 +96,6 @@ int RAND_status(void);
int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes);
int RAND_egd(const char *path);
int RAND_egd_bytes(const char *path,int bytes);
void ERR_load_RAND_strings(void);
int RAND_poll(void);

#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32)
@@ -110,10 +109,12 @@ int RAND_event(UINT, WPARAM, LPARAM);
/* The following lines are auto generated by the script mkerr.pl. Any changes
 * made after this point may be overwritten when the script is next run.
 */
void ERR_load_RAND_strings(void);

/* Error codes for the RAND functions. */

/* Function codes. */
#define RAND_F_RAND_GET_RAND_METHOD			 101
#define RAND_F_SSLEAY_RAND_BYTES			 100

/* Reason codes. */
@@ -123,4 +124,3 @@ int RAND_event(UINT, WPARAM, LPARAM);
}
#endif
#endif
+1 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@
#ifndef OPENSSL_NO_ERR
static ERR_STRING_DATA RAND_str_functs[]=
	{
{ERR_PACK(0,RAND_F_RAND_GET_RAND_METHOD,0),	"RAND_get_rand_method"},
{ERR_PACK(0,RAND_F_SSLEAY_RAND_BYTES,0),	"SSLEAY_RAND_BYTES"},
{0,NULL}
	};
+4 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@

#include <stdio.h>
#include <time.h>
#include "cryptlib.h"
#include <openssl/rand.h>
#include <openssl/engine.h>

@@ -86,7 +87,10 @@ const RAND_METHOD *RAND_get_rand_method(void)
	{
	if (rand_engine == NULL
		&& (rand_engine = ENGINE_get_default_RAND()) == NULL)
		{
		RANDerr(RAND_F_RAND_GET_RAND_METHOD,ERR_LIB_ENGINE);
		return NULL;
		}
	return ENGINE_get_RAND(rand_engine);
	}

Loading