jl777 7 years ago
parent
commit
0f5b828564
  1. 38
      iguana/exchanges/LP_signatures.c

38
iguana/exchanges/LP_signatures.c

@ -350,31 +350,31 @@ int32_t _LP_pubkey_sigcheck(uint8_t *sig,int32_t siglen,bits256 pub,uint8_t *rmd
int32_t LP_pubkey_sigadd(cJSON *item,bits256 priv,bits256 pub,uint8_t *rmd160,uint8_t *pubsecp) int32_t LP_pubkey_sigadd(cJSON *item,bits256 priv,bits256 pub,uint8_t *rmd160,uint8_t *pubsecp)
{ {
static void *ctx; static void *ctx;
uint8_t sig[128],pub33[33]; int32_t i,siglen=0; bits256 sighash; char sigstr[256]; uint8_t sig[128],pub33[33]; int32_t i,j,siglen=0; bits256 sighash; char sigstr[256];
sighash = LP_pubkey_sighash(pub,rmd160,pubsecp); sighash = LP_pubkey_sighash(pub,rmd160,pubsecp);
if ( ctx == 0 ) if ( ctx == 0 )
ctx = bitcoin_ctx(); ctx = bitcoin_ctx();
if ( (siglen= bitcoin_sign(ctx,"sigadd",sig,sighash,priv,1)) > 0 && siglen == 65 ) for (j=0; j<100; j++)
{ {
init_hexbytes_noT(sigstr,sig,siglen); if ( (siglen= bitcoin_sign(ctx,"sigadd",sig,sighash,priv,1)) > 0 && siglen == 65 )
jaddstr(item,"sig",sigstr);
memset(pub33,0,33);
printf("sigadd check: %d %s siglen.%d\n",bitcoin_recoververify(ctx,"test",sig,sighash,pub33,0),sigstr,siglen);
if ( memcmp(pub33,pubsecp,33) != 0 )
{ {
for (i=0; i<33; i++) init_hexbytes_noT(sigstr,sig,siglen);
printf("%02x",pubsecp[i]); jaddstr(item,"sig",sigstr);
printf(" pubsecp -> "); memset(pub33,0,33);
for (i=0; i<33; i++) //printf("sigadd check: %d %s siglen.%d\n",bitcoin_recoververify(ctx,"test",sig,sighash,pub33,0),sigstr,siglen);
printf("%02x",pub33[i]); if ( memcmp(pub33,pubsecp,33) == 0 )
printf(" recovered, "); return(siglen);
bitcoin_pubkey33(ctx,pub33,priv); {
for (i=0; i<33; i++) for (i=0; i<33; i++)
printf("%02x",pub33[i]); printf("%02x",pubsecp[i]);
printf(" mismatched recovered pubkey\n"); printf(" pubsecp -> ");
for (i=0; i<33; i++)
printf("%02x",pub33[i]);
printf(" mismatched recovered pubkey.%d of %d\n",i,100);
}
} }
return(siglen); }
} else return(0); return(0);
} }
int32_t LP_pubkey_sigcheck(struct LP_pubkeyinfo *pubp,cJSON *item) int32_t LP_pubkey_sigcheck(struct LP_pubkeyinfo *pubp,cJSON *item)

Loading…
Cancel
Save