From 554c23a1df61e8533a650f553763a43fcc69d41a Mon Sep 17 00:00:00 2001 From: jow Date: Fri, 19 Nov 2010 23:31:29 +0000 Subject: [PATCH] [backfire] openssl: sync patches with trunk git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@24043 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches/190-remove_timestamp_check.patch | 23 + ...-20080917.patch => 200-ocf-20100325.patch} | 464 ++++++++---------- .../openssl/patches/400-cve-2010-0740.patch | 15 - 3 files changed, 218 insertions(+), 284 deletions(-) create mode 100644 package/openssl/patches/190-remove_timestamp_check.patch rename package/openssl/patches/{200-ocf-20080917.patch => 200-ocf-20100325.patch} (76%) delete mode 100644 package/openssl/patches/400-cve-2010-0740.patch diff --git a/package/openssl/patches/190-remove_timestamp_check.patch b/package/openssl/patches/190-remove_timestamp_check.patch new file mode 100644 index 000000000..e19933156 --- /dev/null +++ b/package/openssl/patches/190-remove_timestamp_check.patch @@ -0,0 +1,23 @@ +--- a/Makefile.org ++++ b/Makefile.org +@@ -179,7 +179,7 @@ WTARFILE= $(NAME)-win.tar + EXHEADER= e_os2.h + HEADER= e_os.h + +-all: Makefile build_all openssl.pc libssl.pc libcrypto.pc ++all: build_all openssl.pc libssl.pc libcrypto.pc + + # as we stick to -e, CLEARENV ensures that local variables in lower + # Makefiles remain local and variable. $${VAR+VAR} is tribute to Korn +@@ -474,11 +474,6 @@ openssl.pc: Makefile + echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \ + echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc + +-Makefile: Makefile.org Configure config +- @echo "Makefile is older than Makefile.org, Configure or config." +- @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please." +- @false +- + libclean: + rm -f *.map *.so *.so.* *.dll engines/*.so engines/*.dll *.a engines/*.a */lib */*/lib + diff --git a/package/openssl/patches/200-ocf-20080917.patch b/package/openssl/patches/200-ocf-20100325.patch similarity index 76% rename from package/openssl/patches/200-ocf-20080917.patch rename to package/openssl/patches/200-ocf-20100325.patch index 2c6c04a1a..e53c447e4 100644 --- a/package/openssl/patches/200-ocf-20080917.patch +++ b/package/openssl/patches/200-ocf-20100325.patch @@ -9,17 +9,18 @@ # # --test-sanity Make a number of sanity checks on the data in this file. # This is a debugging tool for OpenSSL developers. -@@ -554,6 +556,9 @@ my %table=( +@@ -554,6 +556,10 @@ my %table=( ##### Compaq Non-Stop Kernel (Tandem) "tandem-c89","c89:-Ww -D__TANDEM -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -D_TANDEM_SOURCE -DB_ENDIAN::(unknown):::THIRTY_TWO_BIT:::", +# uClinux +"uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):BN_LLONG::::::::::::\$(LIBSSL_dlfcn):linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}", ++"uClinux-dist64","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):SIXTY_FOUR_BIT_LONG::::::::::::\$(LIBSSL_dlfcn):linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}", + ); my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A -@@ -610,6 +615,8 @@ my $montasm=1; # but "no-montasm" is d +@@ -610,6 +616,8 @@ my $montasm=1; # but "no-montasm" is d my $no_asm=0; my $no_dso=0; my $no_gmp=0; @@ -28,9 +29,9 @@ my @skip=(); my $Makefile="Makefile"; my $des_locl="crypto/des/des_locl.h"; -@@ -762,6 +769,14 @@ PROCESS_ARGS: +@@ -758,6 +766,14 @@ PROCESS_ARGS: { - $strict_warnings = 1; + exit(&test_sanity()); } + elsif (/^--with-cryptodev$/) + { @@ -40,10 +41,10 @@ + { + $use_cryptodev_digests = 1; + } - elsif (/^reconfigure/ || /^reconf/) + elsif (/^--strict-warnings/) { - if (open(IN,"<$Makefile")) -@@ -1055,6 +1070,7 @@ foreach (sort (keys %disabled)) + $strict_warnings = 1; +@@ -1055,6 +1071,7 @@ foreach (sort (keys %disabled)) print " OPENSSL_NO_$ALGO"; if (/^err$/) { $flags .= "-DOPENSSL_NO_ERR "; } @@ -51,7 +52,7 @@ elsif (/^asm$/) { $no_asm = 1; } } else -@@ -1184,6 +1200,16 @@ if (!$no_krb5) +@@ -1184,6 +1201,16 @@ if (!$no_krb5) $withargs{"krb5-dir"} ne ""; } @@ -85,7 +86,7 @@ ---------------------- --- a/Makefile.org +++ b/Makefile.org -@@ -504,7 +504,7 @@ files: +@@ -499,7 +499,7 @@ files: links: @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl @@ -125,176 +126,28 @@ ;; esac exit 0 -@@ -399,7 +399,8 @@ exit 0 +@@ -399,7 +399,7 @@ exit 0 # this is where the translation occurs into SSLeay terms # --------------------------------------------------------------------------- -GCCVER=`(gcc -dumpversion) 2>/dev/null` -+CC="${CC:-gcc}" -+GCCVER=`(${CC} -dumpversion) 2>/dev/null` ++GCCVER=`(${CC:-gcc} -dumpversion) 2>/dev/null` if [ "$GCCVER" != "" ]; then # then strip off whatever prefix egcs prepends the number with... # Hopefully, this will work for any future prefixes as well. -@@ -409,6 +410,8 @@ if [ "$GCCVER" != "" ]; then - # major and minor version numbers. - # peak single digit before and after first dot, e.g. 2.95.1 gives 29 - GCCVER=`echo $GCCVER | sed 's/\([0-9]\)\.\([0-9]\).*/\1\2/'` -+else -+ CC="${CC:-cc}" - fi - - # Only set CC if not supplied already -@@ -488,6 +491,9 @@ echo Operating system: $GUESSOS +@@ -488,6 +488,12 @@ echo Operating system: $GUESSOS # script above so we end up with values in vars but that would take # more time that I want to waste at the moment case "$GUESSOS" in ++ uClinux*64*) ++ OUT=uClinux-dist64 ++ ;; + uClinux*) + OUT=uClinux-dist + ;; mips2-sgi-irix) CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` CPU=${CPU:-0} ---- /dev/null -+++ b/makefile-uclinuxdist -@@ -0,0 +1,138 @@ -+# -+# this makefile gets recursed through by various bits of the build -+# so we need to only setup some things when invoked from outside -+# this directory. -+# -+# davidm@snapgear.com -+# -+ -+IN_LIBSSL := true -+export IN_LIBSSL -+ -+CONFIG_OPTS := --prefix=// --install_prefix=$(shell pwd)/build/install -+ -+ifdef CONFIG_USER_FLATFSD_FLATFSD -+CONFIG_OPTS += --openssldir=/etc/config -+else -+CONFIG_OPTS += --openssldir=/etc -+endif -+ifdef DISABLE_SHARED_SSL -+CONFIG_OPTS += no-shared -+else -+CONFIG_OPTS += shared -+endif -+ -+CONFIG_OPTS += no-rc2 -+CONFIG_OPTS += no-krb5 -+CONFIG_OPTS += no-rc5 -+CONFIG_OPTS += no-md2 -+CONFIG_OPTS += no-idea -+#CONFIG_OPTS += no-pem -+#CONFIG_OPTS += no-md5 -+#CONFIG_OPTS += no-sha -+#CONFIG_OPTS += no-hmac -+#CONFIG_OPTS += no-des -+#CONFIG_OPTS += no-aes -+#CONFIG_OPTS += no-bn -+CONFIG_OPTS += no-ec -+#CONFIG_OPTS += no-rsa -+#CONFIG_OPTS += no-dsa -+CONFIG_OPTS += no-ecdsa -+#CONFIG_OPTS += no-dh -+CONFIG_OPTS += no-ecdh -+CONFIG_OPTS += no-dso -+#CONFIG_OPTS += no-engine -+#CONFIG_OPTS += no-buffer -+#CONFIG_OPTS += no-bio -+#CONFIG_OPTS += no-stack -+#CONFIG_OPTS += no-lhash -+#CONFIG_OPTS += no-rand -+CONFIG_OPTS += no-err -+#CONFIG_OPTS += no-evp -+#CONFIG_OPTS += no-asn1 -+#CONFIG_OPTS += no-x509 -+#CONFIG_OPTS += no-x509v3 -+#CONFIG_OPTS += no-txt_db -+#CONFIG_OPTS += no-pkcs7 -+#CONFIG_OPTS += no-pkcs12 -+#CONFIG_OPTS += no-comp -+#CONFIG_OPTS += no-ocsp -+#CONFIG_OPTS += no-ui -+#CONFIG_OPTS += no-store -+CONFIG_OPTS += no-pqueue -+ -+# REVISIT: It would be better to have OPENSSL config options -+# which turn on this support as needed -+ifeq ($(CONFIG_USER_NESSUS_NASL)$(CONFIG_USER_SSH_SSH),) -+CONFIG_OPTS += no-ripemd -+CONFIG_OPTS += no-cast -+CONFIG_OPTS += no-rc4 -+endif -+ -+ifeq ($(CONFIG_USER_NESSUS_NASL)$(CONFIG_USER_SSH_SSH)$(CONFIG_PROP_SSCEP_SSCEP),) -+CONFIG_OPTS += no-bf -+endif -+ -+ifeq ($(CONFIG_USER_OPENVPN_OPENVPN)$(CONFIG_USER_WGET),) -+CONFIG_OPTS += no-md4 -+endif -+ -+ifdef CONFIG_OCF_OCF -+CONFIG_OPTS += --with-cryptodev -+#CONFIG_OPTS += --with-cryptodev-digests -+endif -+ -+# -+# if you want engines (they are dl loaded), a few things -+# need to be setup, you will also need to mod everything -+# to link against -ldl if it uses libcrypto. By default we -+# disable it (cryptodev suport is still included). -+# -+ifdef YOU_WANT_DYNAMIC_HW_ENGINES_ENABLED -+LIBSSL_dlfcn = dlfcn -+else -+CONFIG_OPTS += no-hw -+LIBSSL_dlfcn = -+endif -+ -+# -+# our libs aren't in the default location yet -+# -+LDFLAGS += -L$(ROOTDIR)/lib/libssl/build -+export LDFLAGS -+ -+all: build/configured -+ $(MAKE) -C build -+ $(MAKE) -C build install_sw -+ -+build/configured: makefile config Configure -+ rm -rf build -+ find . -type d > .dirs -+ find . ! -type d | grep -v ./makefile > .files -+ while read t; do mkdir -p build/$$t; done < .dirs -+ while read t; do ln -s `pwd`/$$t build/$$t; done < .files -+ rm -f .dirs .files -+ chmod +x build/config -+ cd build; MACHINE=uClinux-dist ./config $(CONFIG_OPTS) -+ $(MAKE) -C build depend -+ $(MAKE) -C build links -+ touch build/configured -+ -+clean: -+ -rm -rf build -+ -+romfs: -+ cd build/install/lib; \ -+ for i in *.so*; do \ -+ if [ -L $$i ]; then \ -+ $(ROMFSINST) -s `find $$i -printf %l` /lib/$$i; \ -+ elif [ -f $$i ]; then \ -+ $(ROMFSINST) /lib/$$i; \ -+ fi; \ -+ done -+ -+romfs_user: -+ $(ROMFSINST) -e CONFIG_USER_OPENSSL_APPS build/install/bin/openssl /bin/openssl -+ # $(ROMFSINST) -e CONFIG_USER_OPENSSL_APPS build/install/bin/c_rehash /bin/c_rehash -+ -+ --- a/apps/apps.h +++ b/apps/apps.h @@ -112,7 +112,7 @@ @@ -320,7 +173,7 @@ {FUNC_TYPE_MD,"md2",dgst_main}, --- a/apps/speed.c +++ b/apps/speed.c -@@ -296,7 +296,7 @@ static const char *names[ALGOR_NUM]={ +@@ -302,7 +302,7 @@ static const char *names[ALGOR_NUM]={ "evp","sha256","sha512", "aes-128 ige","aes-192 ige","aes-256 ige"}; static double results[ALGOR_NUM][SIZE_NUM]; @@ -329,17 +182,20 @@ #ifndef OPENSSL_NO_RSA static double rsa_results[RSA_NUM][2]; #endif -@@ -336,6 +336,79 @@ static SIGRETTYPE sig_done(int sig) +@@ -342,6 +342,82 @@ static SIGRETTYPE sig_done(int sig) #define START 0 #define STOP 1 ++static int do_cpu = 0; ++ +#ifdef __linux__ ++ ++#define HAVE_CPU_USAGE 1 ++ +/* + * record CPU usage as well + */ + -+static int do_cpu = 0; -+ +struct cpu_stat { + unsigned int user; + unsigned int nice; @@ -409,23 +265,21 @@ #if defined(OPENSSL_SYS_NETWARE) /* for NetWare the best we can do is use clock() which returns the -@@ -366,6 +439,11 @@ static double Time_F(int s) +@@ -372,6 +448,9 @@ static double Time_F(int s) { double ret; -+#ifdef __linux__ + if (do_cpu) + get_cpu(s); -+#endif + #ifdef USE_TOD if(usertime) { -@@ -840,6 +918,14 @@ int MAIN(int argc, char **argv) +@@ -839,6 +918,14 @@ int MAIN(int argc, char **argv) j--; /* Otherwise, -elapsed gets confused with an algorithm. */ } -+#ifdef __linux__ ++#ifdef HAVE_CPU_USAGE + else if ((argc > 0) && (strcmp(*argv,"-cpu") == 0)) + { + do_cpu = 1; @@ -436,17 +290,17 @@ else if ((argc > 0) && (strcmp(*argv,"-evp") == 0)) { argc--; -@@ -1268,6 +1354,9 @@ int MAIN(int argc, char **argv) +@@ -1267,6 +1354,9 @@ int MAIN(int argc, char **argv) #ifndef NO_FORK BIO_printf(bio_err,"-multi n run n benchmarks in parallel.\n"); #endif -+#ifdef __linux__ ++#ifdef HAVE_CPU_USAGE + BIO_printf(bio_err,"-cpu calculate cpu utilisation.\n"); +#endif goto end; } argc--; -@@ -1275,11 +1364,6 @@ int MAIN(int argc, char **argv) +@@ -1274,11 +1364,6 @@ int MAIN(int argc, char **argv) j++; } @@ -458,11 +312,11 @@ if (j == 0) { for (i=0; icipher_data; struct session_op *sess = &state->d_sess; - int cipher; -+ int cipher, i; - +- - if ((cipher = cipher_nid_to_cryptodev(ctx->cipher->nid)) == NID_undef) - return (0); -- ++ int cipher, i; + - if (ctx->cipher->iv_len > cryptodev_max_iv(cipher)) - return (0); + for (i = 0; ciphers[i].id; i++) @@ -896,7 +775,7 @@ memset(sess, 0, sizeof(struct session_op)); -@@ -505,6 +540,20 @@ cryptodev_cleanup(EVP_CIPHER_CTX *ctx) +@@ -505,6 +490,20 @@ cryptodev_cleanup(EVP_CIPHER_CTX *ctx) * gets called when libcrypto requests a cipher NID. */ @@ -917,7 +796,7 @@ /* DES CBC EVP */ const EVP_CIPHER cryptodev_des_cbc = { NID_des_cbc, -@@ -572,6 +621,32 @@ const EVP_CIPHER cryptodev_aes_cbc = { +@@ -572,6 +571,32 @@ const EVP_CIPHER cryptodev_aes_cbc = { NULL }; @@ -950,7 +829,7 @@ /* * Registered by the ENGINE when used to find out how to deal with * a particular NID in the ENGINE. this says what we'll do at the -@@ -585,6 +660,9 @@ cryptodev_engine_ciphers(ENGINE *e, cons +@@ -585,6 +610,9 @@ cryptodev_engine_ciphers(ENGINE *e, cons return (cryptodev_usable_ciphers(nids)); switch (nid) { @@ -960,7 +839,7 @@ case NID_des_ede3_cbc: *cipher = &cryptodev_3des_cbc; break; -@@ -600,6 +678,12 @@ cryptodev_engine_ciphers(ENGINE *e, cons +@@ -600,6 +628,12 @@ cryptodev_engine_ciphers(ENGINE *e, cons case NID_aes_128_cbc: *cipher = &cryptodev_aes_cbc; break; @@ -973,7 +852,7 @@ default: *cipher = NULL; break; -@@ -607,6 +691,234 @@ cryptodev_engine_ciphers(ENGINE *e, cons +@@ -607,6 +641,234 @@ cryptodev_engine_ciphers(ENGINE *e, cons return (*cipher != NULL); } @@ -1012,14 +891,14 @@ + int digest; + + if ((digest = digest_nid_to_cryptodev(ctx->digest->type)) == NID_undef){ -+ printf("cryptodev_digest_init: Can't get digest \n"); ++ fprintf(stderr, "cryptodev_digest_init: Can't get digest \n"); + return (0); + } + + memset(state, 0, sizeof(struct dev_crypto_state)); + + if ((state->d_fd = get_dev_crypto()) < 0) { -+ printf("cryptodev_digest_init: Can't get Dev \n"); ++ fprintf(stderr, "cryptodev_digest_init: Can't get Dev \n"); + return (0); + } + @@ -1030,7 +909,7 @@ + if (ioctl(state->d_fd, CIOCGSESSION, sess) < 0) { + close(state->d_fd); + state->d_fd = -1; -+ printf("cryptodev_digest_init: Open session failed\n"); ++ fprintf(stderr, "cryptodev_digest_init: Open session failed\n"); + return (0); + } + @@ -1045,7 +924,7 @@ + struct session_op *sess = &state->d_sess; + + if (!data || state->d_fd < 0) { -+ printf("cryptodev_digest_update: illegal inputs \n"); ++ fprintf(stderr, "cryptodev_digest_update: illegal inputs \n"); + return (0); + } + @@ -1058,7 +937,7 @@ + state->mac_data = OPENSSL_realloc(state->mac_data, state->mac_len + count); + + if (!state->mac_data) { -+ printf("cryptodev_digest_update: realloc failed\n"); ++ fprintf(stderr, "cryptodev_digest_update: realloc failed\n"); + return (0); + } + @@ -1077,7 +956,7 @@ + cryp.dst = NULL; + cryp.mac = state->digest_res; + if (ioctl(state->d_fd, CIOCCRYPT, &cryp) < 0) { -+ printf("cryptodev_digest_update: digest failed\n"); ++ fprintf(stderr, "cryptodev_digest_update: digest failed\n"); + return (0); + } + return (1); @@ -1093,7 +972,7 @@ + int ret = 1; + + if (!md || state->d_fd < 0) { -+ printf("cryptodev_digest_final: illegal input\n"); ++ fprintf(stderr, "cryptodev_digest_final: illegal input\n"); + return(0); + } + @@ -1109,7 +988,7 @@ + cryp.mac = md; + + if (ioctl(state->d_fd, CIOCCRYPT, &cryp) < 0) { -+ printf("cryptodev_digest_final: digest failed\n"); ++ fprintf(stderr, "cryptodev_digest_final: digest failed\n"); + return (0); + } + @@ -1129,7 +1008,7 @@ + struct session_op *sess = &state->d_sess; + + if (state->d_fd < 0) { -+ printf("cryptodev_digest_cleanup: illegal input\n"); ++ fprintf(stderr, "cryptodev_digest_cleanup: illegal input\n"); + return (0); + } + @@ -1143,7 +1022,7 @@ + return 1; + + if (ioctl(state->d_fd, CIOCFSESSION, &sess->ses) < 0) { -+ printf("cryptodev_digest_cleanup: failed to close session\n"); ++ fprintf(stderr, "cryptodev_digest_cleanup: failed to close session\n"); + ret = 0; + } else { + ret = 1; @@ -1208,7 +1087,7 @@ static int cryptodev_engine_digests(ENGINE *e, const EVP_MD **digest, const int **nids, int nid) -@@ -615,10 +927,15 @@ cryptodev_engine_digests(ENGINE *e, cons +@@ -615,10 +877,15 @@ cryptodev_engine_digests(ENGINE *e, cons return (cryptodev_usable_digests(nids)); switch (nid) { @@ -1225,7 +1104,7 @@ *digest = NULL; break; } -@@ -646,6 +963,7 @@ bn2crparam(const BIGNUM *a, struct crpar +@@ -646,6 +913,7 @@ bn2crparam(const BIGNUM *a, struct crpar b = malloc(bytes); if (b == NULL) return (1); @@ -1233,7 +1112,7 @@ crp->crp_p = (char *)b; crp->crp_nbits = bits; -@@ -690,7 +1008,7 @@ zapparams(struct crypt_kop *kop) +@@ -690,7 +958,7 @@ zapparams(struct crypt_kop *kop) { int i; @@ -1242,6 +1121,75 @@ if (kop->crk_param[i].crp_p) free(kop->crk_param[i].crp_p); kop->crk_param[i].crp_p = NULL; +@@ -776,7 +1044,6 @@ static int + cryptodev_rsa_nocrt_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) + { + int r; +- + r = cryptodev_bn_mod_exp(r0, I, rsa->d, rsa->n, ctx, NULL); + return (r); + } +@@ -920,6 +1187,9 @@ cryptodev_dsa_do_sign(const unsigned cha + const DSA_METHOD *meth = DSA_OpenSSL(); + BN_free(r); + BN_free(s); ++ fprintf(stderr, "cryptodev_asym: CRK_DSA_SIGN %s failed, " ++ "Running in software\n", errno==kop.crk_status ? ++ "hardware operation" : "asym process"); + dsaret = (meth->dsa_do_sign)(dgst, dlen, dsa); + } + err: +@@ -961,6 +1231,9 @@ cryptodev_dsa_verify(const unsigned char + } else { + const DSA_METHOD *meth = DSA_OpenSSL(); + ++ fprintf(stderr, "cryptodev_asym: CRK_DSA_VERIFY %s failed, " ++ "Running in software\n", errno==kop.crk_status ? ++ "hardware operation" : "asym process"); + dsaret = (meth->dsa_do_verify)(dgst, dlen, sig, dsa); + } + err: +@@ -994,8 +1267,8 @@ static int + cryptodev_dh_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh) + { + struct crypt_kop kop; +- int dhret = 1; +- int fd, keylen; ++ int dhret = -1; ++ int fd, keybits; + + if ((fd = get_asym_dev_crypto()) < 0) { + const DH_METHOD *meth = DH_OpenSSL(); +@@ -1003,7 +1276,7 @@ cryptodev_dh_compute_key(unsigned char * + return ((meth->compute_key)(key, pub_key, dh)); + } + +- keylen = BN_num_bits(dh->p); ++ keybits = BN_num_bits(dh->p); + + memset(&kop, 0, sizeof kop); + kop.crk_op = CRK_DH_COMPUTE_KEY; +@@ -1018,14 +1291,18 @@ cryptodev_dh_compute_key(unsigned char * + kop.crk_iparams = 3; + + kop.crk_param[3].crp_p = (char *)key; +- kop.crk_param[3].crp_nbits = keylen * 8; ++ kop.crk_param[3].crp_nbits = keybits; + kop.crk_oparams = 1; + + if (ioctl(fd, CIOCKEY, &kop) == -1) { + const DH_METHOD *meth = DH_OpenSSL(); + ++ fprintf(stderr, "cryptodev_asym: CRK_DH_COMPUTE_KEY %s failed, " ++ "Running in software\n", errno==kop.crk_status ? ++ "hardware operation" : "asym process"); + dhret = (meth->compute_key)(key, pub_key, dh); +- } ++ } else ++ dhret = (keybits + 7) / 8; + err: + kop.crk_param[3].crp_p = NULL; + zapparams(&kop); --- a/crypto/engine/engine.h +++ b/crypto/engine/engine.h @@ -705,7 +705,7 @@ typedef int (*dynamic_bind_engine)(ENGIN @@ -1285,25 +1233,3 @@ *DSO_DLFCN*) sfx="so";; \ *DSO_DL*) sfx="sl";; \ *) sfx="bad";; \ ---- a/util/domd -+++ b/util/domd -@@ -22,13 +22,17 @@ if expr "$MAKEDEPEND" : '.*gcc$' > /dev/ - done - sed -e '/^# DO NOT DELETE.*/,$d' < Makefile > Makefile.tmp - echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' >> Makefile.tmp -- ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND -M $args >> Makefile.tmp -+ ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND -M $args >> Makefile.tmp && \ - ${PERL} $TOP/util/clean-depend.pl < Makefile.tmp > Makefile.new -+ RC=$? - rm -f Makefile.tmp - else -- ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND $@ -+ ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND $@ && \ - ${PERL} $TOP/util/clean-depend.pl < Makefile > Makefile.new -+ RC=$? - fi - mv Makefile.new Makefile - # unfake the presence of Kerberos - rm $TOP/krb5.h -+ -+exit $RC diff --git a/package/openssl/patches/400-cve-2010-0740.patch b/package/openssl/patches/400-cve-2010-0740.patch deleted file mode 100644 index 4c893eb38..000000000 --- a/package/openssl/patches/400-cve-2010-0740.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/ssl/s3_pkt.c -+++ b/ssl/s3_pkt.c -@@ -291,9 +291,9 @@ again: - if (version != s->version) - { - SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_WRONG_VERSION_NUMBER); -- /* Send back error using their -- * version number :-) */ -- s->version=version; -+ if ((s->version & 0xFF00) == (version & 0xFF00)) -+ /* Send back error using their minor version number :-) */ -+ s->version = (unsigned short)version; - al=SSL_AD_PROTOCOL_VERSION; - goto f_err; - }