Hello community, here is the log from the commit of package openssl for openSUSE:Factory checked in at 2016-03-05 11:21:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openssl (Old) and /work/SRC/openSUSE:Factory/.openssl.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openssl" Changes: -------- --- /work/SRC/openSUSE:Factory/openssl/openssl.changes 2015-12-13 09:36:20.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.openssl.new/openssl.changes 2016-03-05 11:21:19.000000000 +0100 @@ -1,0 +2,55 @@ +Tue Mar 1 14:40:18 UTC 2016 - vci...@suse.com + +- update to 1.0.2g (bsc#968044) + * Disable weak ciphers in SSLv3 and up in default builds of OpenSSL. + Builds that are not configured with "enable-weak-ssl-ciphers" will not + provide any "EXPORT" or "LOW" strength ciphers. + * Disable SSLv2 default build, default negotiation and weak ciphers. SSLv2 + is by default disabled at build-time. Builds that are not configured with + "enable-ssl2" will not support SSLv2. Even if "enable-ssl2" is used, + users who want to negotiate SSLv2 via the version-flexible SSLv23_method() + will need to explicitly call either of: + SSL_CTX_clear_options(ctx, SSL_OP_NO_SSLv2); + or + SSL_clear_options(ssl, SSL_OP_NO_SSLv2); + (CVE-2016-0800) + * Fix a double-free in DSA code + (CVE-2016-0705) + * Disable SRP fake user seed to address a server memory leak. + Add a new method SRP_VBASE_get1_by_user that handles the seed properly. + (CVE-2016-0798) + * Fix BN_hex2bn/BN_dec2bn NULL pointer deref/heap corruption + (CVE-2016-0797) + *) Side channel attack on modular exponentiation + http://cachebleed.info. + (CVE-2016-0702) + *) Change the req app to generate a 2048-bit RSA/DSA key by default, + if no keysize is specified with default_bits. This fixes an + omission in an earlier change that changed all RSA/DSA key generation + apps to use 2048 bits by default. + +------------------------------------------------------------------- +Thu Jan 28 15:10:38 UTC 2016 - vci...@suse.com + +- update to 1.0.2f (boo#963410) + *) DH small subgroups (boo#963413) + Historically OpenSSL only ever generated DH parameters based on "safe" + primes. More recently (in version 1.0.2) support was provided for + generating X9.42 style parameter files such as those required for RFC 5114 + support. The primes used in such files may not be "safe". Where an + application is using DH configured with parameters based on primes that are + not "safe" then an attacker could use this fact to find a peer's private + DH exponent. This attack requires that the attacker complete multiple + handshakes in which the peer uses the same private DH exponent. For example + this could be used to discover a TLS server's private DH exponent if it's + reusing the private DH exponent or it's using a static DH ciphersuite. + (CVE-2016-0701) + *) SSLv2 doesn't block disabled ciphers (boo#963415) + A malicious client can negotiate SSLv2 ciphers that have been disabled on + the server and complete SSLv2 handshakes even if all SSLv2 ciphers have + been disabled, provided that the SSLv2 protocol was not also disabled via + SSL_OP_NO_SSLv2. + (CVE-2015-3197) + *) Reject DH handshakes with parameters shorter than 1024 bits. + +------------------------------------------------------------------- Old: ---- openssl-1.0.2e.tar.gz openssl-1.0.2e.tar.gz.asc New: ---- openssl-1.0.2g.tar.gz openssl-1.0.2g.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openssl.spec ++++++ --- /var/tmp/diff_new_pack.4dhzIu/_old 2016-03-05 11:21:21.000000000 +0100 +++ /var/tmp/diff_new_pack.4dhzIu/_new 2016-03-05 11:21:21.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package openssl # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -29,7 +29,7 @@ %ifarch ppc64 Obsoletes: openssl-64bit %endif -Version: 1.0.2e +Version: 1.0.2g Release: 0 Summary: Secure Sockets and Transport Layer Security License: OpenSSL ++++++ 0001-Axe-builtin-printf-implementation-use-glibc-instead.patch ++++++ --- /var/tmp/diff_new_pack.4dhzIu/_old 2016-03-05 11:21:21.000000000 +0100 +++ /var/tmp/diff_new_pack.4dhzIu/_new 2016-03-05 11:21:21.000000000 +0100 @@ -4,10 +4,10 @@ Subject: [PATCH] Axe builtin printf implementation, use glibc instead -Index: openssl-1.0.2b/crypto/bio/b_print.c +Index: openssl-1.0.2g/crypto/bio/b_print.c =================================================================== ---- openssl-1.0.2b.orig/crypto/bio/b_print.c 2015-06-11 15:01:06.000000000 +0200 -+++ openssl-1.0.2b/crypto/bio/b_print.c 2015-06-11 17:50:00.893823977 +0200 +--- openssl-1.0.2g.orig/crypto/bio/b_print.c 2016-03-01 14:35:05.000000000 +0100 ++++ openssl-1.0.2g/crypto/bio/b_print.c 2016-03-01 15:26:55.597307479 +0100 @@ -56,17 +56,10 @@ * [including the GNU Public Licence.] */ @@ -28,7 +28,7 @@ #include <stdio.h> #include <string.h> #include <ctype.h> -@@ -79,668 +72,6 @@ +@@ -79,708 +72,6 @@ #include <openssl/bn.h> /* To get BN_LLONG properly defined */ #include <openssl/bio.h> @@ -78,16 +78,16 @@ -# define LLONG long -#endif - --static void fmtstr(char **, char **, size_t *, size_t *, -- const char *, int, int, int); --static void fmtint(char **, char **, size_t *, size_t *, -- LLONG, int, int, int, int); --static void fmtfp(char **, char **, size_t *, size_t *, -- LDOUBLE, int, int, int); --static void doapr_outch(char **, char **, size_t *, size_t *, int); --static void _dopr(char **sbuffer, char **buffer, -- size_t *maxlen, size_t *retlen, int *truncated, -- const char *format, va_list args); +-static int fmtstr(char **, char **, size_t *, size_t *, +- const char *, int, int, int); +-static int fmtint(char **, char **, size_t *, size_t *, +- LLONG, int, int, int, int); +-static int fmtfp(char **, char **, size_t *, size_t *, +- LDOUBLE, int, int, int); +-static int doapr_outch(char **, char **, size_t *, size_t *, int); +-static int _dopr(char **sbuffer, char **buffer, +- size_t *maxlen, size_t *retlen, int *truncated, +- const char *format, va_list args); - -/* format read states */ -#define DP_S_DEFAULT 0 @@ -118,7 +118,7 @@ -#define char_to_int(p) (p - '0') -#define OSSL_MAX(p,q) ((p >= q) ? p : q) - --static void +-static int -_dopr(char **sbuffer, - char **buffer, - size_t *maxlen, @@ -149,7 +149,8 @@ - if (ch == '%') - state = DP_S_FLAGS; - else -- doapr_outch(sbuffer, buffer, &currlen, maxlen, ch); +- if(!doapr_outch(sbuffer, buffer, &currlen, maxlen, ch)) +- return 0; - ch = *format++; - break; - case DP_S_FLAGS: @@ -255,8 +256,9 @@ - value = va_arg(args, int); - break; - } -- fmtint(sbuffer, buffer, &currlen, maxlen, -- value, 10, min, max, flags); +- if (!fmtint(sbuffer, buffer, &currlen, maxlen, value, 10, min, +- max, flags)) +- return 0; - break; - case 'X': - flags |= DP_F_UP; @@ -279,17 +281,19 @@ - value = (LLONG) va_arg(args, unsigned int); - break; - } -- fmtint(sbuffer, buffer, &currlen, maxlen, value, -- ch == 'o' ? 8 : (ch == 'u' ? 10 : 16), -- min, max, flags); +- if (!fmtint(sbuffer, buffer, &currlen, maxlen, value, +- ch == 'o' ? 8 : (ch == 'u' ? 10 : 16), +- min, max, flags)) +- return 0; - break; - case 'f': - if (cflags == DP_C_LDOUBLE) - fvalue = va_arg(args, LDOUBLE); - else - fvalue = va_arg(args, double); -- fmtfp(sbuffer, buffer, &currlen, maxlen, -- fvalue, min, max, flags); +- if (!fmtfp(sbuffer, buffer, &currlen, maxlen, fvalue, min, max, +- flags)) +- return 0; - break; - case 'E': - flags |= DP_F_UP; @@ -308,8 +312,9 @@ - fvalue = va_arg(args, double); - break; - case 'c': -- doapr_outch(sbuffer, buffer, &currlen, maxlen, -- va_arg(args, int)); +- if(!doapr_outch(sbuffer, buffer, &currlen, maxlen, +- va_arg(args, int))) +- return 0; - break; - case 's': - strvalue = va_arg(args, char *); @@ -319,13 +324,15 @@ - else - max = *maxlen; - } -- fmtstr(sbuffer, buffer, &currlen, maxlen, strvalue, -- flags, min, max); +- if (!fmtstr(sbuffer, buffer, &currlen, maxlen, strvalue, +- flags, min, max)) +- return 0; - break; - case 'p': - value = (long)va_arg(args, void *); -- fmtint(sbuffer, buffer, &currlen, maxlen, -- value, 16, min, max, flags | DP_F_NUM); +- if (!fmtint(sbuffer, buffer, &currlen, maxlen, +- value, 16, min, max, flags | DP_F_NUM)) +- return 0; - break; - case 'n': /* XXX */ - if (cflags == DP_C_SHORT) { @@ -347,7 +354,8 @@ - } - break; - case '%': -- doapr_outch(sbuffer, buffer, &currlen, maxlen, ch); +- if(!doapr_outch(sbuffer, buffer, &currlen, maxlen, ch)) +- return 0; - break; - case 'w': - /* not supported yet, treat as next char */ @@ -371,46 +379,56 @@ - *truncated = (currlen > *maxlen - 1); - if (*truncated) - currlen = *maxlen - 1; -- doapr_outch(sbuffer, buffer, &currlen, maxlen, '\0'); +- if(!doapr_outch(sbuffer, buffer, &currlen, maxlen, '\0')) +- return 0; - *retlen = currlen - 1; -- return; +- return 1; -} - --static void +-static int -fmtstr(char **sbuffer, - char **buffer, - size_t *currlen, - size_t *maxlen, const char *value, int flags, int min, int max) -{ -- int padlen, strln; +- int padlen; +- size_t strln; - int cnt = 0; - - if (value == 0) - value = "<NULL>"; -- for (strln = 0; value[strln]; ++strln) ; +- +- strln = strlen(value); +- if (strln > INT_MAX) +- strln = INT_MAX; +- - padlen = min - strln; -- if (padlen < 0) +- if (min < 0 || padlen < 0) - padlen = 0; - if (flags & DP_F_MINUS) - padlen = -padlen; - - while ((padlen > 0) && (cnt < max)) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, ' '); +- if(!doapr_outch(sbuffer, buffer, currlen, maxlen, ' ')) +- return 0; - --padlen; - ++cnt; - } - while (*value && (cnt < max)) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, *value++); +- if(!doapr_outch(sbuffer, buffer, currlen, maxlen, *value++)) +- return 0; - ++cnt; - } - while ((padlen < 0) && (cnt < max)) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, ' '); +- if(!doapr_outch(sbuffer, buffer, currlen, maxlen, ' ')) +- return 0; - ++padlen; - ++cnt; - } +- return 1; -} - --static void +-static int -fmtint(char **sbuffer, - char **buffer, - size_t *currlen, @@ -470,37 +488,44 @@ - - /* spaces */ - while (spadlen > 0) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, ' '); +- if(!doapr_outch(sbuffer, buffer, currlen, maxlen, ' ')) +- return 0; - --spadlen; - } - - /* sign */ - if (signvalue) -- doapr_outch(sbuffer, buffer, currlen, maxlen, signvalue); +- if(!doapr_outch(sbuffer, buffer, currlen, maxlen, signvalue)) +- return 0; - - /* prefix */ - while (*prefix) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, *prefix); +- if(!doapr_outch(sbuffer, buffer, currlen, maxlen, *prefix)) +- return 0; - prefix++; - } - - /* zeros */ - if (zpadlen > 0) { - while (zpadlen > 0) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, '0'); +- if(!doapr_outch(sbuffer, buffer, currlen, maxlen, '0')) +- return 0; - --zpadlen; - } - } - /* digits */ -- while (place > 0) -- doapr_outch(sbuffer, buffer, currlen, maxlen, convert[--place]); +- while (place > 0) { +- if (!doapr_outch(sbuffer, buffer, currlen, maxlen, convert[--place])) +- return 0; +- } - - /* left justified spaces */ - while (spadlen < 0) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, ' '); +- if (!doapr_outch(sbuffer, buffer, currlen, maxlen, ' ')) +- return 0; - ++spadlen; - } -- return; +- return 1; -} - -static LDOUBLE abs_val(LDOUBLE value) @@ -531,7 +556,7 @@ - return intpart; -} - --static void +-static int -fmtfp(char **sbuffer, - char **buffer, - size_t *currlen, @@ -610,47 +635,61 @@ - - if ((flags & DP_F_ZERO) && (padlen > 0)) { - if (signvalue) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, signvalue); +- if (!doapr_outch(sbuffer, buffer, currlen, maxlen, signvalue)) +- return 0; - --padlen; - signvalue = 0; - } - while (padlen > 0) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, '0'); +- if (!doapr_outch(sbuffer, buffer, currlen, maxlen, '0')) +- return 0; - --padlen; - } - } - while (padlen > 0) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, ' '); +- if (!doapr_outch(sbuffer, buffer, currlen, maxlen, ' ')) +- return 0; - --padlen; - } -- if (signvalue) -- doapr_outch(sbuffer, buffer, currlen, maxlen, signvalue); +- if (signvalue && !doapr_outch(sbuffer, buffer, currlen, maxlen, signvalue)) +- return 0; - -- while (iplace > 0) -- doapr_outch(sbuffer, buffer, currlen, maxlen, iconvert[--iplace]); +- while (iplace > 0) { +- if (!doapr_outch(sbuffer, buffer, currlen, maxlen, iconvert[--iplace])) +- return 0; +- } - - /* - * Decimal point. This should probably use locale to find the correct - * char to print out. - */ - if (max > 0 || (flags & DP_F_NUM)) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, '.'); +- if (!doapr_outch(sbuffer, buffer, currlen, maxlen, '.')) +- return 0; - -- while (fplace > 0) -- doapr_outch(sbuffer, buffer, currlen, maxlen, fconvert[--fplace]); +- while (fplace > 0) { +- if(!doapr_outch(sbuffer, buffer, currlen, maxlen, +- fconvert[--fplace])) +- return 0; +- } - } - while (zpadlen > 0) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, '0'); +- if (!doapr_outch(sbuffer, buffer, currlen, maxlen, '0')) +- return 0; - --zpadlen; - } - - while (padlen < 0) { -- doapr_outch(sbuffer, buffer, currlen, maxlen, ' '); +- if (!doapr_outch(sbuffer, buffer, currlen, maxlen, ' ')) +- return 0; - ++padlen; - } +- return 1; -} - --static void +-#define BUFFER_INC 1024 +- +-static int -doapr_outch(char **sbuffer, - char **buffer, size_t *currlen, size_t *maxlen, int c) -{ @@ -661,24 +700,25 @@ - assert(*currlen <= *maxlen); - - if (buffer && *currlen == *maxlen) { -- *maxlen += 1024; +- if (*maxlen > INT_MAX - BUFFER_INC) +- return 0; +- +- *maxlen += BUFFER_INC; - if (*buffer == NULL) { - *buffer = OPENSSL_malloc(*maxlen); -- if (!*buffer) { -- /* Panic! Can't really do anything sensible. Just return */ -- return; -- } +- if (*buffer == NULL) +- return 0; - if (*currlen > 0) { - assert(*sbuffer != NULL); - memcpy(*buffer, *sbuffer, *currlen); - } - *sbuffer = NULL; - } else { -- *buffer = OPENSSL_realloc(*buffer, *maxlen); -- if (!*buffer) { -- /* Panic! Can't really do anything sensible. Just return */ -- return; -- } +- char *tmpbuf; +- tmpbuf = OPENSSL_realloc(*buffer, *maxlen); +- if (tmpbuf == NULL) +- return 0; +- *buffer = tmpbuf; - } - } - @@ -689,7 +729,7 @@ - (*buffer)[(*currlen)++] = (char)c; - } - -- return; +- return 1; -} - -/***************************************************************************/ @@ -697,7 +737,7 @@ int BIO_printf(BIO *bio, const char *format, ...) { va_list args; -@@ -754,28 +85,36 @@ int BIO_printf(BIO *bio, const char *for +@@ -794,32 +85,36 @@ int BIO_printf(BIO *bio, const char *for return (ret); } @@ -726,7 +766,11 @@ - - dynbuf = NULL; - CRYPTO_push_info("doapr()"); -- _dopr(&hugebufp, &dynbuf, &hugebufsize, &retlen, &ignored, format, args); +- if (!_dopr(&hugebufp, &dynbuf, &hugebufsize, &retlen, &ignored, format, +- args)) { +- OPENSSL_free(dynbuf); +- return -1; +- } - if (dynbuf) { - ret = BIO_write(bio, dynbuf, (int)retlen); - OPENSSL_free(dynbuf); @@ -753,7 +797,7 @@ return (ret); } -@@ -791,28 +130,22 @@ int BIO_snprintf(char *buf, size_t n, co +@@ -835,29 +130,21 @@ int BIO_snprintf(char *buf, size_t n, co int ret; va_start(args, format); @@ -772,10 +816,13 @@ - size_t retlen; - int truncated; + int ret; - -- _dopr(&buf, NULL, &n, &retlen, &truncated, format, args); + ret = vsnprintf(buf, n, format, args); +- if(!_dopr(&buf, NULL, &n, &retlen, &truncated, format, args)) +- return -1; ++ if (ret >= n || ret == -1) ++ return (-1); + - if (truncated) - /* - * In case of truncation, return -1 like traditional snprintf. @@ -786,8 +833,5 @@ - return -1; - else - return (retlen <= INT_MAX) ? (int)retlen : -1; -+ if (ret >= n || ret == -1) -+ return (-1); -+ + return (ret); } ++++++ openssl-1.0.2a-new-fips-reqs.patch ++++++ --- /var/tmp/diff_new_pack.4dhzIu/_old 2016-03-05 11:21:22.000000000 +0100 +++ /var/tmp/diff_new_pack.4dhzIu/_new 2016-03-05 11:21:22.000000000 +0100 @@ -1,7 +1,8 @@ -diff -up openssl-1.0.2a/crypto/bn/bn_rand.c.fips-reqs openssl-1.0.2a/crypto/bn/bn_rand.c ---- openssl-1.0.2a/crypto/bn/bn_rand.c.fips-reqs 2015-03-19 14:19:00.000000000 +0100 -+++ openssl-1.0.2a/crypto/bn/bn_rand.c 2015-04-22 15:06:37.907003880 +0200 -@@ -136,9 +136,11 @@ static int bnrand(int pseudorand, BIGNUM +Index: openssl-1.0.2f/crypto/bn/bn_rand.c +=================================================================== +--- openssl-1.0.2f.orig/crypto/bn/bn_rand.c 2016-01-28 14:38:30.000000000 +0100 ++++ openssl-1.0.2f/crypto/bn/bn_rand.c 2016-01-28 15:59:54.945269236 +0100 +@@ -141,9 +141,11 @@ static int bnrand(int pseudorand, BIGNUM goto err; } @@ -16,9 +17,10 @@ if (pseudorand) { if (RAND_pseudo_bytes(buf, bytes) == -1) -diff -up openssl-1.0.2a/crypto/dh/dh_gen.c.fips-reqs openssl-1.0.2a/crypto/dh/dh_gen.c ---- openssl-1.0.2a/crypto/dh/dh_gen.c.fips-reqs 2015-04-22 15:06:37.840002285 +0200 -+++ openssl-1.0.2a/crypto/dh/dh_gen.c 2015-04-22 15:06:37.907003880 +0200 +Index: openssl-1.0.2f/crypto/dh/dh_gen.c +=================================================================== +--- openssl-1.0.2f.orig/crypto/dh/dh_gen.c 2016-01-28 15:59:54.912268693 +0100 ++++ openssl-1.0.2f/crypto/dh/dh_gen.c 2016-01-28 15:59:54.945269236 +0100 @@ -128,7 +128,7 @@ static int dh_builtin_genparams(DH *ret, return 0; } @@ -28,9 +30,10 @@ DHerr(DH_F_DH_BUILTIN_GENPARAMS, DH_R_KEY_SIZE_TOO_SMALL); goto err; } -diff -up openssl-1.0.2a/crypto/dh/dh.h.fips-reqs openssl-1.0.2a/crypto/dh/dh.h ---- openssl-1.0.2a/crypto/dh/dh.h.fips-reqs 2015-04-22 15:06:37.908003903 +0200 -+++ openssl-1.0.2a/crypto/dh/dh.h 2015-04-22 15:07:25.265130812 +0200 +Index: openssl-1.0.2f/crypto/dh/dh.h +=================================================================== +--- openssl-1.0.2f.orig/crypto/dh/dh.h 2016-01-28 15:59:54.912268693 +0100 ++++ openssl-1.0.2f/crypto/dh/dh.h 2016-01-28 15:59:54.945269236 +0100 @@ -78,6 +78,7 @@ # endif @@ -39,44 +42,11 @@ # define DH_FLAG_CACHE_MONT_P 0x01 -diff -up openssl-1.0.2a/crypto/dh/dh_check.c.fips-reqs openssl-1.0.2a/crypto/dh/dh_check.c ---- openssl-1.0.2a/crypto/dh/dh_check.c.fips-reqs 2015-03-19 14:30:36.000000000 +0100 -+++ openssl-1.0.2a/crypto/dh/dh_check.c 2015-04-22 15:06:37.908003903 +0200 -@@ -164,7 +164,30 @@ int DH_check_pub_key(const DH *dh, const - BN_sub_word(q, 1); - if (BN_cmp(pub_key, q) >= 0) - *ret |= DH_CHECK_PUBKEY_TOO_LARGE; -+#ifdef OPENSSL_FIPS -+ if (FIPS_mode() && dh->q != NULL) { -+ BN_CTX *ctx = NULL; - -+ ctx = BN_CTX_new(); -+ if (ctx == NULL) -+ goto err; -+ -+ if (BN_mod_exp_mont(q, pub_key, dh->q, dh->p, ctx, NULL) <= 0) { -+ BN_CTX_free(ctx); -+ goto err; -+ } -+ if (!BN_is_one(q)) { -+ /* it would be more correct to add new return flag -+ * for this test, but we do not want to do it -+ * so just error out -+ */ -+ BN_CTX_free(ctx); -+ goto err; -+ } -+ -+ BN_CTX_free(ctx); -+ } -+#endif - ok = 1; - err: - if (q != NULL) -diff -up openssl-1.0.2a/crypto/dsa/dsa_gen.c.fips-reqs openssl-1.0.2a/crypto/dsa/dsa_gen.c ---- openssl-1.0.2a/crypto/dsa/dsa_gen.c.fips-reqs 2015-04-22 15:06:37.841002309 +0200 -+++ openssl-1.0.2a/crypto/dsa/dsa_gen.c 2015-04-22 15:06:37.908003903 +0200 -@@ -165,9 +165,11 @@ int dsa_builtin_paramgen(DSA *ret, size_ +Index: openssl-1.0.2f/crypto/dsa/dsa_gen.c +=================================================================== +--- openssl-1.0.2f.orig/crypto/dsa/dsa_gen.c 2016-01-28 15:59:54.913268710 +0100 ++++ openssl-1.0.2f/crypto/dsa/dsa_gen.c 2016-01-28 15:59:54.945269236 +0100 +@@ -157,9 +157,11 @@ int dsa_builtin_paramgen(DSA *ret, size_ } if (FIPS_module_mode() && @@ -91,9 +61,10 @@ DSAerr(DSA_F_DSA_BUILTIN_PARAMGEN, DSA_R_KEY_SIZE_INVALID); goto err; } -diff -up openssl-1.0.2a/crypto/dsa/dsa.h.fips-reqs openssl-1.0.2a/crypto/dsa/dsa.h ---- openssl-1.0.2a/crypto/dsa/dsa.h.fips-reqs 2015-04-22 15:06:37.908003903 +0200 -+++ openssl-1.0.2a/crypto/dsa/dsa.h 2015-04-22 15:09:01.291415852 +0200 +Index: openssl-1.0.2f/crypto/dsa/dsa.h +=================================================================== +--- openssl-1.0.2f.orig/crypto/dsa/dsa.h 2016-01-28 15:59:54.913268710 +0100 ++++ openssl-1.0.2f/crypto/dsa/dsa.h 2016-01-28 15:59:54.946269253 +0100 @@ -89,6 +89,7 @@ # endif @@ -114,10 +85,11 @@ * Rabin-Miller */ # define DSA_is_prime(n, callback, cb_arg) \ -diff -up openssl-1.0.2a/crypto/dsa/dsa_key.c.fips-reqs openssl-1.0.2a/crypto/dsa/dsa_key.c ---- openssl-1.0.2a/crypto/dsa/dsa_key.c.fips-reqs 2015-04-22 15:06:37.905003832 +0200 -+++ openssl-1.0.2a/crypto/dsa/dsa_key.c 2015-04-22 15:06:37.908003903 +0200 -@@ -125,7 +125,7 @@ static int dsa_builtin_keygen(DSA *dsa) +Index: openssl-1.0.2f/crypto/dsa/dsa_key.c +=================================================================== +--- openssl-1.0.2f.orig/crypto/dsa/dsa_key.c 2016-01-28 15:59:54.913268710 +0100 ++++ openssl-1.0.2f/crypto/dsa/dsa_key.c 2016-01-28 15:59:54.946269253 +0100 +@@ -120,7 +120,7 @@ static int dsa_builtin_keygen(DSA *dsa) # ifdef OPENSSL_FIPS if (FIPS_mode() && !(dsa->flags & DSA_FLAG_NON_FIPS_ALLOW) @@ -126,10 +98,11 @@ DSAerr(DSA_F_DSA_BUILTIN_KEYGEN, DSA_R_KEY_SIZE_TOO_SMALL); goto err; } -diff -up openssl-1.0.2a/crypto/fips/fips.c.fips-reqs openssl-1.0.2a/crypto/fips/fips.c ---- openssl-1.0.2a/crypto/fips/fips.c.fips-reqs 2015-04-22 15:06:37.905003832 +0200 -+++ openssl-1.0.2a/crypto/fips/fips.c 2015-04-22 15:06:37.909003927 +0200 -@@ -424,26 +424,24 @@ int FIPS_module_mode_set(int onoff, cons +Index: openssl-1.0.2f/crypto/fips/fips.c +=================================================================== +--- openssl-1.0.2f.orig/crypto/fips/fips.c 2016-01-28 15:59:54.939269138 +0100 ++++ openssl-1.0.2f/crypto/fips/fips.c 2016-01-28 15:59:54.946269253 +0100 +@@ -418,26 +418,24 @@ int FIPS_module_mode_set(int onoff, cons ret = 0; goto end; } @@ -162,9 +135,10 @@ ret = 1; goto end; } -diff -up openssl-1.0.2a/crypto/fips/fips_dh_selftest.c.fips-reqs openssl-1.0.2a/crypto/fips/fips_dh_selftest.c ---- openssl-1.0.2a/crypto/fips/fips_dh_selftest.c.fips-reqs 2015-04-22 15:06:37.909003927 +0200 -+++ openssl-1.0.2a/crypto/fips/fips_dh_selftest.c 2015-04-22 15:06:37.909003927 +0200 +Index: openssl-1.0.2f/crypto/fips/fips_dh_selftest.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ openssl-1.0.2f/crypto/fips/fips_dh_selftest.c 2016-01-28 15:59:54.946269253 +0100 @@ -0,0 +1,162 @@ +/* ==================================================================== + * Copyright (c) 2011 The OpenSSL Project. All rights reserved. @@ -328,9 +302,10 @@ + return ret; +} +#endif -diff -up openssl-1.0.2a/crypto/fips/fips.h.fips-reqs openssl-1.0.2a/crypto/fips/fips.h ---- openssl-1.0.2a/crypto/fips/fips.h.fips-reqs 2015-04-22 15:06:37.899003689 +0200 -+++ openssl-1.0.2a/crypto/fips/fips.h 2015-04-22 15:06:37.909003927 +0200 +Index: openssl-1.0.2f/crypto/fips/fips.h +=================================================================== +--- openssl-1.0.2f.orig/crypto/fips/fips.h 2016-01-28 15:59:54.939269138 +0100 ++++ openssl-1.0.2f/crypto/fips/fips.h 2016-01-28 15:59:54.946269253 +0100 @@ -96,6 +96,7 @@ extern "C" { int FIPS_selftest_dsa(void); int FIPS_selftest_ecdsa(void); @@ -339,9 +314,10 @@ void FIPS_corrupt_rng(void); void FIPS_rng_stick(void); void FIPS_x931_stick(int onoff); -diff -up openssl-1.0.2a/crypto/fips/fips_post.c.fips-reqs openssl-1.0.2a/crypto/fips/fips_post.c ---- openssl-1.0.2a/crypto/fips/fips_post.c.fips-reqs 2015-04-22 15:06:37.895003594 +0200 -+++ openssl-1.0.2a/crypto/fips/fips_post.c 2015-04-22 15:06:37.909003927 +0200 +Index: openssl-1.0.2f/crypto/fips/fips_post.c +=================================================================== +--- openssl-1.0.2f.orig/crypto/fips/fips_post.c 2016-01-28 15:59:54.933269039 +0100 ++++ openssl-1.0.2f/crypto/fips/fips_post.c 2016-01-28 15:59:54.946269253 +0100 @@ -99,6 +99,8 @@ int FIPS_selftest(void) rv = 0; if (!FIPS_selftest_dsa()) @@ -351,9 +327,10 @@ if (!FIPS_selftest_ecdh()) rv = 0; return rv; -diff -up openssl-1.0.2a/crypto/fips/fips_rsa_selftest.c.fips-reqs openssl-1.0.2a/crypto/fips/fips_rsa_selftest.c ---- openssl-1.0.2a/crypto/fips/fips_rsa_selftest.c.fips-reqs 2015-04-22 15:06:37.854002618 +0200 -+++ openssl-1.0.2a/crypto/fips/fips_rsa_selftest.c 2015-04-22 15:06:37.910003951 +0200 +Index: openssl-1.0.2f/crypto/fips/fips_rsa_selftest.c +=================================================================== +--- openssl-1.0.2f.orig/crypto/fips/fips_rsa_selftest.c 2016-01-28 15:59:54.920268825 +0100 ++++ openssl-1.0.2f/crypto/fips/fips_rsa_selftest.c 2016-01-28 15:59:54.947269270 +0100 @@ -60,68 +60,107 @@ #ifdef OPENSSL_FIPS @@ -1008,9 +985,10 @@ RSA_free(key); return ret; } -diff -up openssl-1.0.2a/crypto/fips/Makefile.fips-reqs openssl-1.0.2a/crypto/fips/Makefile ---- openssl-1.0.2a/crypto/fips/Makefile.fips-reqs 2015-04-22 15:06:37.895003594 +0200 -+++ openssl-1.0.2a/crypto/fips/Makefile 2015-04-22 15:06:37.910003951 +0200 +Index: openssl-1.0.2f/crypto/fips/Makefile +=================================================================== +--- openssl-1.0.2f.orig/crypto/fips/Makefile 2016-01-28 15:59:54.933269039 +0100 ++++ openssl-1.0.2f/crypto/fips/Makefile 2016-01-28 15:59:54.947269270 +0100 @@ -24,13 +24,15 @@ LIBSRC=fips_aes_selftest.c fips_des_self fips_rsa_selftest.c fips_sha_selftest.c fips.c fips_dsa_selftest.c fips_rand.c \ fips_rsa_x931g.c fips_post.c fips_drbg_ctr.c fips_drbg_hash.c fips_drbg_hmac.c \ @@ -1029,9 +1007,10 @@ LIBCRYPTO=-L.. -lcrypto -diff -up openssl-1.0.2a/crypto/rand/rand_lcl.h.fips-reqs openssl-1.0.2a/crypto/rand/rand_lcl.h ---- openssl-1.0.2a/crypto/rand/rand_lcl.h.fips-reqs 2015-04-22 15:06:37.599996574 +0200 -+++ openssl-1.0.2a/crypto/rand/rand_lcl.h 2015-04-22 15:06:37.910003951 +0200 +Index: openssl-1.0.2f/crypto/rand/rand_lcl.h +=================================================================== +--- openssl-1.0.2f.orig/crypto/rand/rand_lcl.h 2016-01-28 14:38:31.000000000 +0100 ++++ openssl-1.0.2f/crypto/rand/rand_lcl.h 2016-01-28 15:59:54.947269270 +0100 @@ -112,7 +112,7 @@ #ifndef HEADER_RAND_LCL_H # define HEADER_RAND_LCL_H @@ -1041,9 +1020,10 @@ # if !defined(USE_MD5_RAND) && !defined(USE_SHA1_RAND) && !defined(USE_MDC2_RAND) && !defined(USE_MD2_RAND) # if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) -diff -up openssl-1.0.2a/crypto/rand/rand_lib.c.fips-reqs openssl-1.0.2a/crypto/rand/rand_lib.c ---- openssl-1.0.2a/crypto/rand/rand_lib.c.fips-reqs 2015-03-19 14:19:00.000000000 +0100 -+++ openssl-1.0.2a/crypto/rand/rand_lib.c 2015-04-22 15:06:37.910003951 +0200 +Index: openssl-1.0.2f/crypto/rand/rand_lib.c +=================================================================== +--- openssl-1.0.2f.orig/crypto/rand/rand_lib.c 2016-01-28 14:38:31.000000000 +0100 ++++ openssl-1.0.2f/crypto/rand/rand_lib.c 2016-01-28 15:59:54.947269270 +0100 @@ -236,12 +236,22 @@ static int drbg_rand_add(DRBG_CTX *ctx, double entropy) { @@ -1067,9 +1047,10 @@ return 1; } -diff -up openssl-1.0.2a/crypto/rsa/rsa_gen.c.fips-reqs openssl-1.0.2a/crypto/rsa/rsa_gen.c ---- openssl-1.0.2a/crypto/rsa/rsa_gen.c.fips-reqs 2015-04-22 15:06:37.858002714 +0200 -+++ openssl-1.0.2a/crypto/rsa/rsa_gen.c 2015-04-22 15:06:37.910003951 +0200 +Index: openssl-1.0.2f/crypto/rsa/rsa_gen.c +=================================================================== +--- openssl-1.0.2f.orig/crypto/rsa/rsa_gen.c 2016-01-28 15:59:54.923268874 +0100 ++++ openssl-1.0.2f/crypto/rsa/rsa_gen.c 2016-01-28 15:59:54.947269270 +0100 @@ -1,5 +1,6 @@ /* crypto/rsa/rsa_gen.c */ /* Copyright (C) 1995-1998 Eric Young (e...@cryptsoft.com) @@ -1371,9 +1352,10 @@ ok = 1; err: if (ok == -1) { -diff -up openssl-1.0.2a/ssl/t1_enc.c.fips-reqs openssl-1.0.2a/ssl/t1_enc.c ---- openssl-1.0.2a/ssl/t1_enc.c.fips-reqs 2015-03-19 14:30:36.000000000 +0100 -+++ openssl-1.0.2a/ssl/t1_enc.c 2015-04-22 15:06:37.911003975 +0200 +Index: openssl-1.0.2f/ssl/t1_enc.c +=================================================================== +--- openssl-1.0.2f.orig/ssl/t1_enc.c 2016-01-28 14:56:08.000000000 +0100 ++++ openssl-1.0.2f/ssl/t1_enc.c 2016-01-28 15:59:54.947269270 +0100 @@ -292,6 +292,23 @@ static int tls1_PRF(long digest_mask, return ret; } ++++++ openssl-1.0.2e-fips.patch ++++++ ++++ 1381 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/openssl/openssl-1.0.2e-fips.patch ++++ and /work/SRC/openSUSE:Factory/.openssl.new/openssl-1.0.2e-fips.patch