Handle partial test where H is absent: needed to check g generation.
This commit is contained in:
parent
df36faaaa2
commit
a2b6dc97f6
1 changed files with 23 additions and 1 deletions
|
@ -116,6 +116,8 @@ int dsa_builtin_paramgen2(DSA *ret, size_t L, size_t N,
|
|||
int idx, unsigned char *seed_out,
|
||||
int *counter_ret, unsigned long *h_ret, BN_GENCB *cb);
|
||||
|
||||
int dsa_paramgen_check_g(DSA *dsa);
|
||||
|
||||
static void pqg(FILE *in, FILE *out)
|
||||
{
|
||||
char buf[1024];
|
||||
|
@ -314,7 +316,27 @@ static void pqgver(FILE *in, FILE *out)
|
|||
else if(!strcmp(keyword,"c"))
|
||||
counter = atoi(buf+4);
|
||||
partial:
|
||||
if(!strcmp(keyword,"H") || part_test)
|
||||
if (part_test && idx < 0 && h == 0 && g)
|
||||
{
|
||||
dsa = FIPS_dsa_new();
|
||||
dsa->p = BN_dup(p);
|
||||
dsa->q = BN_dup(q);
|
||||
dsa->g = BN_dup(g);
|
||||
if (dsa_paramgen_check_g(dsa))
|
||||
fprintf(out, "Result = P" RESP_EOL);
|
||||
else
|
||||
fprintf(out, "Result = F" RESP_EOL);
|
||||
BN_free(p);
|
||||
BN_free(q);
|
||||
BN_free(g);
|
||||
p = NULL;
|
||||
q = NULL;
|
||||
g = NULL;
|
||||
FIPS_dsa_free(dsa);
|
||||
dsa = NULL;
|
||||
part_test = 0;
|
||||
}
|
||||
else if(!strcmp(keyword,"H") || part_test)
|
||||
{
|
||||
if (!part_test)
|
||||
h = atoi(value);
|
||||
|
|
Loading…
Reference in a new issue