Loading src/crypto/rsa.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -1253,13 +1253,15 @@ namespace netplus { const limb_t* __restrict__ bp = b.data.get(); const limb_t* __restrict__ mp = mod.data.get(); const size_t au = a.used; const size_t bu = b.used; for (size_t i = 0; i < n; ++i) { // Step 1: T += a[i] * b const dlimb_t ai = (i < au) ? (dlimb_t)ap[i] : 0; dlimb_t carry = 0; for (size_t j = 0; j < n; ++j) { dlimb_t cur = (dlimb_t)T[j] + ai * (dlimb_t)bp[j] + carry; const dlimb_t bj = (j < bu) ? (dlimb_t)bp[j] : 0; dlimb_t cur = (dlimb_t)T[j] + ai * bj + carry; T[j] = (limb_t)cur; carry = cur >> LIMB_BITS; } Loading Loading
src/crypto/rsa.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -1253,13 +1253,15 @@ namespace netplus { const limb_t* __restrict__ bp = b.data.get(); const limb_t* __restrict__ mp = mod.data.get(); const size_t au = a.used; const size_t bu = b.used; for (size_t i = 0; i < n; ++i) { // Step 1: T += a[i] * b const dlimb_t ai = (i < au) ? (dlimb_t)ap[i] : 0; dlimb_t carry = 0; for (size_t j = 0; j < n; ++j) { dlimb_t cur = (dlimb_t)T[j] + ai * (dlimb_t)bp[j] + carry; const dlimb_t bj = (j < bu) ? (dlimb_t)bp[j] : 0; dlimb_t cur = (dlimb_t)T[j] + ai * bj + carry; T[j] = (limb_t)cur; carry = cur >> LIMB_BITS; } Loading