The OpenBSD project has replaced the first implementation of the /dev/crypto

engine with something they claim is better.  I have nothing to compare to,
and I assume they know what they're talking about.  The interesting part with
this one is that it's loaded by default on OpenBSD systems.
This change was originally introduced in OpenBSD's tracking of OpenSSL.
This commit is contained in:
Richard Levitte 2002-10-02 00:19:33 +00:00
parent 929f116733
commit 293d5082c7
6 changed files with 1137 additions and 6 deletions

View File

@ -28,13 +28,13 @@ LIBSRC= eng_err.c eng_lib.c eng_list.c eng_init.c eng_ctrl.c \
tb_rsa.c tb_dsa.c tb_ecdsa.c tb_dh.c tb_rand.c tb_cipher.c tb_digest.c tb_ecdh.c \ tb_rsa.c tb_dsa.c tb_ecdsa.c tb_dh.c tb_rand.c tb_cipher.c tb_digest.c tb_ecdh.c \
eng_openssl.c eng_dyn.c eng_cnf.c \ eng_openssl.c eng_dyn.c eng_cnf.c \
hw_atalla.c hw_cswift.c hw_ncipher.c hw_nuron.c hw_ubsec.c \ hw_atalla.c hw_cswift.c hw_ncipher.c hw_nuron.c hw_ubsec.c \
hw_openbsd_dev_crypto.c hw_aep.c hw_sureware.c hw_4758_cca.c hw_cryptodev.c hw_aep.c hw_sureware.c hw_4758_cca.c
LIBOBJ= eng_err.o eng_lib.o eng_list.o eng_init.o eng_ctrl.o \ LIBOBJ= eng_err.o eng_lib.o eng_list.o eng_init.o eng_ctrl.o \
eng_table.o eng_pkey.o eng_fat.o eng_all.o \ eng_table.o eng_pkey.o eng_fat.o eng_all.o \
tb_rsa.o tb_dsa.o tb_ecdsa.o tb_dh.o tb_rand.o tb_cipher.o tb_digest.o tb_ecdh.o \ tb_rsa.o tb_dsa.o tb_ecdsa.o tb_dh.o tb_rand.o tb_cipher.o tb_digest.o tb_ecdh.o \
eng_openssl.o eng_dyn.o eng_cnf.o \ eng_openssl.o eng_dyn.o eng_cnf.o \
hw_atalla.o hw_cswift.o hw_ncipher.o hw_nuron.o hw_ubsec.o \ hw_atalla.o hw_cswift.o hw_ncipher.o hw_nuron.o hw_ubsec.o \
hw_openbsd_dev_crypto.o hw_aep.o hw_sureware.o hw_4758_cca.o hw_cryptodev.o hw_aep.o hw_sureware.o hw_4758_cca.o
SRC= $(LIBSRC) SRC= $(LIBSRC)

View File

@ -95,8 +95,19 @@ void ENGINE_load_builtin_engines(void)
#ifndef OPENSSL_NO_HW_4758_CCA #ifndef OPENSSL_NO_HW_4758_CCA
ENGINE_load_4758cca(); ENGINE_load_4758cca();
#endif #endif
#ifdef OPENSSL_OPENBSD_DEV_CRYPTO #ifdef __OpenBSD__
ENGINE_load_openbsd_dev_crypto(); ENGINE_load_cryptodev();
#endif #endif
#endif #endif
} }
#ifdef __OpenBSD__
void ENGINE_setup_openbsd(void) {
static int openbsd_default_loaded = 0;
if (!openbsd_default_loaded) {
ENGINE_load_cryptodev();
ENGINE_register_all_complete();
}
openbsd_default_loaded=1;
}
#endif

View File

@ -326,7 +326,7 @@ void ENGINE_load_ubsec(void);
void ENGINE_load_aep(void); void ENGINE_load_aep(void);
void ENGINE_load_sureware(void); void ENGINE_load_sureware(void);
void ENGINE_load_4758cca(void); void ENGINE_load_4758cca(void);
void ENGINE_load_openbsd_dev_crypto(void); void ENGINE_load_cryptodev(void);
void ENGINE_load_builtin_engines(void); void ENGINE_load_builtin_engines(void);
/* Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation /* Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation

1117
crypto/engine/hw_cryptodev.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -73,4 +73,7 @@ void OPENSSL_add_all_algorithms_noconf(void)
{ {
OpenSSL_add_all_ciphers(); OpenSSL_add_all_ciphers();
OpenSSL_add_all_digests(); OpenSSL_add_all_digests();
#ifdef __OpenBSD__
ENGINE_setup_openbsd();
#endif
} }

View File

@ -2049,7 +2049,7 @@ SXNET_it 2613 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTI
UI_dup_input_boolean 2614 EXIST::FUNCTION: UI_dup_input_boolean 2614 EXIST::FUNCTION:
PKCS12_add_CSPName_asc 2615 EXIST::FUNCTION: PKCS12_add_CSPName_asc 2615 EXIST::FUNCTION:
EC_POINT_is_at_infinity 2616 EXIST::FUNCTION:EC EC_POINT_is_at_infinity 2616 EXIST::FUNCTION:EC
ENGINE_load_openbsd_dev_crypto 2617 EXIST::FUNCTION: ENGINE_load_cryptodev 2617 EXIST::FUNCTION:
DSO_convert_filename 2618 EXIST::FUNCTION: DSO_convert_filename 2618 EXIST::FUNCTION:
POLICYQUALINFO_it 2619 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: POLICYQUALINFO_it 2619 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
POLICYQUALINFO_it 2619 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: POLICYQUALINFO_it 2619 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: