require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&OPENSSL_CRMF_H)) {
    eval 'sub OPENSSL_CRMF_H () {1;}' unless defined(&OPENSSL_CRMF_H);
    require 'openssl/opensslconf.ph';
    unless(defined(&OPENSSL_NO_CRMF)) {
	require 'openssl/opensslv.ph';
	require 'openssl/safestack.ph';
	require 'openssl/crmferr.ph';
	require 'openssl/x509v3.ph';
	require 'openssl/types.ph';
	require 'openssl/x509.ph';
	if(defined(&__cplusplus)) {
	}
	eval 'sub OSSL_CRMF_POPOPRIVKEY_THISMESSAGE () {0;}' unless defined(&OSSL_CRMF_POPOPRIVKEY_THISMESSAGE);
	eval 'sub OSSL_CRMF_POPOPRIVKEY_SUBSEQUENTMESSAGE () {1;}' unless defined(&OSSL_CRMF_POPOPRIVKEY_SUBSEQUENTMESSAGE);
	eval 'sub OSSL_CRMF_POPOPRIVKEY_DHMAC () {2;}' unless defined(&OSSL_CRMF_POPOPRIVKEY_DHMAC);
	eval 'sub OSSL_CRMF_POPOPRIVKEY_AGREEMAC () {3;}' unless defined(&OSSL_CRMF_POPOPRIVKEY_AGREEMAC);
	eval 'sub OSSL_CRMF_POPOPRIVKEY_ENCRYPTEDKEY () {4;}' unless defined(&OSSL_CRMF_POPOPRIVKEY_ENCRYPTEDKEY);
	eval 'sub OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT () {0;}' unless defined(&OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT);
	eval 'sub OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP () {1;}' unless defined(&OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP);
	eval 'sub sk_OSSL_CRMF_MSG_num {
	    my($sk) = @_;
    	    eval q( &OPENSSL_sk_num( &ossl_check_const_OSSL_CRMF_MSG_sk_type($sk)));
	}' unless defined(&sk_OSSL_CRMF_MSG_num);
	eval 'sub sk_OSSL_CRMF_MSG_value {
	    my($sk, $idx) = @_;
    	    eval q((( &OSSL_CRMF_MSG *) &OPENSSL_sk_value( &ossl_check_const_OSSL_CRMF_MSG_sk_type($sk), ($idx))));
	}' unless defined(&sk_OSSL_CRMF_MSG_value);
	eval 'sub sk_OSSL_CRMF_MSG_new {
	    my($cmp) = @_;
    	    eval q((( &STACK_OF( &OSSL_CRMF_MSG) *) &OPENSSL_sk_new( &ossl_check_OSSL_CRMF_MSG_compfunc_type($cmp))));
	}' unless defined(&sk_OSSL_CRMF_MSG_new);
	eval 'sub sk_OSSL_CRMF_MSG_new_null () {
	    eval q((( &STACK_OF( &OSSL_CRMF_MSG) *) &OPENSSL_sk_new_null()));
	}' unless defined(&sk_OSSL_CRMF_MSG_new_null);
	eval 'sub sk_OSSL_CRMF_MSG_new_reserve {
	    my($cmp, $n) = @_;
    	    eval q((( &STACK_OF( &OSSL_CRMF_MSG) *) &OPENSSL_sk_new_reserve( &ossl_check_OSSL_CRMF_MSG_compfunc_type($cmp), ($n))));
	}' unless defined(&sk_OSSL_CRMF_MSG_new_reserve);
	eval 'sub sk_OSSL_CRMF_MSG_reserve {
	    my($sk, $n) = @_;
    	    eval q( &OPENSSL_sk_reserve( &ossl_check_OSSL_CRMF_MSG_sk_type($sk), ($n)));
	}' unless defined(&sk_OSSL_CRMF_MSG_reserve);
	eval 'sub sk_OSSL_CRMF_MSG_free {
	    my($sk) = @_;
    	    eval q( &OPENSSL_sk_free( &ossl_check_OSSL_CRMF_MSG_sk_type($sk)));
	}' unless defined(&sk_OSSL_CRMF_MSG_free);
	eval 'sub sk_OSSL_CRMF_MSG_zero {
	    my($sk) = @_;
    	    eval q( &OPENSSL_sk_zero( &ossl_check_OSSL_CRMF_MSG_sk_type($sk)));
	}' unless defined(&sk_OSSL_CRMF_MSG_zero);
	eval 'sub sk_OSSL_CRMF_MSG_delete {
	    my($sk, $i) = @_;
    	    eval q((( &OSSL_CRMF_MSG *) &OPENSSL_sk_delete( &ossl_check_OSSL_CRMF_MSG_sk_type($sk), ($i))));
	}' unless defined(&sk_OSSL_CRMF_MSG_delete);
	eval 'sub sk_OSSL_CRMF_MSG_delete_ptr {
	    my($sk, $ptr) = @_;
    	    eval q((( &OSSL_CRMF_MSG *) &OPENSSL_sk_delete_ptr( &ossl_check_OSSL_CRMF_MSG_sk_type($sk),  &ossl_check_OSSL_CRMF_MSG_type($ptr))));
	}' unless defined(&sk_OSSL_CRMF_MSG_delete_ptr);
	eval 'sub sk_OSSL_CRMF_MSG_push {
	    my($sk, $ptr) = @_;
    	    eval q( &OPENSSL_sk_push( &ossl_check_OSSL_CRMF_MSG_sk_type($sk),  &ossl_check_OSSL_CRMF_MSG_type($ptr)));
	}' unless defined(&sk_OSSL_CRMF_MSG_push);
	eval 'sub sk_OSSL_CRMF_MSG_unshift {
	    my($sk, $ptr) = @_;
    	    eval q( &OPENSSL_sk_unshift( &ossl_check_OSSL_CRMF_MSG_sk_type($sk),  &ossl_check_OSSL_CRMF_MSG_type($ptr)));
	}' unless defined(&sk_OSSL_CRMF_MSG_unshift);
	eval 'sub sk_OSSL_CRMF_MSG_pop {
	    my($sk) = @_;
    	    eval q((( &OSSL_CRMF_MSG *) &OPENSSL_sk_pop( &ossl_check_OSSL_CRMF_MSG_sk_type($sk))));
	}' unless defined(&sk_OSSL_CRMF_MSG_pop);
	eval 'sub sk_OSSL_CRMF_MSG_shift {
	    my($sk) = @_;
    	    eval q((( &OSSL_CRMF_MSG *) &OPENSSL_sk_shift( &ossl_check_OSSL_CRMF_MSG_sk_type($sk))));
	}' unless defined(&sk_OSSL_CRMF_MSG_shift);
	eval 'sub sk_OSSL_CRMF_MSG_pop_free {
	    my($sk, $freefunc) = @_;
    	    eval q( &OPENSSL_sk_pop_free( &ossl_check_OSSL_CRMF_MSG_sk_type($sk), &ossl_check_OSSL_CRMF_MSG_freefunc_type($freefunc)));
	}' unless defined(&sk_OSSL_CRMF_MSG_pop_free);
	eval 'sub sk_OSSL_CRMF_MSG_insert {
	    my($sk, $ptr, $idx) = @_;
    	    eval q( &OPENSSL_sk_insert( &ossl_check_OSSL_CRMF_MSG_sk_type($sk),  &ossl_check_OSSL_CRMF_MSG_type($ptr), ($idx)));
	}' unless defined(&sk_OSSL_CRMF_MSG_insert);
	eval 'sub sk_OSSL_CRMF_MSG_set {
	    my($sk, $idx, $ptr) = @_;
    	    eval q((( &OSSL_CRMF_MSG *) &OPENSSL_sk_set( &ossl_check_OSSL_CRMF_MSG_sk_type($sk), ($idx),  &ossl_check_OSSL_CRMF_MSG_type($ptr))));
	}' unless defined(&sk_OSSL_CRMF_MSG_set);
	eval 'sub sk_OSSL_CRMF_MSG_find {
	    my($sk, $ptr) = @_;
    	    eval q( &OPENSSL_sk_find( &ossl_check_OSSL_CRMF_MSG_sk_type($sk),  &ossl_check_OSSL_CRMF_MSG_type($ptr)));
	}' unless defined(&sk_OSSL_CRMF_MSG_find);
	eval 'sub sk_OSSL_CRMF_MSG_find_ex {
	    my($sk, $ptr) = @_;
    	    eval q( &OPENSSL_sk_find_ex( &ossl_check_OSSL_CRMF_MSG_sk_type($sk),  &ossl_check_OSSL_CRMF_MSG_type($ptr)));
	}' unless defined(&sk_OSSL_CRMF_MSG_find_ex);
	eval 'sub sk_OSSL_CRMF_MSG_find_all {
	    my($sk, $ptr, $pnum) = @_;
    	    eval q( &OPENSSL_sk_find_all( &ossl_check_OSSL_CRMF_MSG_sk_type($sk),  &ossl_check_OSSL_CRMF_MSG_type($ptr), $pnum));
	}' unless defined(&sk_OSSL_CRMF_MSG_find_all);
	eval 'sub sk_OSSL_CRMF_MSG_sort {
	    my($sk) = @_;
    	    eval q( &OPENSSL_sk_sort( &ossl_check_OSSL_CRMF_MSG_sk_type($sk)));
	}' unless defined(&sk_OSSL_CRMF_MSG_sort);
	eval 'sub sk_OSSL_CRMF_MSG_is_sorted {
	    my($sk) = @_;
    	    eval q( &OPENSSL_sk_is_sorted( &ossl_check_const_OSSL_CRMF_MSG_sk_type($sk)));
	}' unless defined(&sk_OSSL_CRMF_MSG_is_sorted);
	eval 'sub sk_OSSL_CRMF_MSG_dup {
	    my($sk) = @_;
    	    eval q((( &STACK_OF( &OSSL_CRMF_MSG) *) &OPENSSL_sk_dup( &ossl_check_const_OSSL_CRMF_MSG_sk_type($sk))));
	}' unless defined(&sk_OSSL_CRMF_MSG_dup);
	eval 'sub sk_OSSL_CRMF_MSG_deep_copy {
	    my($sk, $copyfunc, $freefunc) = @_;
    	    eval q((( &STACK_OF( &OSSL_CRMF_MSG) *) &OPENSSL_sk_deep_copy( &ossl_check_const_OSSL_CRMF_MSG_sk_type($sk),  &ossl_check_OSSL_CRMF_MSG_copyfunc_type($copyfunc),  &ossl_check_OSSL_CRMF_MSG_freefunc_type($freefunc))));
	}' unless defined(&sk_OSSL_CRMF_MSG_deep_copy);
	eval 'sub sk_OSSL_CRMF_MSG_set_cmp_func {
	    my($sk, $cmp) = @_;
    	    eval q((( &sk_OSSL_CRMF_MSG_compfunc) &OPENSSL_sk_set_cmp_func( &ossl_check_OSSL_CRMF_MSG_sk_type($sk),  &ossl_check_OSSL_CRMF_MSG_compfunc_type($cmp))));
	}' unless defined(&sk_OSSL_CRMF_MSG_set_cmp_func);
	eval 'sub sk_OSSL_CRMF_CERTID_num {
	    my($sk) = @_;
    	    eval q( &OPENSSL_sk_num( &ossl_check_const_OSSL_CRMF_CERTID_sk_type($sk)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_num);
	eval 'sub sk_OSSL_CRMF_CERTID_value {
	    my($sk, $idx) = @_;
    	    eval q((( &OSSL_CRMF_CERTID *) &OPENSSL_sk_value( &ossl_check_const_OSSL_CRMF_CERTID_sk_type($sk), ($idx))));
	}' unless defined(&sk_OSSL_CRMF_CERTID_value);
	eval 'sub sk_OSSL_CRMF_CERTID_new {
	    my($cmp) = @_;
    	    eval q((( &STACK_OF( &OSSL_CRMF_CERTID) *) &OPENSSL_sk_new( &ossl_check_OSSL_CRMF_CERTID_compfunc_type($cmp))));
	}' unless defined(&sk_OSSL_CRMF_CERTID_new);
	eval 'sub sk_OSSL_CRMF_CERTID_new_null () {
	    eval q((( &STACK_OF( &OSSL_CRMF_CERTID) *) &OPENSSL_sk_new_null()));
	}' unless defined(&sk_OSSL_CRMF_CERTID_new_null);
	eval 'sub sk_OSSL_CRMF_CERTID_new_reserve {
	    my($cmp, $n) = @_;
    	    eval q((( &STACK_OF( &OSSL_CRMF_CERTID) *) &OPENSSL_sk_new_reserve( &ossl_check_OSSL_CRMF_CERTID_compfunc_type($cmp), ($n))));
	}' unless defined(&sk_OSSL_CRMF_CERTID_new_reserve);
	eval 'sub sk_OSSL_CRMF_CERTID_reserve {
	    my($sk, $n) = @_;
    	    eval q( &OPENSSL_sk_reserve( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk), ($n)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_reserve);
	eval 'sub sk_OSSL_CRMF_CERTID_free {
	    my($sk) = @_;
    	    eval q( &OPENSSL_sk_free( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_free);
	eval 'sub sk_OSSL_CRMF_CERTID_zero {
	    my($sk) = @_;
    	    eval q( &OPENSSL_sk_zero( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_zero);
	eval 'sub sk_OSSL_CRMF_CERTID_delete {
	    my($sk, $i) = @_;
    	    eval q((( &OSSL_CRMF_CERTID *) &OPENSSL_sk_delete( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk), ($i))));
	}' unless defined(&sk_OSSL_CRMF_CERTID_delete);
	eval 'sub sk_OSSL_CRMF_CERTID_delete_ptr {
	    my($sk, $ptr) = @_;
    	    eval q((( &OSSL_CRMF_CERTID *) &OPENSSL_sk_delete_ptr( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk),  &ossl_check_OSSL_CRMF_CERTID_type($ptr))));
	}' unless defined(&sk_OSSL_CRMF_CERTID_delete_ptr);
	eval 'sub sk_OSSL_CRMF_CERTID_push {
	    my($sk, $ptr) = @_;
    	    eval q( &OPENSSL_sk_push( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk),  &ossl_check_OSSL_CRMF_CERTID_type($ptr)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_push);
	eval 'sub sk_OSSL_CRMF_CERTID_unshift {
	    my($sk, $ptr) = @_;
    	    eval q( &OPENSSL_sk_unshift( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk),  &ossl_check_OSSL_CRMF_CERTID_type($ptr)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_unshift);
	eval 'sub sk_OSSL_CRMF_CERTID_pop {
	    my($sk) = @_;
    	    eval q((( &OSSL_CRMF_CERTID *) &OPENSSL_sk_pop( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk))));
	}' unless defined(&sk_OSSL_CRMF_CERTID_pop);
	eval 'sub sk_OSSL_CRMF_CERTID_shift {
	    my($sk) = @_;
    	    eval q((( &OSSL_CRMF_CERTID *) &OPENSSL_sk_shift( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk))));
	}' unless defined(&sk_OSSL_CRMF_CERTID_shift);
	eval 'sub sk_OSSL_CRMF_CERTID_pop_free {
	    my($sk, $freefunc) = @_;
    	    eval q( &OPENSSL_sk_pop_free( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk), &ossl_check_OSSL_CRMF_CERTID_freefunc_type($freefunc)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_pop_free);
	eval 'sub sk_OSSL_CRMF_CERTID_insert {
	    my($sk, $ptr, $idx) = @_;
    	    eval q( &OPENSSL_sk_insert( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk),  &ossl_check_OSSL_CRMF_CERTID_type($ptr), ($idx)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_insert);
	eval 'sub sk_OSSL_CRMF_CERTID_set {
	    my($sk, $idx, $ptr) = @_;
    	    eval q((( &OSSL_CRMF_CERTID *) &OPENSSL_sk_set( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk), ($idx),  &ossl_check_OSSL_CRMF_CERTID_type($ptr))));
	}' unless defined(&sk_OSSL_CRMF_CERTID_set);
	eval 'sub sk_OSSL_CRMF_CERTID_find {
	    my($sk, $ptr) = @_;
    	    eval q( &OPENSSL_sk_find( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk),  &ossl_check_OSSL_CRMF_CERTID_type($ptr)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_find);
	eval 'sub sk_OSSL_CRMF_CERTID_find_ex {
	    my($sk, $ptr) = @_;
    	    eval q( &OPENSSL_sk_find_ex( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk),  &ossl_check_OSSL_CRMF_CERTID_type($ptr)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_find_ex);
	eval 'sub sk_OSSL_CRMF_CERTID_find_all {
	    my($sk, $ptr, $pnum) = @_;
    	    eval q( &OPENSSL_sk_find_all( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk),  &ossl_check_OSSL_CRMF_CERTID_type($ptr), $pnum));
	}' unless defined(&sk_OSSL_CRMF_CERTID_find_all);
	eval 'sub sk_OSSL_CRMF_CERTID_sort {
	    my($sk) = @_;
    	    eval q( &OPENSSL_sk_sort( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_sort);
	eval 'sub sk_OSSL_CRMF_CERTID_is_sorted {
	    my($sk) = @_;
    	    eval q( &OPENSSL_sk_is_sorted( &ossl_check_const_OSSL_CRMF_CERTID_sk_type($sk)));
	}' unless defined(&sk_OSSL_CRMF_CERTID_is_sorted);
	eval 'sub sk_OSSL_CRMF_CERTID_dup {
	    my($sk) = @_;
    	    eval q((( &STACK_OF( &OSSL_CRMF_CERTID) *) &OPENSSL_sk_dup( &ossl_check_const_OSSL_CRMF_CERTID_sk_type($sk))));
	}' unless defined(&sk_OSSL_CRMF_CERTID_dup);
	eval 'sub sk_OSSL_CRMF_CERTID_deep_copy {
	    my($sk, $copyfunc, $freefunc) = @_;
    	    eval q((( &STACK_OF( &OSSL_CRMF_CERTID) *) &OPENSSL_sk_deep_copy( &ossl_check_const_OSSL_CRMF_CERTID_sk_type($sk),  &ossl_check_OSSL_CRMF_CERTID_copyfunc_type($copyfunc),  &ossl_check_OSSL_CRMF_CERTID_freefunc_type($freefunc))));
	}' unless defined(&sk_OSSL_CRMF_CERTID_deep_copy);
	eval 'sub sk_OSSL_CRMF_CERTID_set_cmp_func {
	    my($sk, $cmp) = @_;
    	    eval q((( &sk_OSSL_CRMF_CERTID_compfunc) &OPENSSL_sk_set_cmp_func( &ossl_check_OSSL_CRMF_CERTID_sk_type($sk),  &ossl_check_OSSL_CRMF_CERTID_compfunc_type($cmp))));
	}' unless defined(&sk_OSSL_CRMF_CERTID_set_cmp_func);
	eval 'sub OSSL_CRMF_PUB_METHOD_DONTCARE () {0;}' unless defined(&OSSL_CRMF_PUB_METHOD_DONTCARE);
	eval 'sub OSSL_CRMF_PUB_METHOD_X500 () {1;}' unless defined(&OSSL_CRMF_PUB_METHOD_X500);
	eval 'sub OSSL_CRMF_PUB_METHOD_WEB () {2;}' unless defined(&OSSL_CRMF_PUB_METHOD_WEB);
	eval 'sub OSSL_CRMF_PUB_METHOD_LDAP () {3;}' unless defined(&OSSL_CRMF_PUB_METHOD_LDAP);
	eval 'sub OSSL_CRMF_PUB_ACTION_DONTPUBLISH () {0;}' unless defined(&OSSL_CRMF_PUB_ACTION_DONTPUBLISH);
	eval 'sub OSSL_CRMF_PUB_ACTION_PLEASEPUBLISH () {1;}' unless defined(&OSSL_CRMF_PUB_ACTION_PLEASEPUBLISH);
	eval 'sub OSSL_CRMF_POPO_NONE () {-1;}' unless defined(&OSSL_CRMF_POPO_NONE);
	eval 'sub OSSL_CRMF_POPO_RAVERIFIED () {0;}' unless defined(&OSSL_CRMF_POPO_RAVERIFIED);
	eval 'sub OSSL_CRMF_POPO_SIGNATURE () {1;}' unless defined(&OSSL_CRMF_POPO_SIGNATURE);
	eval 'sub OSSL_CRMF_POPO_KEYENC () {2;}' unless defined(&OSSL_CRMF_POPO_KEYENC);
	eval 'sub OSSL_CRMF_POPO_KEYAGREE () {3;}' unless defined(&OSSL_CRMF_POPO_KEYAGREE);
	if(defined(&__cplusplus)) {
	}
    }
}
1;
