require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&OPENSSL_PEM_H)) {
    eval 'sub OPENSSL_PEM_H () {1;}' unless defined(&OPENSSL_PEM_H);
    require 'openssl/macros.ph';
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub HEADER_PEM_H () {1;}' unless defined(&HEADER_PEM_H);
    }
    require 'openssl/e_os2.ph';
    require 'openssl/bio.ph';
    require 'openssl/safestack.ph';
    require 'openssl/evp.ph';
    require 'openssl/x509.ph';
    require 'openssl/pemerr.ph';
    if(defined(&__cplusplus)) {
    }
    eval 'sub PEM_BUFSIZE () {1024;}' unless defined(&PEM_BUFSIZE);
    eval 'sub PEM_STRING_X509_OLD () {"X509 CERTIFICATE";}' unless defined(&PEM_STRING_X509_OLD);
    eval 'sub PEM_STRING_X509 () {"CERTIFICATE";}' unless defined(&PEM_STRING_X509);
    eval 'sub PEM_STRING_X509_TRUSTED () {"TRUSTED CERTIFICATE";}' unless defined(&PEM_STRING_X509_TRUSTED);
    eval 'sub PEM_STRING_X509_REQ_OLD () {"NEW CERTIFICATE REQUEST";}' unless defined(&PEM_STRING_X509_REQ_OLD);
    eval 'sub PEM_STRING_X509_REQ () {"CERTIFICATE REQUEST";}' unless defined(&PEM_STRING_X509_REQ);
    eval 'sub PEM_STRING_X509_CRL () {"X509 CRL";}' unless defined(&PEM_STRING_X509_CRL);
    eval 'sub PEM_STRING_EVP_PKEY () {"ANY PRIVATE KEY";}' unless defined(&PEM_STRING_EVP_PKEY);
    eval 'sub PEM_STRING_PUBLIC () {"PUBLIC KEY";}' unless defined(&PEM_STRING_PUBLIC);
    eval 'sub PEM_STRING_RSA () {"RSA PRIVATE KEY";}' unless defined(&PEM_STRING_RSA);
    eval 'sub PEM_STRING_RSA_PUBLIC () {"RSA PUBLIC KEY";}' unless defined(&PEM_STRING_RSA_PUBLIC);
    eval 'sub PEM_STRING_DSA () {"DSA PRIVATE KEY";}' unless defined(&PEM_STRING_DSA);
    eval 'sub PEM_STRING_DSA_PUBLIC () {"DSA PUBLIC KEY";}' unless defined(&PEM_STRING_DSA_PUBLIC);
    eval 'sub PEM_STRING_PKCS7 () {"PKCS7";}' unless defined(&PEM_STRING_PKCS7);
    eval 'sub PEM_STRING_PKCS7_SIGNED () {"PKCS #7 SIGNED DATA";}' unless defined(&PEM_STRING_PKCS7_SIGNED);
    eval 'sub PEM_STRING_PKCS8 () {"ENCRYPTED PRIVATE KEY";}' unless defined(&PEM_STRING_PKCS8);
    eval 'sub PEM_STRING_PKCS8INF () {"PRIVATE KEY";}' unless defined(&PEM_STRING_PKCS8INF);
    eval 'sub PEM_STRING_DHPARAMS () {"DH PARAMETERS";}' unless defined(&PEM_STRING_DHPARAMS);
    eval 'sub PEM_STRING_DHXPARAMS () {"X9.42 DH PARAMETERS";}' unless defined(&PEM_STRING_DHXPARAMS);
    eval 'sub PEM_STRING_SSL_SESSION () {"SSL SESSION PARAMETERS";}' unless defined(&PEM_STRING_SSL_SESSION);
    eval 'sub PEM_STRING_DSAPARAMS () {"DSA PARAMETERS";}' unless defined(&PEM_STRING_DSAPARAMS);
    eval 'sub PEM_STRING_ECDSA_PUBLIC () {"ECDSA PUBLIC KEY";}' unless defined(&PEM_STRING_ECDSA_PUBLIC);
    eval 'sub PEM_STRING_ECPARAMETERS () {"EC PARAMETERS";}' unless defined(&PEM_STRING_ECPARAMETERS);
    eval 'sub PEM_STRING_ECPRIVATEKEY () {"EC PRIVATE KEY";}' unless defined(&PEM_STRING_ECPRIVATEKEY);
    eval 'sub PEM_STRING_PARAMETERS () {"PARAMETERS";}' unless defined(&PEM_STRING_PARAMETERS);
    eval 'sub PEM_STRING_CMS () {"CMS";}' unless defined(&PEM_STRING_CMS);
    eval 'sub PEM_STRING_SM2PRIVATEKEY () {"SM2 PRIVATE KEY";}' unless defined(&PEM_STRING_SM2PRIVATEKEY);
    eval 'sub PEM_STRING_SM2PARAMETERS () {"SM2 PARAMETERS";}' unless defined(&PEM_STRING_SM2PARAMETERS);
    eval 'sub PEM_TYPE_ENCRYPTED () {10;}' unless defined(&PEM_TYPE_ENCRYPTED);
    eval 'sub PEM_TYPE_MIC_ONLY () {20;}' unless defined(&PEM_TYPE_MIC_ONLY);
    eval 'sub PEM_TYPE_MIC_CLEAR () {30;}' unless defined(&PEM_TYPE_MIC_CLEAR);
    eval 'sub PEM_TYPE_CLEAR () {40;}' unless defined(&PEM_TYPE_CLEAR);
    eval 'sub PEM_read_cb_fnsig {
        my($name, $type, $INTYPE, $readname) = @_;
	    eval q($type * &PEM_$readname &_$name($INTYPE * &out, $type ** &x,  &pem_password_cb * &cb,  &void * &u));
    }' unless defined(&PEM_read_cb_fnsig);
    eval 'sub PEM_read_cb_ex_fnsig {
        my($name, $type, $INTYPE, $readname) = @_;
	    eval q($type * &PEM_$readname &_$name &_ex($INTYPE * &out, $type ** &x,  &pem_password_cb * &cb,  &void * &u,  &OSSL_LIB_CTX * &libctx,  &const \'char\' * &propq));
    }' unless defined(&PEM_read_cb_ex_fnsig);
    eval 'sub PEM_write_fnsig {
        my($name, $type, $OUTTYPE, $writename) = @_;
	    eval q(\'int\'  &PEM_$writename &_$name($OUTTYPE * &out,  &const $type * &x));
    }' unless defined(&PEM_write_fnsig);
    eval 'sub PEM_write_cb_fnsig {
        my($name, $type, $OUTTYPE, $writename) = @_;
	    eval q(\'int\'  &PEM_$writename &_$name($OUTTYPE * &out,  &const $type * &x,  &const  &EVP_CIPHER * &enc,  &const \'unsigned char\' * &kstr, \'int\'  &klen,  &pem_password_cb * &cb,  &void * &u));
    }' unless defined(&PEM_write_cb_fnsig);
    eval 'sub PEM_write_ex_fnsig {
        my($name, $type, $OUTTYPE, $writename) = @_;
	    eval q(\'int\'  &PEM_$writename &_$name &_ex($OUTTYPE * &out,  &const $type * &x,  &OSSL_LIB_CTX * &libctx,  &const \'char\' * &propq));
    }' unless defined(&PEM_write_ex_fnsig);
    eval 'sub PEM_write_cb_ex_fnsig {
        my($name, $type, $OUTTYPE, $writename) = @_;
	    eval q(\'int\'  &PEM_$writename &_$name &_ex($OUTTYPE * &out,  &const $type * &x,  &const  &EVP_CIPHER * &enc,  &const \'unsigned char\' * &kstr, \'int\'  &klen,  &pem_password_cb * &cb,  &void * &u,  &OSSL_LIB_CTX * &libctx,  &const \'char\' * &propq));
    }' unless defined(&PEM_write_cb_ex_fnsig);
    if(defined(&OPENSSL_NO_STDIO)) {
	eval 'sub IMPLEMENT_PEM_read_fp {
	    my($name, $type, $str, $asn1) = @_;
    	    eval q();
	}' unless defined(&IMPLEMENT_PEM_read_fp);
	eval 'sub IMPLEMENT_PEM_write_fp {
	    my($name, $type, $str, $asn1) = @_;
    	    eval q();
	}' unless defined(&IMPLEMENT_PEM_write_fp);
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    eval 'sub IMPLEMENT_PEM_write_fp_const {
	        my($name, $type, $str, $asn1) = @_;
    		eval q();
	    }' unless defined(&IMPLEMENT_PEM_write_fp_const);
	}
	eval 'sub IMPLEMENT_PEM_write_cb_fp {
	    my($name, $type, $str, $asn1) = @_;
    	    eval q();
	}' unless defined(&IMPLEMENT_PEM_write_cb_fp);
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    eval 'sub IMPLEMENT_PEM_write_cb_fp_const {
	        my($name, $type, $str, $asn1) = @_;
    		eval q();
	    }' unless defined(&IMPLEMENT_PEM_write_cb_fp_const);
	}
    } else {
	eval 'sub IMPLEMENT_PEM_read_fp {
	    my($name, $type, $str, $asn1) = @_;
    	    eval q($type * &PEM_read_$name(\'FILE\' * &fp, $type ** &x,  &pem_password_cb * &cb,  &void * &u) {  &return  &PEM_ASN1_read(( &d2i_of_void *) &d2i_$asn1, $str,  &fp, ( &void **) &x,  &cb,  &u); });
	}' unless defined(&IMPLEMENT_PEM_read_fp);
	eval 'sub IMPLEMENT_PEM_write_fp {
	    my($name, $type, $str, $asn1) = @_;
    	    eval q( &PEM_write_fnsig($name, $type, \'FILE\',  &write) {  &return  &PEM_ASN1_write(( &i2d_of_void *) &i2d_$asn1, $str,  &out,  &x,  &NULL,  &NULL, 0,  &NULL,  &NULL); });
	}' unless defined(&IMPLEMENT_PEM_write_fp);
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    eval 'sub IMPLEMENT_PEM_write_fp_const {
	        my($name, $type, $str, $asn1) = @_;
    		eval q( &IMPLEMENT_PEM_write_fp($name, $type, $str, $asn1));
	    }' unless defined(&IMPLEMENT_PEM_write_fp_const);
	}
	eval 'sub IMPLEMENT_PEM_write_cb_fp {
	    my($name, $type, $str, $asn1) = @_;
    	    eval q( &PEM_write_cb_fnsig($name, $type, \'FILE\',  &write) {  &return  &PEM_ASN1_write(( &i2d_of_void *) &i2d_$asn1, $str,  &out,  &x,  &enc,  &kstr,  &klen,  &cb,  &u); });
	}' unless defined(&IMPLEMENT_PEM_write_cb_fp);
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    eval 'sub IMPLEMENT_PEM_write_cb_fp_const {
	        my($name, $type, $str, $asn1) = @_;
    		eval q( &IMPLEMENT_PEM_write_cb_fp($name, $type, $str, $asn1));
	    }' unless defined(&IMPLEMENT_PEM_write_cb_fp_const);
	}
    }
    eval 'sub IMPLEMENT_PEM_read_bio {
        my($name, $type, $str, $asn1) = @_;
	    eval q($type * &PEM_read_bio_$name( &BIO * &bp, $type ** &x,  &pem_password_cb * &cb,  &void * &u) {  &return  &PEM_ASN1_read_bio(( &d2i_of_void *) &d2i_$asn1, $str,  &bp, ( &void **) &x,  &cb,  &u); });
    }' unless defined(&IMPLEMENT_PEM_read_bio);
    eval 'sub IMPLEMENT_PEM_write_bio {
        my($name, $type, $str, $asn1) = @_;
	    eval q( &PEM_write_fnsig($name, $type,  &BIO,  &write_bio) {  &return  &PEM_ASN1_write_bio(( &i2d_of_void *) &i2d_$asn1, $str,  &out,  &x,  &NULL,  &NULL, 0,  &NULL,  &NULL); });
    }' unless defined(&IMPLEMENT_PEM_write_bio);
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub IMPLEMENT_PEM_write_bio_const {
	    my($name, $type, $str, $asn1) = @_;
    	    eval q( &IMPLEMENT_PEM_write_bio($name, $type, $str, $asn1));
	}' unless defined(&IMPLEMENT_PEM_write_bio_const);
    }
    eval 'sub IMPLEMENT_PEM_write_cb_bio {
        my($name, $type, $str, $asn1) = @_;
	    eval q( &PEM_write_cb_fnsig($name, $type,  &BIO,  &write_bio) {  &return  &PEM_ASN1_write_bio(( &i2d_of_void *) &i2d_$asn1, $str,  &out,  &x,  &enc,  &kstr,  &klen,  &cb,  &u); });
    }' unless defined(&IMPLEMENT_PEM_write_cb_bio);
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub IMPLEMENT_PEM_write_cb_bio_const {
	    my($name, $type, $str, $asn1) = @_;
    	    eval q( &IMPLEMENT_PEM_write_cb_bio($name, $type, $str, $asn1));
	}' unless defined(&IMPLEMENT_PEM_write_cb_bio_const);
    }
    eval 'sub IMPLEMENT_PEM_write {
        my($name, $type, $str, $asn1) = @_;
	    eval q( &IMPLEMENT_PEM_write_bio($name, $type, $str, $asn1)  &IMPLEMENT_PEM_write_fp($name, $type, $str, $asn1));
    }' unless defined(&IMPLEMENT_PEM_write);
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub IMPLEMENT_PEM_write_const {
	    my($name, $type, $str, $asn1) = @_;
    	    eval q( &IMPLEMENT_PEM_write_bio_const($name, $type, $str, $asn1)  &IMPLEMENT_PEM_write_fp_const($name, $type, $str, $asn1));
	}' unless defined(&IMPLEMENT_PEM_write_const);
    }
    eval 'sub IMPLEMENT_PEM_write_cb {
        my($name, $type, $str, $asn1) = @_;
	    eval q( &IMPLEMENT_PEM_write_cb_bio($name, $type, $str, $asn1)  &IMPLEMENT_PEM_write_cb_fp($name, $type, $str, $asn1));
    }' unless defined(&IMPLEMENT_PEM_write_cb);
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub IMPLEMENT_PEM_write_cb_const {
	    my($name, $type, $str, $asn1) = @_;
    	    eval q( &IMPLEMENT_PEM_write_cb_bio_const($name, $type, $str, $asn1)  &IMPLEMENT_PEM_write_cb_fp_const($name, $type, $str, $asn1));
	}' unless defined(&IMPLEMENT_PEM_write_cb_const);
    }
    eval 'sub IMPLEMENT_PEM_read {
        my($name, $type, $str, $asn1) = @_;
	    eval q( &IMPLEMENT_PEM_read_bio($name, $type, $str, $asn1)  &IMPLEMENT_PEM_read_fp($name, $type, $str, $asn1));
    }' unless defined(&IMPLEMENT_PEM_read);
    eval 'sub IMPLEMENT_PEM_rw {
        my($name, $type, $str, $asn1) = @_;
	    eval q( &IMPLEMENT_PEM_read($name, $type, $str, $asn1)  &IMPLEMENT_PEM_write($name, $type, $str, $asn1));
    }' unless defined(&IMPLEMENT_PEM_rw);
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub IMPLEMENT_PEM_rw_const {
	    my($name, $type, $str, $asn1) = @_;
    	    eval q( &IMPLEMENT_PEM_read($name, $type, $str, $asn1)  &IMPLEMENT_PEM_write_const($name, $type, $str, $asn1));
	}' unless defined(&IMPLEMENT_PEM_rw_const);
    }
    eval 'sub IMPLEMENT_PEM_rw_cb {
        my($name, $type, $str, $asn1) = @_;
	    eval q( &IMPLEMENT_PEM_read($name, $type, $str, $asn1)  &IMPLEMENT_PEM_write_cb($name, $type, $str, $asn1));
    }' unless defined(&IMPLEMENT_PEM_rw_cb);
    if(defined(&OPENSSL_NO_STDIO)) {
	eval 'sub DECLARE_PEM_read_fp_attr {
	    my($attr, $name, $type) = @_;
    	    eval q();
	}' unless defined(&DECLARE_PEM_read_fp_attr);
	eval 'sub DECLARE_PEM_read_fp_ex_attr {
	    my($attr, $name, $type) = @_;
    	    eval q();
	}' unless defined(&DECLARE_PEM_read_fp_ex_attr);
	eval 'sub DECLARE_PEM_write_fp_attr {
	    my($attr, $name, $type) = @_;
    	    eval q();
	}' unless defined(&DECLARE_PEM_write_fp_attr);
	eval 'sub DECLARE_PEM_write_fp_ex_attr {
	    my($attr, $name, $type) = @_;
    	    eval q();
	}' unless defined(&DECLARE_PEM_write_fp_ex_attr);
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    eval 'sub DECLARE_PEM_write_fp_const_attr {
	        my($attr, $name, $type) = @_;
    		eval q();
	    }' unless defined(&DECLARE_PEM_write_fp_const_attr);
	}
	eval 'sub DECLARE_PEM_write_cb_fp_attr {
	    my($attr, $name, $type) = @_;
    	    eval q();
	}' unless defined(&DECLARE_PEM_write_cb_fp_attr);
	eval 'sub DECLARE_PEM_write_cb_fp_ex_attr {
	    my($attr, $name, $type) = @_;
    	    eval q();
	}' unless defined(&DECLARE_PEM_write_cb_fp_ex_attr);
    } else {
	eval 'sub DECLARE_PEM_read_fp_attr {
	    my($attr, $name, $type) = @_;
    	    eval q($attr  &PEM_read_cb_fnsig($name, $type, \'FILE\',  &read););
	}' unless defined(&DECLARE_PEM_read_fp_attr);
	eval 'sub DECLARE_PEM_read_fp_ex_attr {
	    my($attr, $name, $type) = @_;
    	    eval q($attr  &PEM_read_cb_fnsig($name, $type, \'FILE\',  &read); $attr  &PEM_read_cb_ex_fnsig($name, $type, \'FILE\',  &read););
	}' unless defined(&DECLARE_PEM_read_fp_ex_attr);
	eval 'sub DECLARE_PEM_write_fp_attr {
	    my($attr, $name, $type) = @_;
    	    eval q($attr  &PEM_write_fnsig($name, $type, \'FILE\',  &write););
	}' unless defined(&DECLARE_PEM_write_fp_attr);
	eval 'sub DECLARE_PEM_write_fp_ex_attr {
	    my($attr, $name, $type) = @_;
    	    eval q($attr  &PEM_write_fnsig($name, $type, \'FILE\',  &write); $attr  &PEM_write_ex_fnsig($name, $type, \'FILE\',  &write););
	}' unless defined(&DECLARE_PEM_write_fp_ex_attr);
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	    eval 'sub DECLARE_PEM_write_fp_const_attr {
	        my($attr, $name, $type) = @_;
    		eval q($attr  &PEM_write_fnsig($name, $type, \'FILE\',  &write););
	    }' unless defined(&DECLARE_PEM_write_fp_const_attr);
	}
	eval 'sub DECLARE_PEM_write_cb_fp_attr {
	    my($attr, $name, $type) = @_;
    	    eval q($attr  &PEM_write_cb_fnsig($name, $type, \'FILE\',  &write););
	}' unless defined(&DECLARE_PEM_write_cb_fp_attr);
	eval 'sub DECLARE_PEM_write_cb_fp_ex_attr {
	    my($attr, $name, $type) = @_;
    	    eval q($attr  &PEM_write_cb_fnsig($name, $type, \'FILE\',  &write); $attr  &PEM_write_cb_ex_fnsig($name, $type, \'FILE\',  &write););
	}' unless defined(&DECLARE_PEM_write_cb_fp_ex_attr);
    }
    eval 'sub DECLARE_PEM_read_fp {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_read_fp_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_read_fp);
    eval 'sub DECLARE_PEM_write_fp {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_write_fp_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_write_fp);
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub DECLARE_PEM_write_fp_const {
	    my($name, $type) = @_;
    	    eval q( &DECLARE_PEM_write_fp_const_attr( &extern, $name, $type));
	}' unless defined(&DECLARE_PEM_write_fp_const);
    }
    eval 'sub DECLARE_PEM_write_cb_fp {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_write_cb_fp_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_write_cb_fp);
    eval 'sub DECLARE_PEM_read_bio_attr {
        my($attr, $name, $type) = @_;
	    eval q($attr  &PEM_read_cb_fnsig($name, $type,  &BIO,  &read_bio););
    }' unless defined(&DECLARE_PEM_read_bio_attr);
    eval 'sub DECLARE_PEM_read_bio_ex_attr {
        my($attr, $name, $type) = @_;
	    eval q($attr  &PEM_read_cb_fnsig($name, $type,  &BIO,  &read_bio); $attr  &PEM_read_cb_ex_fnsig($name, $type,  &BIO,  &read_bio););
    }' unless defined(&DECLARE_PEM_read_bio_ex_attr);
    eval 'sub DECLARE_PEM_read_bio {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_read_bio_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_read_bio);
    eval 'sub DECLARE_PEM_read_bio_ex {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_read_bio_ex_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_read_bio_ex);
    eval 'sub DECLARE_PEM_write_bio_attr {
        my($attr, $name, $type) = @_;
	    eval q($attr  &PEM_write_fnsig($name, $type,  &BIO,  &write_bio););
    }' unless defined(&DECLARE_PEM_write_bio_attr);
    eval 'sub DECLARE_PEM_write_bio_ex_attr {
        my($attr, $name, $type) = @_;
	    eval q($attr  &PEM_write_fnsig($name, $type,  &BIO,  &write_bio); $attr  &PEM_write_ex_fnsig($name, $type,  &BIO,  &write_bio););
    }' unless defined(&DECLARE_PEM_write_bio_ex_attr);
    eval 'sub DECLARE_PEM_write_bio {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_write_bio_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_write_bio);
    eval 'sub DECLARE_PEM_write_bio_ex {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_write_bio_ex_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_write_bio_ex);
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub DECLARE_PEM_write_bio_const_attr {
	    my($attr, $name, $type) = @_;
    	    eval q($attr  &PEM_write_fnsig($name, $type,  &BIO,  &write_bio););
	}' unless defined(&DECLARE_PEM_write_bio_const_attr);
	eval 'sub DECLARE_PEM_write_bio_const {
	    my($name, $type) = @_;
    	    eval q( &DECLARE_PEM_write_bio_const_attr( &extern, $name, $type));
	}' unless defined(&DECLARE_PEM_write_bio_const);
    }
    eval 'sub DECLARE_PEM_write_cb_bio_attr {
        my($attr, $name, $type) = @_;
	    eval q($attr  &PEM_write_cb_fnsig($name, $type,  &BIO,  &write_bio););
    }' unless defined(&DECLARE_PEM_write_cb_bio_attr);
    eval 'sub DECLARE_PEM_write_cb_bio_ex_attr {
        my($attr, $name, $type) = @_;
	    eval q($attr  &PEM_write_cb_fnsig($name, $type,  &BIO,  &write_bio); $attr  &PEM_write_cb_ex_fnsig($name, $type,  &BIO,  &write_bio););
    }' unless defined(&DECLARE_PEM_write_cb_bio_ex_attr);
    eval 'sub DECLARE_PEM_write_cb_bio {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_write_cb_bio_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_write_cb_bio);
    eval 'sub DECLARE_PEM_write_cb_ex_bio {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_write_cb_bio_ex_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_write_cb_ex_bio);
    eval 'sub DECLARE_PEM_write_attr {
        my($attr, $name, $type) = @_;
	    eval q( &DECLARE_PEM_write_bio_attr($attr, $name, $type)  &DECLARE_PEM_write_fp_attr($attr, $name, $type));
    }' unless defined(&DECLARE_PEM_write_attr);
    eval 'sub DECLARE_PEM_write_ex_attr {
        my($attr, $name, $type) = @_;
	    eval q( &DECLARE_PEM_write_bio_ex_attr($attr, $name, $type)  &DECLARE_PEM_write_fp_ex_attr($attr, $name, $type));
    }' unless defined(&DECLARE_PEM_write_ex_attr);
    eval 'sub DECLARE_PEM_write {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_write_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_write);
    eval 'sub DECLARE_PEM_write_ex {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_write_ex_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_write_ex);
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub DECLARE_PEM_write_const_attr {
	    my($attr, $name, $type) = @_;
    	    eval q( &DECLARE_PEM_write_bio_const_attr($attr, $name, $type)  &DECLARE_PEM_write_fp_const_attr($attr, $name, $type));
	}' unless defined(&DECLARE_PEM_write_const_attr);
	eval 'sub DECLARE_PEM_write_const {
	    my($name, $type) = @_;
    	    eval q( &DECLARE_PEM_write_const_attr( &extern, $name, $type));
	}' unless defined(&DECLARE_PEM_write_const);
    }
    eval 'sub DECLARE_PEM_write_cb_attr {
        my($attr, $name, $type) = @_;
	    eval q( &DECLARE_PEM_write_cb_bio_attr($attr, $name, $type)  &DECLARE_PEM_write_cb_fp_attr($attr, $name, $type));
    }' unless defined(&DECLARE_PEM_write_cb_attr);
    eval 'sub DECLARE_PEM_write_cb_ex_attr {
        my($attr, $name, $type) = @_;
	    eval q( &DECLARE_PEM_write_cb_bio_ex_attr($attr, $name, $type)  &DECLARE_PEM_write_cb_fp_ex_attr($attr, $name, $type));
    }' unless defined(&DECLARE_PEM_write_cb_ex_attr);
    eval 'sub DECLARE_PEM_write_cb {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_write_cb_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_write_cb);
    eval 'sub DECLARE_PEM_write_cb_ex {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_write_cb_ex_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_write_cb_ex);
    eval 'sub DECLARE_PEM_read_attr {
        my($attr, $name, $type) = @_;
	    eval q( &DECLARE_PEM_read_bio_attr($attr, $name, $type)  &DECLARE_PEM_read_fp_attr($attr, $name, $type));
    }' unless defined(&DECLARE_PEM_read_attr);
    eval 'sub DECLARE_PEM_read_ex_attr {
        my($attr, $name, $type) = @_;
	    eval q( &DECLARE_PEM_read_bio_ex_attr($attr, $name, $type)  &DECLARE_PEM_read_fp_ex_attr($attr, $name, $type));
    }' unless defined(&DECLARE_PEM_read_ex_attr);
    eval 'sub DECLARE_PEM_read {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_read_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_read);
    eval 'sub DECLARE_PEM_read_ex {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_read_ex_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_read_ex);
    eval 'sub DECLARE_PEM_rw_attr {
        my($attr, $name, $type) = @_;
	    eval q( &DECLARE_PEM_read_attr($attr, $name, $type)  &DECLARE_PEM_write_attr($attr, $name, $type));
    }' unless defined(&DECLARE_PEM_rw_attr);
    eval 'sub DECLARE_PEM_rw_ex_attr {
        my($attr, $name, $type) = @_;
	    eval q( &DECLARE_PEM_read_ex_attr($attr, $name, $type)  &DECLARE_PEM_write_ex_attr($attr, $name, $type));
    }' unless defined(&DECLARE_PEM_rw_ex_attr);
    eval 'sub DECLARE_PEM_rw {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_rw_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_rw);
    eval 'sub DECLARE_PEM_rw_ex {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_rw_ex_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_rw_ex);
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub DECLARE_PEM_rw_const_attr {
	    my($attr, $name, $type) = @_;
    	    eval q( &DECLARE_PEM_read_attr($attr, $name, $type)  &DECLARE_PEM_write_const_attr($attr, $name, $type));
	}' unless defined(&DECLARE_PEM_rw_const_attr);
	eval 'sub DECLARE_PEM_rw_const {
	    my($name, $type) = @_;
    	    eval q( &DECLARE_PEM_rw_const_attr( &extern, $name, $type));
	}' unless defined(&DECLARE_PEM_rw_const);
    }
    eval 'sub DECLARE_PEM_rw_cb_attr {
        my($attr, $name, $type) = @_;
	    eval q( &DECLARE_PEM_read_attr($attr, $name, $type)  &DECLARE_PEM_write_cb_attr($attr, $name, $type));
    }' unless defined(&DECLARE_PEM_rw_cb_attr);
    eval 'sub DECLARE_PEM_rw_cb_ex_attr {
        my($attr, $name, $type) = @_;
	    eval q( &DECLARE_PEM_read_ex_attr($attr, $name, $type)  &DECLARE_PEM_write_cb_ex_attr($attr, $name, $type));
    }' unless defined(&DECLARE_PEM_rw_cb_ex_attr);
    eval 'sub DECLARE_PEM_rw_cb {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_rw_cb_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_rw_cb);
    eval 'sub DECLARE_PEM_rw_cb_ex {
        my($name, $type) = @_;
	    eval q( &DECLARE_PEM_rw_cb_ex_attr( &extern, $name, $type));
    }' unless defined(&DECLARE_PEM_rw_cb_ex);
    eval 'sub PEM_FLAG_SECURE () {0x1;}' unless defined(&PEM_FLAG_SECURE);
    eval 'sub PEM_FLAG_EAY_COMPATIBLE () {0x2;}' unless defined(&PEM_FLAG_EAY_COMPATIBLE);
    eval 'sub PEM_FLAG_ONLY_B64 () {0x4;}' unless defined(&PEM_FLAG_ONLY_B64);
    unless(defined(&OPENSSL_NO_STDIO)) {
    }
    require 'openssl/symhacks.ph';
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
    }
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	unless(defined(&OPENSSL_NO_DSA)) {
	}
    }
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	unless(defined(&OPENSSL_NO_EC)) {
	}
    }
    unless(defined(&OPENSSL_NO_DH)) {
	unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	}
    }
    unless(defined(&OPENSSL_NO_STDIO)) {
    }
    if(defined(&__cplusplus)) {
    }
}
1;
