require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&OPENSSL_EC_H)) {
    eval 'sub OPENSSL_EC_H () {1;}' unless defined(&OPENSSL_EC_H);
    require 'openssl/macros.ph';
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub HEADER_EC_H () {1;}' unless defined(&HEADER_EC_H);
    }
    require 'openssl/opensslconf.ph';
    require 'openssl/types.ph';
    require 'string.ph';
    if(defined(&__cplusplus)) {
    }
    eval 'sub OPENSSL_EC_EXPLICIT_CURVE () {0x;}' unless defined(&OPENSSL_EC_EXPLICIT_CURVE);
    eval 'sub OPENSSL_EC_NAMED_CURVE () {0x1;}' unless defined(&OPENSSL_EC_NAMED_CURVE);
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
    }
    eval 'sub EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID () {( &EVP_PKEY_ALG_CTRL + 1);}' unless defined(&EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID);
    eval 'sub EVP_PKEY_CTRL_EC_PARAM_ENC () {( &EVP_PKEY_ALG_CTRL + 2);}' unless defined(&EVP_PKEY_CTRL_EC_PARAM_ENC);
    eval 'sub EVP_PKEY_CTRL_EC_ECDH_COFACTOR () {( &EVP_PKEY_ALG_CTRL + 3);}' unless defined(&EVP_PKEY_CTRL_EC_ECDH_COFACTOR);
    eval 'sub EVP_PKEY_CTRL_EC_KDF_TYPE () {( &EVP_PKEY_ALG_CTRL + 4);}' unless defined(&EVP_PKEY_CTRL_EC_KDF_TYPE);
    eval 'sub EVP_PKEY_CTRL_EC_KDF_MD () {( &EVP_PKEY_ALG_CTRL + 5);}' unless defined(&EVP_PKEY_CTRL_EC_KDF_MD);
    eval 'sub EVP_PKEY_CTRL_GET_EC_KDF_MD () {( &EVP_PKEY_ALG_CTRL + 6);}' unless defined(&EVP_PKEY_CTRL_GET_EC_KDF_MD);
    eval 'sub EVP_PKEY_CTRL_EC_KDF_OUTLEN () {( &EVP_PKEY_ALG_CTRL + 7);}' unless defined(&EVP_PKEY_CTRL_EC_KDF_OUTLEN);
    eval 'sub EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN () {( &EVP_PKEY_ALG_CTRL + 8);}' unless defined(&EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN);
    eval 'sub EVP_PKEY_CTRL_EC_KDF_UKM () {( &EVP_PKEY_ALG_CTRL + 9);}' unless defined(&EVP_PKEY_CTRL_EC_KDF_UKM);
    eval 'sub EVP_PKEY_CTRL_GET_EC_KDF_UKM () {( &EVP_PKEY_ALG_CTRL + 10);}' unless defined(&EVP_PKEY_CTRL_GET_EC_KDF_UKM);
    eval 'sub EVP_PKEY_ECDH_KDF_NONE () {1;}' unless defined(&EVP_PKEY_ECDH_KDF_NONE);
    eval 'sub EVP_PKEY_ECDH_KDF_X9_63 () {2;}' unless defined(&EVP_PKEY_ECDH_KDF_X9_63);
    eval 'sub EVP_PKEY_ECDH_KDF_X9_62 () { &EVP_PKEY_ECDH_KDF_X9_63;}' unless defined(&EVP_PKEY_ECDH_KDF_X9_62);
    eval("sub POINT_CONVERSION_COMPRESSED () { 2; }") unless defined(&POINT_CONVERSION_COMPRESSED);
    eval("sub POINT_CONVERSION_UNCOMPRESSED () { 4; }") unless defined(&POINT_CONVERSION_UNCOMPRESSED);
    eval("sub POINT_CONVERSION_HYBRID () { 6; }") unless defined(&POINT_CONVERSION_HYBRID);
    unless(defined(&OPENSSL_NO_EC)) {
	require 'openssl/asn1.ph';
	require 'openssl/symhacks.ph';
	unless(defined(&OPENSSL_NO_DEPRECATED_1_1_0)) {
	    require 'openssl/bn.ph';
	}
	require 'openssl/ecerr.ph';
	unless(defined(&OPENSSL_ECC_MAX_FIELD_BITS)) {
	    eval 'sub OPENSSL_ECC_MAX_FIELD_BITS () {661;}' unless defined(&OPENSSL_ECC_MAX_FIELD_BITS);
	}
	require 'openssl/params.ph';
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    unless(defined(&OPENSSL_NO_EC_NISTP_64_GCC_128)) {
	    }
	    unless(defined(&OPENSSL_NO_EC2M)) {
	    }
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    unless(defined(&OPENSSL_NO_EC2M)) {
	    }
	}
	unless(defined(&OPENSSL_NO_EC2M)) {
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    unless(defined(&OPENSSL_NO_EC2M)) {
	    }
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	}
	unless(defined(&OPENSSL_NO_EC2M)) {
	}
	eval 'sub d2i_ECPKParameters_bio {
	    my($bp, $x) = @_;
    	    eval q( &ASN1_d2i_bio_of( &EC_GROUP,  &NULL,  &d2i_ECPKParameters, $bp, $x));
	}' unless defined(&d2i_ECPKParameters_bio);
	eval 'sub i2d_ECPKParameters_bio {
	    my($bp, $x) = @_;
    	    eval q( &ASN1_i2d_bio_of( &EC_GROUP,  &i2d_ECPKParameters, $bp, $x));
	}' unless defined(&i2d_ECPKParameters_bio);
	eval 'sub d2i_ECPKParameters_fp {
	    my($fp, $x) = @_;
    	    eval q(( &EC_GROUP *) &ASN1_d2i_fp( &NULL, ( &d2i_of_void *) &d2i_ECPKParameters, ($fp), ( &void **)($x)));
	}' unless defined(&d2i_ECPKParameters_fp);
	eval 'sub i2d_ECPKParameters_fp {
	    my($fp, $x) = @_;
    	    eval q( &ASN1_i2d_fp(( &i2d_of_void *) &i2d_ECPKParameters, ($fp), ( &void *)($x)));
	}' unless defined(&i2d_ECPKParameters_fp);
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    unless(defined(&OPENSSL_NO_STDIO)) {
	    }
	}
	eval 'sub EC_PKEY_NO_PARAMETERS () {0x1;}' unless defined(&EC_PKEY_NO_PARAMETERS);
	eval 'sub EC_PKEY_NO_PUBKEY () {0x2;}' unless defined(&EC_PKEY_NO_PUBKEY);
	eval 'sub EC_FLAG_SM2_RANGE () {0x4;}' unless defined(&EC_FLAG_SM2_RANGE);
	eval 'sub EC_FLAG_COFACTOR_ECDH () {0x1000;}' unless defined(&EC_FLAG_COFACTOR_ECDH);
	eval 'sub EC_FLAG_CHECK_NAMED_GROUP () {0x2000;}' unless defined(&EC_FLAG_CHECK_NAMED_GROUP);
	eval 'sub EC_FLAG_CHECK_NAMED_GROUP_NIST () {0x4000;}' unless defined(&EC_FLAG_CHECK_NAMED_GROUP_NIST);
	eval 'sub EC_FLAG_CHECK_NAMED_GROUP_MASK () {( &EC_FLAG_CHECK_NAMED_GROUP |  &EC_FLAG_CHECK_NAMED_GROUP_NIST);}' unless defined(&EC_FLAG_CHECK_NAMED_GROUP_MASK);
	eval 'sub EC_FLAG_NON_FIPS_ALLOW () {0x;}' unless defined(&EC_FLAG_NON_FIPS_ALLOW);
	eval 'sub EC_FLAG_FIPS_CHECKED () {0x;}' unless defined(&EC_FLAG_FIPS_CHECKED);
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	}
	eval 'sub EC_KEY_get_ex_new_index {
	    my($l, $p, $newf, $dupf, $freef) = @_;
    	    eval q( &CRYPTO_get_ex_new_index( &CRYPTO_EX_INDEX_EC_KEY, $l, $p, $newf, $dupf, $freef));
	}' unless defined(&EC_KEY_get_ex_new_index);
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    unless(defined(&OPENSSL_NO_STDIO)) {
	    }
	}
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	}
	eval 'sub EVP_EC_gen {
	    my($curve) = @_;
    	    eval q( &EVP_PKEY_Q_keygen( &NULL,  &NULL, \\"EC\\", ( &strstr($curve, \\"\\"))));
	}' unless defined(&EVP_EC_gen);
	eval 'sub ECParameters_dup {
	    my($x) = @_;
    	    eval q( &ASN1_dup_of( &EC_KEY,  &i2d_ECParameters,  &d2i_ECParameters, $x));
	}' unless defined(&ECParameters_dup);
	unless(defined(&__cplusplus)) {
	    if(defined(&__SUNPRO_C)) {
		if((defined(&__SUNPRO_C) ? &__SUNPRO_C : undef) >= 0x520) {
		}
	    }
	}
    }
    if(defined(&__cplusplus)) {
    }
}
1;
