It makes much more sense and is much more consistent with the rest of
OpenSSL to have to opt out hardware support instead of having to opt it in. And since the hardware support modules are self-contained and actually check that the vendor stuff is loadable, it still works as expected, or at least, so I think...
This commit is contained in:
17
Configure
17
Configure
@@ -10,7 +10,7 @@ use strict;
|
|||||||
|
|
||||||
# see INSTALL for instructions.
|
# see INSTALL for instructions.
|
||||||
|
|
||||||
my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [hw-xxx] [rsaref] [no-threads] [no-asm] [no-dso] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] os/compiler[:flags]\n";
|
my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx] [rsaref] [no-threads] [no-asm] [no-dso] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] os/compiler[:flags]\n";
|
||||||
|
|
||||||
# Options:
|
# Options:
|
||||||
#
|
#
|
||||||
@@ -23,11 +23,10 @@ my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-
|
|||||||
# default). This needn't be set in advance, you can
|
# default). This needn't be set in advance, you can
|
||||||
# just as well use "make INSTALL_PREFIX=/whatever install".
|
# just as well use "make INSTALL_PREFIX=/whatever install".
|
||||||
#
|
#
|
||||||
# hw-xxx compile support for specific crypto hardware. Generic
|
# no-hw-xxx do not compile support for specific crypto hardware.
|
||||||
# OpenSSL-style methods relating to this support are
|
# Generic OpenSSL-style methods relating to this support
|
||||||
# always compiled but return NULL if the hardware support
|
# are always compiled but return NULL if the hardware
|
||||||
# isn't compiled. Currently, hw-cswift is the only support
|
# support isn't compiled.
|
||||||
# of this form.
|
|
||||||
# rsaref use RSAref
|
# rsaref use RSAref
|
||||||
# [no-]threads [don't] try to create a library that is suitable for
|
# [no-]threads [don't] try to create a library that is suitable for
|
||||||
# multithreaded applications (default is "threads" if we
|
# multithreaded applications (default is "threads" if we
|
||||||
@@ -475,12 +474,12 @@ foreach (@ARGV)
|
|||||||
$openssl_algorithm_defines .= "#define NO_MDC2\n";
|
$openssl_algorithm_defines .= "#define NO_MDC2\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif (/^hw-(.+)$/)
|
elsif (/^no-hw-(.+)$/)
|
||||||
{
|
{
|
||||||
my $hw=$1;
|
my $hw=$1;
|
||||||
$hw =~ tr/[a-z]/[A-Z]/;
|
$hw =~ tr/[a-z]/[A-Z]/;
|
||||||
$flags .= "-DHW_$hw ";
|
$flags .= "-DNO_HW_$hw ";
|
||||||
$openssl_other_defines .= "#define HW_$hw\n";
|
$openssl_other_defines .= "#define NO_HW_$hw\n";
|
||||||
}
|
}
|
||||||
elsif (/^386$/)
|
elsif (/^386$/)
|
||||||
{ $processor=386; }
|
{ $processor=386; }
|
||||||
|
@@ -130,21 +130,21 @@ typedef struct engine_st
|
|||||||
/* Returns a structure of software only methods (the default). */
|
/* Returns a structure of software only methods (the default). */
|
||||||
ENGINE *ENGINE_openssl();
|
ENGINE *ENGINE_openssl();
|
||||||
|
|
||||||
#ifdef HW_CSWIFT
|
#ifndef NO_HW_CSWIFT
|
||||||
/* Returns a structure of cswift methods ... NB: This can exist and be
|
/* Returns a structure of cswift methods ... NB: This can exist and be
|
||||||
* "used" even on non-cswift systems because the "init" will fail if the
|
* "used" even on non-cswift systems because the "init" will fail if the
|
||||||
* card/library are not found. */
|
* card/library are not found. */
|
||||||
ENGINE *ENGINE_cswift();
|
ENGINE *ENGINE_cswift();
|
||||||
#endif /* HW_CSWIFT */
|
#endif /* !NO_HW_CSWIFT */
|
||||||
|
|
||||||
#ifdef HW_NCIPHER
|
#ifndef NO_HW_NCIPHER
|
||||||
ENGINE *ENGINE_ncipher();
|
ENGINE *ENGINE_ncipher();
|
||||||
#endif /* HW_NCIPHER */
|
#endif /* !NO_HW_NCIPHER */
|
||||||
|
|
||||||
#ifdef HW_ATALLA
|
#ifndef NO_HW_ATALLA
|
||||||
/* Returns a structure of atalla methods. */
|
/* Returns a structure of atalla methods. */
|
||||||
ENGINE *ENGINE_atalla();
|
ENGINE *ENGINE_atalla();
|
||||||
#endif /* HW_ATALLA */
|
#endif /* !NO_HW_ATALLA */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@@ -185,18 +185,18 @@ static int engine_internal_check(void)
|
|||||||
* with our statically compiled-in engines. */
|
* with our statically compiled-in engines. */
|
||||||
if(!engine_list_add(ENGINE_openssl()))
|
if(!engine_list_add(ENGINE_openssl()))
|
||||||
return 0;
|
return 0;
|
||||||
#ifdef HW_CSWIFT
|
#ifndef NO_HW_CSWIFT
|
||||||
if(!engine_list_add(ENGINE_cswift()))
|
if(!engine_list_add(ENGINE_cswift()))
|
||||||
return 0;
|
return 0;
|
||||||
#endif /* HW_CSWIFT */
|
#endif /* !NO_HW_CSWIFT */
|
||||||
#ifdef HW_NCIPHER
|
#ifndef NO_HW_NCIPHER
|
||||||
if(!engine_list_add(ENGINE_ncipher()))
|
if(!engine_list_add(ENGINE_ncipher()))
|
||||||
return 0;
|
return 0;
|
||||||
#endif /* HW_CSWIFT */
|
#endif /* !NO_HW_NCIPHER */
|
||||||
#ifdef HW_ATALLA
|
#ifndef NO_HW_ATALLA
|
||||||
if(!engine_list_add(ENGINE_atalla()))
|
if(!engine_list_add(ENGINE_atalla()))
|
||||||
return 0;
|
return 0;
|
||||||
#endif /* HW_CSWIFT */
|
#endif /* !NO_HW_ATALLA */
|
||||||
engine_list_flag = 1;
|
engine_list_flag = 1;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -63,7 +63,7 @@
|
|||||||
#include "engine_int.h"
|
#include "engine_int.h"
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
|
|
||||||
#ifdef HW_ATALLA
|
#ifndef NO_HW_ATALLA
|
||||||
|
|
||||||
#include "vendor_defns/atalla.h"
|
#include "vendor_defns/atalla.h"
|
||||||
|
|
||||||
@@ -153,6 +153,7 @@ static ENGINE engine_atalla =
|
|||||||
NULL,
|
NULL,
|
||||||
atalla_init,
|
atalla_init,
|
||||||
atalla_finish,
|
atalla_finish,
|
||||||
|
NULL, /* no ctrl() */
|
||||||
0, /* no flags */
|
0, /* no flags */
|
||||||
0, 0, /* no references */
|
0, 0, /* no references */
|
||||||
NULL, NULL /* unlinked */
|
NULL, NULL /* unlinked */
|
||||||
@@ -432,4 +433,4 @@ static int atalla_mod_exp_dh(DH *dh, BIGNUM *r, BIGNUM *a, const BIGNUM *p,
|
|||||||
return atalla_mod_exp(r, a, p, m, ctx);
|
return atalla_mod_exp(r, a, p, m, ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* HW_ATALLA */
|
#endif /* !NO_HW_ATALLA */
|
||||||
|
@@ -63,7 +63,7 @@
|
|||||||
#include "engine_int.h"
|
#include "engine_int.h"
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
|
|
||||||
#ifdef HW_CSWIFT
|
#ifndef NO_HW_CSWIFT
|
||||||
|
|
||||||
/* Attribution notice: Rainbow have generously allowed me to reproduce
|
/* Attribution notice: Rainbow have generously allowed me to reproduce
|
||||||
* the necessary definitions here from their API. This means the support
|
* the necessary definitions here from their API. This means the support
|
||||||
@@ -729,5 +729,4 @@ static int cswift_mod_exp_dh(DH *dh, BIGNUM *r, BIGNUM *a, const BIGNUM *p,
|
|||||||
return cswift_mod_exp(r, a, p, m, ctx);
|
return cswift_mod_exp(r, a, p, m, ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* HW_CSWIFT */
|
#endif /* !NO_HW_CSWIFT */
|
||||||
|
|
||||||
|
@@ -64,7 +64,7 @@
|
|||||||
#include "engine_int.h"
|
#include "engine_int.h"
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
|
|
||||||
#ifdef HW_NCIPHER
|
#ifndef NO_HW_NCIPHER
|
||||||
|
|
||||||
/* Attribution notice: nCipher har said several times that it's OK for
|
/* Attribution notice: nCipher har said several times that it's OK for
|
||||||
* us to implement a general interface to their boxes, and recently declared
|
* us to implement a general interface to their boxes, and recently declared
|
||||||
@@ -471,15 +471,19 @@ static int hwcrhk_ctrl(int cmd, long i, void *p, void (*f)())
|
|||||||
switch(cmd)
|
switch(cmd)
|
||||||
{
|
{
|
||||||
case ENGINE_CTRL_SET_LOGSTREAM:
|
case ENGINE_CTRL_SET_LOGSTREAM:
|
||||||
|
{
|
||||||
|
BIO *bio = (BIO *)p;
|
||||||
|
|
||||||
if (logstream)
|
if (logstream)
|
||||||
{
|
{
|
||||||
BIO_free(logstream);
|
BIO_free(logstream);
|
||||||
logstream = NULL;
|
logstream = NULL;
|
||||||
}
|
}
|
||||||
if (CRYPTO_add(&bio->references,1,CRYPTO_LOCK_BIO) > 1)
|
if (CRYPTO_add(&bio->references,1,CRYPTO_LOCK_BIO) > 1)
|
||||||
logstream = (BIO *)p;
|
logstream = bio;
|
||||||
else
|
else
|
||||||
ENGINEerr(ENGINE_F_HWCRHK_CTRL,ENGINE_R_BIO_WAS_FREED);
|
ENGINEerr(ENGINE_F_HWCRHK_CTRL,ENGINE_R_BIO_WAS_FREED);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ENGINEerr(ENGINE_F_HWCRHK_CTRL,
|
ENGINEerr(ENGINE_F_HWCRHK_CTRL,
|
||||||
@@ -768,5 +772,4 @@ static void log_message(void *logstream, const char *message)
|
|||||||
CRYPTO_w_unlock(CRYPTO_LOCK_BIO);
|
CRYPTO_w_unlock(CRYPTO_LOCK_BIO);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* HW_NCIPHER */
|
#endif /* !NO_HW_NCIPHER */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user