require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&OPENSSL_DSA_H)) {
    eval 'sub OPENSSL_DSA_H () {1;}' unless defined(&OPENSSL_DSA_H);
    require 'openssl/macros.ph';
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub HEADER_DSA_H () {1;}' unless defined(&HEADER_DSA_H);
    }
    require 'openssl/opensslconf.ph';
    require 'openssl/types.ph';
    if(defined(&__cplusplus)) {
    }
    require 'stdlib.ph';
    eval 'sub EVP_PKEY_CTRL_DSA_PARAMGEN_BITS () {( &EVP_PKEY_ALG_CTRL + 1);}' unless defined(&EVP_PKEY_CTRL_DSA_PARAMGEN_BITS);
    eval 'sub EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS () {( &EVP_PKEY_ALG_CTRL + 2);}' unless defined(&EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS);
    eval 'sub EVP_PKEY_CTRL_DSA_PARAMGEN_MD () {( &EVP_PKEY_ALG_CTRL + 3);}' unless defined(&EVP_PKEY_CTRL_DSA_PARAMGEN_MD);
    unless(defined(&OPENSSL_NO_DSA)) {
	require 'openssl/e_os2.ph';
	require 'openssl/asn1.ph';
	require 'openssl/bio.ph';
	require 'openssl/crypto.ph';
	require 'openssl/bn.ph';
	unless(defined(&OPENSSL_NO_DEPRECATED_1_1_0)) {
	    require 'openssl/dh.ph';
	}
	require 'openssl/dsaerr.ph';
	unless(defined(&OPENSSL_DSA_MAX_MODULUS_BITS)) {
	    eval 'sub OPENSSL_DSA_MAX_MODULUS_BITS () {10000;}' unless defined(&OPENSSL_DSA_MAX_MODULUS_BITS);
	}
	eval 'sub OPENSSL_DSA_FIPS_MIN_MODULUS_BITS () {1024;}' unless defined(&OPENSSL_DSA_FIPS_MIN_MODULUS_BITS);
	unless(defined(&OPENSSL_NO_DEPRECATED_1_1_0)) {
	    eval 'sub DSA_FLAG_NO_EXP_CONSTTIME () {0x;}' unless defined(&DSA_FLAG_NO_EXP_CONSTTIME);
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    eval 'sub DSA_FLAG_CACHE_MONT_P () {0x1;}' unless defined(&DSA_FLAG_CACHE_MONT_P);
	    eval 'sub DSA_FLAG_FIPS_METHOD () {0x400;}' unless defined(&DSA_FLAG_FIPS_METHOD);
	    eval 'sub DSA_FLAG_NON_FIPS_ALLOW () {0x400;}' unless defined(&DSA_FLAG_NON_FIPS_ALLOW);
	    eval 'sub DSA_FLAG_FIPS_CHECKED () {0x800;}' unless defined(&DSA_FLAG_FIPS_CHECKED);
	    eval 'sub d2i_DSAparams_fp {
	        my($fp, $x) = @_;
    		eval q(( &DSA *) &ASN1_d2i_fp(( &void *(*)( &void)) &DSA_new, ( &d2i_of_void *) &d2i_DSAparams, ($fp), ( &void **)($x)));
	    }' unless defined(&d2i_DSAparams_fp);
	    eval 'sub i2d_DSAparams_fp {
	        my($fp, $x) = @_;
    		eval q( &ASN1_i2d_fp( &i2d_DSAparams, , ($x)));
	    }' unless defined(&i2d_DSAparams_fp);
	    eval 'sub d2i_DSAparams_bio {
	        my($bp, $x) = @_;
    		eval q( &ASN1_d2i_bio_of( &DSA,  &DSA_new,  &d2i_DSAparams, $bp, $x));
	    }' unless defined(&d2i_DSAparams_bio);
	    eval 'sub i2d_DSAparams_bio {
	        my($bp, $x) = @_;
    		eval q( &ASN1_i2d_bio_of( &DSA,  &i2d_DSAparams, $bp, $x));
	    }' unless defined(&i2d_DSAparams_bio);
	    eval 'sub DSA_get_ex_new_index {
	        my($l, $p, $newf, $dupf, $freef) = @_;
    		eval q( &CRYPTO_get_ex_new_index( &CRYPTO_EX_INDEX_DSA, $l, $p, $newf, $dupf, $freef));
	    }' unless defined(&DSA_get_ex_new_index);
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_0_9_8)) {
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    unless(defined(&OPENSSL_NO_STDIO)) {
	    }
	    eval 'sub DSS_prime_checks () {64;}' unless defined(&DSS_prime_checks);
	    eval 'sub DSA_is_prime {
	        my($n, $callback, $cb_arg) = @_;
    		eval q( &BN_is_prime($n,  &DSS_prime_checks, $callback,  &NULL, $cb_arg));
	    }' unless defined(&DSA_is_prime);
	    unless(defined(&OPENSSL_NO_DH)) {
	    }
	}
    }
    if(defined(&__cplusplus)) {
    }
}
1;
