Re: Re: [patch] cgd
"Roland C. Dowdeswell" <[email protected]> Thu, 2 Dec 2010 05:07:10 +0000
| Newsgroups | gmane.os.netbsd.devel.crypto |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Dec 02, 2010 at 04:23:57AM +0000, Taylor R Campbell wrote: > > Date: Wed, 1 Dec 2010 23:57:45 +0000 > From: "Roland C. Dowdeswell" <[email protected]> > > I'm reviewing the patch and it looks mostly good. I've checked in > a couple of the bits already and will check the rest in with only > cosmetic modifications (such as breaking the patch into separate > commits implementing single changes) over the course of the next > few hours. > > Great, thanks! So, the part of your patch: - (void)params_filldefaults(p); - (void)keygen_filldefaults(p->keygen, p->keylen); - p->key = getkey("new file", p->keygen, p->keylen); - kg = keygen_generate(KEYGEN_STOREDKEY); - kg->kg_key = bits_xor(p->key, oldp->key); - keygen_addlist(&p->keygen, kg); + (void)params_filldefaults(p); + if (p->keygen && !p->keygen->next && + p->keygen->kg_method == KEYGEN_STOREDKEY) + p->keygen->kg_key = bits_dup(oldp->key); + else + (void)keygen_filldefaults(p->keygen, p->keylen); if (!params_verify(p)) { warnx("can't generate new parameters file"); return -1; } + p->key = getkey("new file", p->keygen, p->keylen); + + /* put in a stored key only if necessary to preserve the key */ + if (!bits_match(p->key, oldp->key)) { + kg = keygen_generate(KEYGEN_STOREDKEY); + kg->kg_key = bits_xor(p->key, oldp->key); + keygen_addlist(&p->keygen, kg); + } Your use case here is to generate a new params file which has in it only a stored key? -- Roland Dowdeswell http://Imrryr.ORG/~elric/