X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=pubkeys.fl.pl;h=d163e3747ecadf61e9d8a763670403cbf624ecd2;hb=1c675403d0568bb08e0daf21a8a06e68a63227f4;hp=4c3009107701cb841dda38728e3cb58f965fe07b;hpb=77b5ed3f8b450d4889ffb205a098f8aa7821baaf;p=secnet.git diff --git a/pubkeys.fl.pl b/pubkeys.fl.pl index 4c30091..d163e37 100755 --- a/pubkeys.fl.pl +++ b/pubkeys.fl.pl @@ -228,8 +228,9 @@ static struct pubkeyset_context c[1]; !FINAL { if (c->building->nkeys >= MAX_SIG_KEYS) DOSKIP("too many public keys"); struct sigpubkey_if *pubkey; + closure_t *cl; bool_t ok=c->scheme->loadpub(c->scheme,c->data_buf, - &pubkey,c->log,c->loc); + &pubkey,&cl,c->log,c->loc); if (!ok) break; if (pubkey->sethash) { if (!c->defhash) { @@ -238,13 +239,12 @@ static struct pubkeyset_context c[1]; } pubkey->sethash(pubkey->st,c->defhash); } - memcpy(c->building->keys[c->building->nkeys].id.b, - c->grpid, - GRPIDSZ); + struct peer_pubkey *fill=&c->building->keys[c->building->nkeys]; + memcpy(fill->id.b,c->grpid,GRPIDSZ); assert(ALGIDSZ==1); /* otherwise need htons or htonl or something */ - c->building->keys[c->building->nkeys].id.b[GRPIDSZ]= - c->scheme->algid; - c->building->keys[c->building->nkeys++].pubkey=pubkey; + fill->id.b[GRPIDSZ]=c->scheme->algid; + fill->pubkey=pubkey; + c->building->nkeys++; !} !KEYWORD serial