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 [email protected] <javascript:>
> > <mailto:[email protected] <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 [email protected].
For more options, visit https://groups.google.com/d/optout.