ECDSA signatures are expected to be different, because of the semi-random k-factor. Have you cross-checked your sigs for validity, so a sig produced with Intels library checked by bitcoinj and the other way round?
On 06/29/2017 02:03 AM, Ghadi Shayban wrote: > Thank you for the bitcoinj library, it's great! > > I have been trying to mimic some stuff from Intel Sawtooth (another > blockchain) in Java...I can successfully > get the public/private EC keys to be byte-for-byte identical with their > library, but I am > struggling to produce an ECDSA signature that is identical to theirs > when using the bitcoinj library. > > Their message signatures are 64 bytes hex encoded (so 128 bytes total), > and it looks like the 64 bytes are 32 bytes R field then 32 bytes S > field. Can anyone help me *generate a "compact signature*"? (If that is > what this is...) > > Here is an example of theirs (python): > >>>> privatekey > '5K9gBxYNbtygky5sntvXqaMLj36q4W9ibkPG1WzquBSvXpyyjo8' >>>> sawtooth_signing.sign('asdf', privatekey) > '0168026d34d6c65fd2002debec84cde2a2f90ee8c7329e28a2f5055861abb2757e0b8d1b1308c3d5f6741843e8244032617767495a52b2db26938777ae68bd02' > # 64 bytes hex > > *Using bitcoinj* the w/ same private key to sign the same exact message: > (sign pk "asdf") > => > "eecc7b60410b2a33a3c31482c0db80f56827923c7bd116805a9f29ebe93caa4d4076efab21a763eb13054dd155d888977ed804a1269f1ba001533576a5484a96" > # 64 bytes hex > > The broken code I'm using (clojure) > > (defn sign > [^ECKey pk data] > (let [h (Sha256Hash/twiceOf data) > sig (.sign pk h nil) > arr (byte-array 64)] > (System/arraycopy (Utils/bigIntegerToBytes (.-r sig) 32) 0 arr 0 32) > (System/arraycopy (Utils/bigIntegerToBytes (.-s sig) 32) 0 arr 32 32) > (.encode Utils/HEX arr)) > > Intel's documentation on transaction signing for reference > https://intelledger.github.io/_autogen/txn_submit_tutorial.html#sign-the-header > > -- > You received this message because you are subscribed to the Google > Groups "bitcoinj" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to bitcoinj+unsubscr...@googlegroups.com > <mailto:bitcoinj+unsubscr...@googlegroups.com>. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "bitcoinj" group. To unsubscribe from this group and stop receiving emails from it, send an email to bitcoinj+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.