From 16d4a60b8641ac0612a3e7f2bbbaad39ab88c974 Mon Sep 17 00:00:00 2001
From: inoguchi <>
Date: Thu, 20 Jan 2022 11:12:14 +0000
Subject: Fix check for BN_mod_inverse_ct return value

ok jsing@ millert@ tb@
---
 src/lib/libcrypto/ec/ecp_smpl.c    | 6 +++---
 src/lib/libcrypto/ecdsa/ecs_ossl.c | 6 +++---
 src/lib/libcrypto/rsa/rsa_chk.c    | 4 ++--
 src/lib/libcrypto/rsa/rsa_gen.c    | 6 +++---
 src/lib/libcrypto/sm2/sm2_sign.c   | 4 ++--
 5 files changed, 13 insertions(+), 13 deletions(-)

(limited to 'src/lib')

diff --git a/src/lib/libcrypto/ec/ecp_smpl.c b/src/lib/libcrypto/ec/ecp_smpl.c
index 1d0b1d6106..6f5280bbc9 100644
--- a/src/lib/libcrypto/ec/ecp_smpl.c
+++ b/src/lib/libcrypto/ec/ecp_smpl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ecp_smpl.c,v 1.33 2021/09/08 17:29:21 tb Exp $ */
+/* $OpenBSD: ecp_smpl.c,v 1.34 2022/01/20 11:02:44 inoguchi Exp $ */
 /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de>
  * for the OpenSSL project.
  * Includes code written by Bodo Moeller for the OpenSSL project.
