Commit b4d6f713 authored by Rich Salz's avatar Rich Salz
Browse files

Make default_method mostly compile-time



Document thread-safety issues

Cherry-pick from 076fc555 but
keeps the RSA_null method.

Reviewed-by: default avatarGeoff Thorpe <geoff@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3146)
parent ab6abae6
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -1465,12 +1465,8 @@ int speed_main(int argc, char **argv)
            continue;
        }
#ifndef OPENSSL_NO_RSA
# ifndef RSA_NULL
        if (strcmp(*argv, "openssl") == 0) {
            RSA_set_default_method(RSA_PKCS1_OpenSSL());
        if (strcmp(*argv, "openssl") == 0)
            continue;
        }
# endif
        if (strcmp(*argv, "rsa") == 0) {
            rsa_doit[R_RSA_512] = rsa_doit[R_RSA_1024] =
                rsa_doit[R_RSA_2048] = rsa_doit[R_RSA_3072] =
+12 −0
Original line number Diff line number Diff line
@@ -56,11 +56,23 @@ static DH_METHOD dh_ossl = {
    NULL
};

static const DH_METHOD *default_DH_method = &dh_ossl;

const DH_METHOD *DH_OpenSSL(void)
{
    return &dh_ossl;
}

void DH_set_default_method(const DH_METHOD *meth)
{
    default_DH_method = meth;
}

const DH_METHOD *DH_get_default_method(void)
{
    return default_DH_method;
}

static int generate_key(DH *dh)
{
    int ok = 0;
+0 −14
Original line number Diff line number Diff line
@@ -13,20 +13,6 @@
#include "dh_locl.h"
#include <openssl/engine.h>

static const DH_METHOD *default_DH_method = NULL;

void DH_set_default_method(const DH_METHOD *meth)
{
    default_DH_method = meth;
}

const DH_METHOD *DH_get_default_method(void)
{
    if (!default_DH_method)
        default_DH_method = DH_OpenSSL();
    return default_DH_method;
}

int DH_set_method(DH *dh, const DH_METHOD *meth)
{
    /*
+0 −14
Original line number Diff line number Diff line
@@ -17,20 +17,6 @@
#include <openssl/engine.h>
#include <openssl/dh.h>

static const DSA_METHOD *default_DSA_method = NULL;

void DSA_set_default_method(const DSA_METHOD *meth)
{
    default_DSA_method = meth;
}

const DSA_METHOD *DSA_get_default_method(void)
{
    if (!default_DSA_method)
        default_DSA_method = DSA_OpenSSL();
    return default_DSA_method;
}

DSA *DSA_new(void)
{
    return DSA_new_method(NULL);
+12 −0
Original line number Diff line number Diff line
@@ -41,6 +41,18 @@ static DSA_METHOD openssl_dsa_meth = {
    NULL
};

static const DSA_METHOD *default_DSA_method = &openssl_dsa_meth;

void DSA_set_default_method(const DSA_METHOD *meth)
{
    default_DSA_method = meth;
}

const DSA_METHOD *DSA_get_default_method(void)
{
    return default_DSA_method;
}

const DSA_METHOD *DSA_OpenSSL(void)
{
    return &openssl_dsa_meth;
Loading