summaryrefslogtreecommitdiff
path: root/security/nss/lib/freebl/ecl/ecp_jm.c
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-02-06 11:46:26 +0100
committerwolfbeast <mcwerewolf@gmail.com>2018-02-06 11:46:26 +0100
commit0d5461ff40eef2b711a720674f6b48f206df73e2 (patch)
treec6033924a0de9be1ab140596e305898c651bf57e /security/nss/lib/freebl/ecl/ecp_jm.c
parentef71c3358c6ac8463740d07ba82a9f11f869da8a (diff)
downloaduxp-0d5461ff40eef2b711a720674f6b48f206df73e2.tar.gz
Update NSS to 3.32.1-RTM
Diffstat (limited to 'security/nss/lib/freebl/ecl/ecp_jm.c')
-rw-r--r--security/nss/lib/freebl/ecl/ecp_jm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/security/nss/lib/freebl/ecl/ecp_jm.c b/security/nss/lib/freebl/ecl/ecp_jm.c
index a1106cea83..bd13fa0508 100644
--- a/security/nss/lib/freebl/ecl/ecp_jm.c
+++ b/security/nss/lib/freebl/ecl/ecp_jm.c
@@ -127,6 +127,17 @@ ec_GFp_pt_add_jm_aff(const mp_int *px, const mp_int *py, const mp_int *pz,
MP_CHECKOK(group->meth->field_mul(A, qx, A, group->meth));
MP_CHECKOK(group->meth->field_mul(B, qy, B, group->meth));
+ /* Check P == Q */
+ if (mp_cmp(A, px) == 0) {
+ if (mp_cmp(B, py) == 0) {
+ /* If Px == Qx && Py == Qy, double P. */
+ return ec_GFp_pt_dbl_jm(px, py, pz, paz4, rx, ry, rz, raz4,
+ scratch, group);
+ }
+ /* If Px == Qx && Py != Qy, return point at infinity. */
+ return ec_GFp_pt_set_inf_jac(rx, ry, rz);
+ }
+
/* C = A - px, D = B - py */
MP_CHECKOK(group->meth->field_sub(A, px, C, group->meth));
MP_CHECKOK(group->meth->field_sub(B, py, D, group->meth));