Previously, the default RSA_METHOD was NULL until the first RSA structure was
initialised, at which point an appropriate default was chosen. This meant a call to RSA_get_default_method might have returned FALSE. This change fixes that; now any called to RSA_new(), RSA_new_method(NULL), or RSA_get_default_method() will ensure that a default is chosen if it wasn't already.
This commit is contained in:
parent
ffb488781f
commit
deb4d50e51
2 changed files with 21 additions and 13 deletions
7
CHANGES
7
CHANGES
|
@ -4,6 +4,13 @@
|
|||
|
||||
Changes between 0.9.5a and 0.9.6 [xx XXX 2000]
|
||||
|
||||
*) RSA_get_default_method() will now cause a default
|
||||
RSA_METHOD to be chosen if one doesn't exist already.
|
||||
Previously this was only set during a call to RSA_new()
|
||||
or RSA_new_method(NULL) meaning it was possible for
|
||||
RSA_get_default_method() to return NULL.
|
||||
[Geoff Thorpe]
|
||||
|
||||
*) Added native name translation to the existing DSO code
|
||||
that will convert (if the flag to do so is set) filenames
|
||||
that are sufficiently small and have no path information
|
||||
|
|
|
@ -81,6 +81,19 @@ void RSA_set_default_method(RSA_METHOD *meth)
|
|||
|
||||
RSA_METHOD *RSA_get_default_method(void)
|
||||
{
|
||||
if (default_RSA_meth == NULL)
|
||||
{
|
||||
#ifdef RSA_NULL
|
||||
default_RSA_meth=RSA_null_method();
|
||||
#else
|
||||
#ifdef RSAref
|
||||
default_RSA_meth=RSA_PKCS1_RSAref();
|
||||
#else
|
||||
default_RSA_meth=RSA_PKCS1_SSLeay();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
return default_RSA_meth;
|
||||
}
|
||||
|
||||
|
@ -103,18 +116,6 @@ RSA *RSA_new_method(RSA_METHOD *meth)
|
|||
{
|
||||
RSA *ret;
|
||||
|
||||
if (default_RSA_meth == NULL)
|
||||
{
|
||||
#ifdef RSA_NULL
|
||||
default_RSA_meth=RSA_null_method();
|
||||
#else
|
||||
#ifdef RSAref
|
||||
default_RSA_meth=RSA_PKCS1_RSAref();
|
||||
#else
|
||||
default_RSA_meth=RSA_PKCS1_SSLeay();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
ret=(RSA *)Malloc(sizeof(RSA));
|
||||
if (ret == NULL)
|
||||
{
|
||||
|
@ -123,7 +124,7 @@ RSA *RSA_new_method(RSA_METHOD *meth)
|
|||
}
|
||||
|
||||
if (meth == NULL)
|
||||
ret->meth=default_RSA_meth;
|
||||
ret->meth=RSA_get_default_method();
|
||||
else
|
||||
ret->meth=meth;
|
||||
|
||||
|
|
Loading…
Reference in a new issue