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.

Reply via email to