From e0a9de9a1bba080ed75b252d35f8a7c49f3d0808 Mon Sep 17 00:00:00 2001 From: ZZMarquis Date: Tue, 10 Jul 2018 18:25:53 +0800 Subject: [PATCH] =?UTF-8?q?[bugfix]=20EC=5FKEY=5Fset=5FECCrefPublicKey?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2=E8=BF=87=E7=A8=8B=E4=B8=AD=E6=9C=AA=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=AD=97=E8=8A=82=E6=95=B0=E7=BB=84=E5=81=8F=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EC_KEY_set_ECCrefPublicKey转换过程中未处理字节数组偏移,转换出来的大数有误 --- crypto/gmapi/gmapi_sdf_ec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crypto/gmapi/gmapi_sdf_ec.c b/crypto/gmapi/gmapi_sdf_ec.c index 061de1b0..e910ff3a 100644 --- a/crypto/gmapi/gmapi_sdf_ec.c +++ b/crypto/gmapi/gmapi_sdf_ec.c @@ -119,11 +119,11 @@ int EC_KEY_set_ECCrefPublicKey(EC_KEY *ec_key, const ECCrefPublicKey *ref) /* ECCrefPublicKey ==> EC_KEY */ nbytes = (ref->bits + 7)/8; - if (!(x = BN_bin2bn(ref->x, nbytes, NULL))) { + if (!(x = BN_bin2bn(ref->x + ECCref_MAX_LEN - nbytes, nbytes, NULL))) { GMAPIerr(GMAPI_F_EC_KEY_SET_ECCREFPUBLICKEY, ERR_R_BN_LIB); goto end; } - if (!(y = BN_bin2bn(ref->y, nbytes, NULL))) { + if (!(y = BN_bin2bn(ref->y + ECCref_MAX_LEN - nbytes, nbytes, NULL))) { GMAPIerr(GMAPI_F_EC_KEY_SET_ECCREFPUBLICKEY, ERR_R_BN_LIB); goto end; }