Browse Source

Set G.LP_myrmd160 only once on LP_passphrase_init.

pass-iguana-arg
Artem Pikulin 7 years ago
parent
commit
ddab1eb959
  1. 11
      iguana/exchanges/LP_privkey.c

11
iguana/exchanges/LP_privkey.c

@ -352,6 +352,7 @@ bits256 LP_privkeycalc(void *ctx,uint8_t *pubkey33,bits256 *pubkeyp,struct iguan
{ {
//static uint32_t counter; //static uint32_t counter;
bits256 privkey,userpub,zero,userpass,checkkey,tmpkey; char str[65],str2[65],tmpstr[128]; cJSON *retjson; uint8_t tmptype,sig[128]; int32_t notarized,siglen; uint64_t nxtaddr; bits256 privkey,userpub,zero,userpass,checkkey,tmpkey; char str[65],str2[65],tmpstr[128]; cJSON *retjson; uint8_t tmptype,sig[128]; int32_t notarized,siglen; uint64_t nxtaddr;
uint8_t rmd160[20];
if ( (wifstr == 0 || wifstr[0] == 0) && LP_wifstr_valid(coin->symbol,passphrase) > 0 ) if ( (wifstr == 0 || wifstr[0] == 0) && LP_wifstr_valid(coin->symbol,passphrase) > 0 )
{ {
wifstr = passphrase; wifstr = passphrase;
@ -399,7 +400,7 @@ bits256 LP_privkeycalc(void *ctx,uint8_t *pubkey33,bits256 *pubkeyp,struct iguan
#ifndef NOTETOMIC #ifndef NOTETOMIC
if ( coin->etomic[0] != 0 ) if ( coin->etomic[0] != 0 )
{ {
uint8_t check64[64],checktype,checkrmd160[20],rmd160[20]; char checkaddr[64],checkaddr2[64]; uint8_t check64[64],checktype,checkrmd160[20]; char checkaddr[64],checkaddr2[64];
if ( LP_etomic_priv2pub(check64,privkey) == 0 ) if ( LP_etomic_priv2pub(check64,privkey) == 0 )
{ {
if ( memcmp(check64,coin->pubkey33+1,32) == 0 ) if ( memcmp(check64,coin->pubkey33+1,32) == 0 )
@ -434,8 +435,8 @@ bits256 LP_privkeycalc(void *ctx,uint8_t *pubkey33,bits256 *pubkeyp,struct iguan
coin->counter++; coin->counter++;
memcpy(G.LP_pubsecp,coin->pubkey33,33); memcpy(G.LP_pubsecp,coin->pubkey33,33);
bitcoin_priv2wif(coin->symbol,coin->wiftaddr,tmpstr,privkey,coin->wiftype); bitcoin_priv2wif(coin->symbol,coin->wiftaddr,tmpstr,privkey,coin->wiftype);
bitcoin_addr2rmd160(coin->symbol,coin->taddr,&tmptype,G.LP_myrmd160,coin->smartaddr); bitcoin_addr2rmd160(coin->symbol,coin->taddr,&tmptype,rmd160,coin->smartaddr);
LP_privkeyadd(privkey,G.LP_myrmd160); LP_privkeyadd(privkey,rmd160);
G.LP_privkey = privkey; G.LP_privkey = privkey;
if ( G.counter++ == 0 ) if ( G.counter++ == 0 )
{ {
@ -705,6 +706,7 @@ void LP_privkey_updates(void *ctx,int32_t pubsock,char *passphrase)
int32_t LP_passphrase_init(char *passphrase,char *gui,uint16_t netid,char *seednode) int32_t LP_passphrase_init(char *passphrase,char *gui,uint16_t netid,char *seednode)
{ {
static void *ctx; struct iguana_info *coin,*tmp; int32_t counter; static void *ctx; struct iguana_info *coin,*tmp; int32_t counter;
uint8_t pubkey33[100];
if ( ctx == 0 ) if ( ctx == 0 )
ctx = bitcoin_ctx(); ctx = bitcoin_ctx();
if ( G.LP_pendingswaps != 0 ) if ( G.LP_pendingswaps != 0 )
@ -739,8 +741,11 @@ int32_t LP_passphrase_init(char *passphrase,char *gui,uint16_t netid,char *seedn
memset(&G,0,sizeof(G)); memset(&G,0,sizeof(G));
G.netid = netid; G.netid = netid;
safecopy(G.seednode,seednode,sizeof(G.seednode)); safecopy(G.seednode,seednode,sizeof(G.seednode));
vcalc_sha256(0,G.LP_passhash.bytes,(uint8_t *)passphrase,(int32_t)strlen(passphrase)); vcalc_sha256(0,G.LP_passhash.bytes,(uint8_t *)passphrase,(int32_t)strlen(passphrase));
LP_privkey_updates(ctx,LP_mypubsock,passphrase); LP_privkey_updates(ctx,LP_mypubsock,passphrase);
bitcoin_pubkey33(ctx, pubkey33, G.LP_privkey);
calc_rmd160_sha256(G.LP_myrmd160, pubkey33, 33);
init_hexbytes_noT(G.LP_myrmd160str,G.LP_myrmd160,20); init_hexbytes_noT(G.LP_myrmd160str,G.LP_myrmd160,20);
G.LP_sessionid = (uint32_t)time(NULL); G.LP_sessionid = (uint32_t)time(NULL);
safecopy(G.gui,gui,sizeof(G.gui)); safecopy(G.gui,gui,sizeof(G.gui));

Loading…
Cancel
Save