Just to follow up, I *solved* my problem here: https://github.com/ghadishayban/sawtooth-core/blob/e51348a8020525ab160d27d81a8bfd312cb73803/sdk/java/src/main/java/sawtooth/sdk/client/sawtooth/sdk/client/Signing.java#L28-L43
On Thursday, June 29, 2017 at 3:02:53 AM UTC-4, Andreas Schildbach wrote: > > 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+u...@googlegroups.com <javascript:> > > <mailto:bitcoinj+u...@googlegroups.com <javascript:>>. > > 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.