/** * Sign the transaction hash data using Secp256k1 algorithm. * * @param signature the signature * @throws Exception the exception */ public void sign(Signature signature) throws Exception { // calculate hash this.calculateHash(); byte[] sign = signature.sign(this.hash); this.alg = signature.algorithm(); this.sign = sign; } }
@Test public void calculateHash() throws Exception { String encodedText = "CiCCVuSptT1oavBbf2UJfh+FHaOb15rhXgvMnyMPrpaLORIaGVfKCoAu9e0830glBZkJcmNoRXXOUbwvcz8aGhlXygqALvXtPN9IJQWZCXJjaEV1zlG8L3M/IhAAAAAAAAAAAAAAAAAAAAAKKAEwxbrg1gU6LAoGZGVwbG95EiJ7IlNvdXJjZVR5cGUiOiIxMSIsIlNvdXJjZSI6IjExMSJ9QGRKEAAAAAAAAAAAAAAAAAAATiBSEAAAAAAAAAAAAAAAAAAPQkBYAWJB5ZgDuJwK+EPpThEY0sAHc19immxH/LJCyXzj3OeaDUV7JGil7aIlcRTVsWAd32D5T12q9INlNVCT9m2lEV6/YgE="; byte[] result = ByteUtils.Base64ToBytes(encodedText); Transaction transaction = Transaction.FromProto(result); byte[] originHash = transaction.getHash(); byte[] calHash = transaction.calculateHash(); Assert.assertTrue(ByteUtils.Equal(originHash, calHash)); }