Commit ce8b2574 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

New functions to allow RSA_METHODs to be changed without poking round in

RSA structure internals.
parent e3718280
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -4,6 +4,11 @@

 Changes between 0.9.3a and 0.9.4

  *) New functions RSA_get_default_method(), RSA_set_method() and
     RSA_get_method(). These allows replacement of RSA_METHODs without having
     to mess around with the internals of an RSA structure.
     [Steve Henson]

  *) Fix memory leaks in DSA_do_sign and DSA_is_prime.
     Also really enable memory leak checks in openssl.c and in some
     test programs.
+3 −0
Original line number Diff line number Diff line
@@ -161,6 +161,9 @@ void RSA_free (RSA *r);
int	RSA_flags(RSA *r);

void RSA_set_default_method(RSA_METHOD *meth);
RSA_METHOD *RSA_get_default_method(void);
RSA_METHOD *RSA_get_method(RSA *rsa);
RSA_METHOD *RSA_set_method(RSA *rsa, RSA_METHOD *meth);

/* This function needs the memory locking malloc callbacks to be installed */
int RSA_memory_lock(RSA *r);
+20 −0
Original line number Diff line number Diff line
@@ -79,6 +79,26 @@ void RSA_set_default_method(RSA_METHOD *meth)
	default_RSA_meth=meth;
	}

RSA_METHOD *RSA_get_default_method(void)
{
	return default_RSA_meth;
}

RSA_METHOD *RSA_get_method(RSA *rsa)
{
	return rsa->meth;
}

RSA_METHOD *RSA_set_method(RSA *rsa, RSA_METHOD *meth)
{
	RSA_METHOD *mtmp;
	mtmp = rsa->meth;
	if (mtmp->finish) mtmp->finish(rsa);
	rsa->meth = meth;
	if (meth->init) meth->init(rsa);
	return mtmp;
}

RSA *RSA_new_method(RSA_METHOD *meth)
	{
	RSA *ret;
+3 −0
Original line number Diff line number Diff line
@@ -1818,3 +1818,6 @@ sk_ASN1_OBJECT_insert 1842
sk_ASN1_OBJECT_push                     1843
d2i_ASN1_SET_OF_ASN1_OBJECT             1844
PKCS7_signatureVerify                   1845
RSA_set_method                          1846
RSA_get_method                          1847
RSA_get_default_method                  1848