diff --git a/tss-client-android/src/main/java/com/web3auth/tss_client_android/client/TSSClient.java b/tss-client-android/src/main/java/com/web3auth/tss_client_android/client/TSSClient.java index e44975d..a2fcc43 100644 --- a/tss-client-android/src/main/java/com/web3auth/tss_client_android/client/TSSClient.java +++ b/tss-client-android/src/main/java/com/web3auth/tss_client_android/client/TSSClient.java @@ -309,19 +309,19 @@ public Triple sign(String message, boolean hashOnl String sighex = ByteUtils.convertByteToHexadecimal(decoded); BigInteger r = new BigInteger(sighex.substring(0, 64), 16); BigInteger s = new BigInteger(sighex.substring(64), 16); - byte recoveryParam = (byte) (decoded_r[decoded_r.length - 1] % 2); + int recoveryParam = Math.floorMod(decoded_r[decoded_r.length - 1], 2); // boolean _sLessThanHalf = true; // if (_sLessThanHalf) { BigInteger halfOfSecp256k1n = Secp256k1.HALF_CURVE_ORDER; if (s.compareTo(halfOfSecp256k1n) > 0) { s = Secp256k1.CURVE.getN().subtract(s); - recoveryParam = (byte) ((recoveryParam + 1) % 2); + recoveryParam = Math.floorMod((recoveryParam+1),2); } // } consumed = true; - return new Triple<>(s, r, recoveryParam); + return new Triple<>(s, r, (byte) recoveryParam); } catch (Exception | DKLSError e) { throw new TSSClientError(e.getMessage()); }