Module Name: src Committed By: snj Date: Mon Feb 6 07:27:01 UTC 2017
Modified Files: src/crypto/external/bsd/openssl/dist/crypto/ecdsa [netbsd-7-0]: ecs_ossl.c src/crypto/external/bsd/openssl/dist/crypto/evp [netbsd-7-0]: e_rc4_hmac_md5.c Log Message: Apply patch (requested by spz in ticket #1352): Fix CVE-2016-7056 and CVE-2017-3731. To generate a diff of this commit: cvs rdiff -u -r1.1.1.4.12.1 -r1.1.1.4.12.1.2.1 \ src/crypto/external/bsd/openssl/dist/crypto/ecdsa/ecs_ossl.c cvs rdiff -u -r1.1.1.1.16.2 -r1.1.1.1.16.2.2.1 \ src/crypto/external/bsd/openssl/dist/crypto/evp/e_rc4_hmac_md5.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/crypto/external/bsd/openssl/dist/crypto/ecdsa/ecs_ossl.c diff -u src/crypto/external/bsd/openssl/dist/crypto/ecdsa/ecs_ossl.c:1.1.1.4.12.1 src/crypto/external/bsd/openssl/dist/crypto/ecdsa/ecs_ossl.c:1.1.1.4.12.1.2.1 --- src/crypto/external/bsd/openssl/dist/crypto/ecdsa/ecs_ossl.c:1.1.1.4.12.1 Wed Apr 29 04:53:43 2015 +++ src/crypto/external/bsd/openssl/dist/crypto/ecdsa/ecs_ossl.c Mon Feb 6 07:27:01 2017 @@ -147,6 +147,8 @@ static int ecdsa_sign_setup(EC_KEY *ecke if (!BN_add(k, k, order)) goto err; + BN_set_flags(k, BN_FLG_CONSTTIME); + /* compute r the x-coordinate of generator * k */ if (!EC_POINT_mul(group, tmp_point, k, NULL, NULL, ctx)) { ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_EC_LIB); Index: src/crypto/external/bsd/openssl/dist/crypto/evp/e_rc4_hmac_md5.c diff -u src/crypto/external/bsd/openssl/dist/crypto/evp/e_rc4_hmac_md5.c:1.1.1.1.16.2 src/crypto/external/bsd/openssl/dist/crypto/evp/e_rc4_hmac_md5.c:1.1.1.1.16.2.2.1 --- src/crypto/external/bsd/openssl/dist/crypto/evp/e_rc4_hmac_md5.c:1.1.1.1.16.2 Sat Jul 11 17:33:51 2015 +++ src/crypto/external/bsd/openssl/dist/crypto/evp/e_rc4_hmac_md5.c Mon Feb 6 07:27:01 2017 @@ -267,6 +267,8 @@ static int rc4_hmac_md5_ctrl(EVP_CIPHER_ len = p[arg - 2] << 8 | p[arg - 1]; if (!ctx->encrypt) { + if (len < MD5_DIGEST_LENGTH) + return -1; len -= MD5_DIGEST_LENGTH; p[arg - 2] = len >> 8; p[arg - 1] = len;