fix DH_generate_parameters for general 'generator'
[openssl.git] / crypto / dh / dhtest.c
index 0176436..34894ce 100644 (file)
@@ -117,6 +117,16 @@ int main(int argc, char *argv[])
        a=DH_generate_parameters(64,DH_GENERATOR_5,cb,out);
        if (a == NULL) goto err;
 
+       if (!DH_check(a, &i)) goto err;
+       if (i & DH_CHECK_P_NOT_PRIME)
+               BIO_puts(out, "p value is not prime\n");
+       if (i & DH_CHECK_P_NOT_SAFE_PRIME)
+               BIO_puts(out, "p value is not a safe prime\n");
+       if (i & DH_UNABLE_TO_CHECK_GENERATOR)
+               BIO_puts(out, "unable to check the generator value\n");
+       if (i & DH_NOT_SUITABLE_GENERATOR)
+               BIO_puts(out, "the g value is not a generator\n");
+
        BIO_puts(out,"\np    =");
        BN_print(out,a->p);
        BIO_puts(out,"\ng    =");
@@ -175,6 +185,8 @@ int main(int argc, char *argv[])
        else
                ret=0;
 err:
+       ERR_print_errors_fp(stderr);
+
        if (abuf != NULL) OPENSSL_free(abuf);
        if (bbuf != NULL) OPENSSL_free(bbuf);
        if(b != NULL) DH_free(b);