提交 deb4d50e 编写于 作者: G Geoff Thorpe

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.
上级 ffb48878
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册