Code example for BigInteger

Methods: add, mod, multiply

0
            // mQ = ((input mod q) ^ dQ)) mod q 
            mQ = (input.remainder(q)).modPow(dQ, q);
 
            // h = qInv * (mP - mQ) mod p 
            h = mP.subtract(mQ);
            h = h.multiply(qInv);
            h = h.mod(p); // mod (in Java) returns the positive residual
 
            // m = h * q + mQ 
            m = h.multiply(q);
            m = m.add(mQ);
 
            return m;
        } else { 
            return input.modPow(key.getExponent(), key.getModulus());
        } 
    } 
}