Open sujiulong opened 5 years ago
65
on my side for this particular test.
Thank you very much for your reply. My code is too old. This is my local code. public byte[] toByteArray() { final byte fixedV = this.v >= 27 ? (byte) (this.v - 27) : this.v;
return ByteUtil.merge(
ByteUtil.bigIntegerToBytes(this.r),
ByteUtil.bigIntegerToBytes(this.s),
new byte[]{fixedV});
}
This is latest code. public byte[] toByteArray() { final byte fixedV = this.v >= 27 ? (byte) (this.v - 27) : this.v;
return ByteUtil.merge(
ByteUtil.bigIntegerToBytes(this.r, 32),
ByteUtil.bigIntegerToBytes(this.s, 32),
new byte[]{fixedV});
}
@test public void verifyTest() { String pri = "87385e10d018f971f66cf2c065663d4aa427286f259f85bb8b2438130f4f1ee7"; String sourceHash = "7d50e029128286afba20cb62cf1b874d76a527a896f3d39167289a9b0446c518"; ECKey ecKey = ECKey.fromPrivate(Hex.decode(pri)); byte[] sign = ecKey.sign(Hex.decode(sourceHash)).toByteArray(); System.out.println(sign.length); }
The result is always 64 not 65 bytes.