@@ -586,7 +586,7 @@ ec_GFp_simple_point_get_affine_coordinates(const EC_GROUP * group, const EC_POIN
 			}
 		}
 	} else {
-		if (!BN_mod_inverse_ct(Z_1, Z_, &group->field, ctx)) {
+		if (BN_mod_inverse_ct(Z_1, Z_, &group->field, ctx) == NULL) {
 			ECerror(ERR_R_BN_LIB);
 			goto err;
 		}
@@ -1316,7 +1316,7 @@ ec_GFp_simple_points_make_affine(const EC_GROUP * group, size_t num, EC_POINT *
 
 	/* invert heap[1] */
 	if (!BN_is_zero(heap[1])) {
-		if (!BN_mod_inverse_ct(heap[1], heap[1], &group->field, ctx)) {
+		if (BN_mod_inverse_ct(heap[1], heap[1], &group->field, ctx) == NULL) {
 			ECerror(ERR_R_BN_LIB);
 			goto err;
 		}
diff --git a/src/lib/libcrypto/ecdsa/ecs_ossl.c b/src/lib/libcrypto/ecdsa/ecs_ossl.c
index e7e7a52665..2429e36b59 100644
--- a/src/lib/libcrypto/ecdsa/ecs_ossl.c
+++ b/src/lib/libcrypto/ecdsa/ecs_ossl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ecs_ossl.c,v 1.22 2021/04/20 17:23:37 tb Exp $ */
+/* $OpenBSD: ecs_ossl.c,v 1.23 2022/01/20 11:03:48 inoguchi Exp $ */
 /*
  * Written by Nils Larsch for the OpenSSL project
  */
@@ -216,7 +216,7 @@ ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
 		}
 	} while (BN_is_zero(r));
 
-	if (!BN_mod_inverse_ct(k, k, order, ctx)) {
+	if (BN_mod_inverse_ct(k, k, order, ctx) == NULL) {
 		ECDSAerror(ERR_R_BN_LIB);
 		goto err;
 	}
@@ -487,7 +487,7 @@ ecdsa_do_verify(const unsigned char *dgst, int dgst_len, const ECDSA_SIG *sig,
 	if (!ecdsa_prepare_digest(dgst, dgst_len, order, m))
 		goto err;
 
-	if (!BN_mod_inverse_ct(u2, sig->s, order, ctx)) {	/* w = inv(s) */
+	if (BN_mod_inverse_ct(u2, sig->s, order, ctx) == NULL) { /* w = inv(s) */
 		ECDSAerror(ERR_R_BN_LIB);
 		goto err;
 	}
diff --git a/src/lib/libcrypto/rsa/rsa_chk.c b/src/lib/libcrypto/rsa/rsa_chk.c
index 807eae084e..ac9dbf7a22 100644
--- a/src/lib/libcrypto/rsa/rsa_chk.c
+++ b/src/lib/libcrypto/rsa/rsa_chk.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rsa_chk.c,v 1.15 2022/01/10 00:03:02 tb Exp $ */
+/* $OpenBSD: rsa_chk.c,v 1.16 2022/01/20 11:08:12 inoguchi Exp $ */
 /* ====================================================================
  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
  *
@@ -199,7 +199,7 @@ RSA_check_key(const RSA *key)
 		}
 
 		/* iqmp = q^-1 mod p? */
-		if (!BN_mod_inverse_ct(i, key->q, key->p, ctx)) {
+		if (BN_mod_inverse_ct(i, key->q, key->p, ctx) == NULL) {
 			ret = -1;
 			goto err;
 		}
diff --git a/src/lib/libcrypto/rsa/rsa_gen.c b/src/lib/libcrypto/rsa/rsa_gen.c
index 3a0d8837b4..5f062a7a24 100644
--- a/src/lib/libcrypto/rsa/rsa_gen.c
+++ b/src/lib/libcrypto/rsa/rsa_gen.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rsa_gen.c,v 1.24 2022/01/07 09:55:32 tb Exp $ */
+/* $OpenBSD: rsa_gen.c,v 1.25 2022/01/20 11:11:17 inoguchi Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -198,7 +198,7 @@ rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb)
 	BN_init(&pr0);
 	BN_with_flags(&pr0, r0, BN_FLG_CONSTTIME);
 
-	if (!BN_mod_inverse_ct(rsa->d, rsa->e, &pr0, ctx)) /* d */
+	if (BN_mod_inverse_ct(rsa->d, rsa->e, &pr0, ctx) == NULL) /* d */
 		goto err;
 
 	/* set up d for correct BN_FLG_CONSTTIME flag */
@@ -216,7 +216,7 @@ rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb)
 	/* calculate inverse of q mod p */
 	BN_init(&p);
 	BN_with_flags(&p, rsa->p, BN_FLG_CONSTTIME);
-	if (!BN_mod_inverse_ct(rsa->iqmp, rsa->q, &p, ctx))
+	if (BN_mod_inverse_ct(rsa->iqmp, rsa->q, &p, ctx) == NULL)
 		goto err;
 
 	ok = 1;
diff --git a/src/lib/libcrypto/sm2/sm2_sign.c b/src/lib/libcrypto/sm2/sm2_sign.c
index d306658a48..b35de841b1 100644
--- a/src/lib/libcrypto/sm2/sm2_sign.c
+++ b/src/lib/libcrypto/sm2/sm2_sign.c
@@ -1,4 +1,4 @@
-/*	$OpenBSD: sm2_sign.c,v 1.1.1.1 2021/08/18 16:04:32 tb Exp $ */
+/*	$OpenBSD: sm2_sign.c,v 1.2 2022/01/20 11:12:14 inoguchi Exp $ */
 /*
  * Copyright (c) 2017, 2019 Ribose Inc
  *
@@ -194,7 +194,7 @@ sm2_sig_gen(const EC_KEY *key, const BIGNUM *e)
 			goto err;
 		}
 
-		if (!BN_mod_inverse_ct(s, s, order, ctx)) {
+		if (BN_mod_inverse_ct(s, s, order, ctx) == NULL) {
 			SM2error(ERR_R_BN_LIB);
 			goto err;
 		}
-- 
cgit v1.2.3-55-g6feb