dsa = FIPS_dsa_new();
if (!DSA_generate_parameters_ex(dsa, nmod,seed,0,&counter,&h,NULL))
+ {
do_print_errors();
+ exit(1);
+ }
pbn("P",dsa->p);
pbn("Q",dsa->q);
pbn("G",dsa->g);
printf("[mod = %d]\n\n",nmod);
dsa = FIPS_dsa_new();
if (!DSA_generate_parameters_ex(dsa, nmod,NULL,0,NULL,NULL,NULL))
+ {
do_print_errors();
+ exit(1);
+ }
pbn("P",dsa->p);
pbn("Q",dsa->q);
pbn("G",dsa->g);
while(n--)
{
if (!DSA_generate_key(dsa))
+ {
do_print_errors();
-
+ exit(1);
+ }
pbn("X",dsa->priv_key);
pbn("Y",dsa->pub_key);
FIPS_dsa_free(dsa);
dsa = FIPS_dsa_new();
if (!DSA_generate_parameters_ex(dsa, nmod,NULL,0,NULL,NULL,NULL))
+ {
do_print_errors();
+ exit(1);
+ }
pbn("P",dsa->p);
pbn("Q",dsa->q);
pbn("G",dsa->g);
pv("Msg",msg,n);
if (!DSA_generate_key(dsa))
+ {
do_print_errors();
+ exit(1);
+ }
pk.type = EVP_PKEY_DSA;
pk.pkey.dsa = dsa;
pbn("Y",dsa->pub_key);