require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&OPENSSL_PKCS7_H)) {
    eval 'sub OPENSSL_PKCS7_H () {1;}' unless defined(&OPENSSL_PKCS7_H);
    require 'openssl/macros.ph';
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub HEADER_PKCS7_H () {1;}' unless defined(&HEADER_PKCS7_H);
    }
    require 'openssl/asn1.ph';
    require 'openssl/bio.ph';
    require 'openssl/e_os2.ph';
    require 'openssl/symhacks.ph';
    require 'openssl/types.ph';
    require 'openssl/pkcs7err.ph';
    if(defined(&__cplusplus)) {
    }
    eval 'sub sk_PKCS7_SIGNER_INFO_num {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_num( &ossl_check_const_PKCS7_SIGNER_INFO_sk_type($sk)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_num);
    eval 'sub sk_PKCS7_SIGNER_INFO_value {
        my($sk, $idx) = @_;
	    eval q((( &PKCS7_SIGNER_INFO *) &OPENSSL_sk_value( &ossl_check_const_PKCS7_SIGNER_INFO_sk_type($sk), ($idx))));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_value);
    eval 'sub sk_PKCS7_SIGNER_INFO_new {
        my($cmp) = @_;
	    eval q((( &STACK_OF( &PKCS7_SIGNER_INFO) *) &OPENSSL_sk_new( &ossl_check_PKCS7_SIGNER_INFO_compfunc_type($cmp))));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_new);
    eval 'sub sk_PKCS7_SIGNER_INFO_new_null () {
        eval q((( &STACK_OF( &PKCS7_SIGNER_INFO) *) &OPENSSL_sk_new_null()));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_new_null);
    eval 'sub sk_PKCS7_SIGNER_INFO_new_reserve {
        my($cmp, $n) = @_;
	    eval q((( &STACK_OF( &PKCS7_SIGNER_INFO) *) &OPENSSL_sk_new_reserve( &ossl_check_PKCS7_SIGNER_INFO_compfunc_type($cmp), ($n))));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_new_reserve);
    eval 'sub sk_PKCS7_SIGNER_INFO_reserve {
        my($sk, $n) = @_;
	    eval q( &OPENSSL_sk_reserve( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk), ($n)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_reserve);
    eval 'sub sk_PKCS7_SIGNER_INFO_free {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_free( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_free);
    eval 'sub sk_PKCS7_SIGNER_INFO_zero {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_zero( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_zero);
    eval 'sub sk_PKCS7_SIGNER_INFO_delete {
        my($sk, $i) = @_;
	    eval q((( &PKCS7_SIGNER_INFO *) &OPENSSL_sk_delete( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk), ($i))));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_delete);
    eval 'sub sk_PKCS7_SIGNER_INFO_delete_ptr {
        my($sk, $ptr) = @_;
	    eval q((( &PKCS7_SIGNER_INFO *) &OPENSSL_sk_delete_ptr( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk),  &ossl_check_PKCS7_SIGNER_INFO_type($ptr))));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_delete_ptr);
    eval 'sub sk_PKCS7_SIGNER_INFO_push {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_push( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk),  &ossl_check_PKCS7_SIGNER_INFO_type($ptr)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_push);
    eval 'sub sk_PKCS7_SIGNER_INFO_unshift {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_unshift( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk),  &ossl_check_PKCS7_SIGNER_INFO_type($ptr)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_unshift);
    eval 'sub sk_PKCS7_SIGNER_INFO_pop {
        my($sk) = @_;
	    eval q((( &PKCS7_SIGNER_INFO *) &OPENSSL_sk_pop( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk))));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_pop);
    eval 'sub sk_PKCS7_SIGNER_INFO_shift {
        my($sk) = @_;
	    eval q((( &PKCS7_SIGNER_INFO *) &OPENSSL_sk_shift( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk))));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_shift);
    eval 'sub sk_PKCS7_SIGNER_INFO_pop_free {
        my($sk, $freefunc) = @_;
	    eval q( &OPENSSL_sk_pop_free( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk), &ossl_check_PKCS7_SIGNER_INFO_freefunc_type($freefunc)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_pop_free);
    eval 'sub sk_PKCS7_SIGNER_INFO_insert {
        my($sk, $ptr, $idx) = @_;
	    eval q( &OPENSSL_sk_insert( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk),  &ossl_check_PKCS7_SIGNER_INFO_type($ptr), ($idx)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_insert);
    eval 'sub sk_PKCS7_SIGNER_INFO_set {
        my($sk, $idx, $ptr) = @_;
	    eval q((( &PKCS7_SIGNER_INFO *) &OPENSSL_sk_set( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk), ($idx),  &ossl_check_PKCS7_SIGNER_INFO_type($ptr))));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_set);
    eval 'sub sk_PKCS7_SIGNER_INFO_find {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_find( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk),  &ossl_check_PKCS7_SIGNER_INFO_type($ptr)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_find);
    eval 'sub sk_PKCS7_SIGNER_INFO_find_ex {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_find_ex( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk),  &ossl_check_PKCS7_SIGNER_INFO_type($ptr)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_find_ex);
    eval 'sub sk_PKCS7_SIGNER_INFO_find_all {
        my($sk, $ptr, $pnum) = @_;
	    eval q( &OPENSSL_sk_find_all( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk),  &ossl_check_PKCS7_SIGNER_INFO_type($ptr), $pnum));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_find_all);
    eval 'sub sk_PKCS7_SIGNER_INFO_sort {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_sort( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_sort);
    eval 'sub sk_PKCS7_SIGNER_INFO_is_sorted {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_is_sorted( &ossl_check_const_PKCS7_SIGNER_INFO_sk_type($sk)));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_is_sorted);
    eval 'sub sk_PKCS7_SIGNER_INFO_dup {
        my($sk) = @_;
	    eval q((( &STACK_OF( &PKCS7_SIGNER_INFO) *) &OPENSSL_sk_dup( &ossl_check_const_PKCS7_SIGNER_INFO_sk_type($sk))));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_dup);
    eval 'sub sk_PKCS7_SIGNER_INFO_deep_copy {
        my($sk, $copyfunc, $freefunc) = @_;
	    eval q((( &STACK_OF( &PKCS7_SIGNER_INFO) *) &OPENSSL_sk_deep_copy( &ossl_check_const_PKCS7_SIGNER_INFO_sk_type($sk),  &ossl_check_PKCS7_SIGNER_INFO_copyfunc_type($copyfunc),  &ossl_check_PKCS7_SIGNER_INFO_freefunc_type($freefunc))));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_deep_copy);
    eval 'sub sk_PKCS7_SIGNER_INFO_set_cmp_func {
        my($sk, $cmp) = @_;
	    eval q((( &sk_PKCS7_SIGNER_INFO_compfunc) &OPENSSL_sk_set_cmp_func( &ossl_check_PKCS7_SIGNER_INFO_sk_type($sk),  &ossl_check_PKCS7_SIGNER_INFO_compfunc_type($cmp))));
    }' unless defined(&sk_PKCS7_SIGNER_INFO_set_cmp_func);
    eval 'sub sk_PKCS7_RECIP_INFO_num {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_num( &ossl_check_const_PKCS7_RECIP_INFO_sk_type($sk)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_num);
    eval 'sub sk_PKCS7_RECIP_INFO_value {
        my($sk, $idx) = @_;
	    eval q((( &PKCS7_RECIP_INFO *) &OPENSSL_sk_value( &ossl_check_const_PKCS7_RECIP_INFO_sk_type($sk), ($idx))));
    }' unless defined(&sk_PKCS7_RECIP_INFO_value);
    eval 'sub sk_PKCS7_RECIP_INFO_new {
        my($cmp) = @_;
	    eval q((( &STACK_OF( &PKCS7_RECIP_INFO) *) &OPENSSL_sk_new( &ossl_check_PKCS7_RECIP_INFO_compfunc_type($cmp))));
    }' unless defined(&sk_PKCS7_RECIP_INFO_new);
    eval 'sub sk_PKCS7_RECIP_INFO_new_null () {
        eval q((( &STACK_OF( &PKCS7_RECIP_INFO) *) &OPENSSL_sk_new_null()));
    }' unless defined(&sk_PKCS7_RECIP_INFO_new_null);
    eval 'sub sk_PKCS7_RECIP_INFO_new_reserve {
        my($cmp, $n) = @_;
	    eval q((( &STACK_OF( &PKCS7_RECIP_INFO) *) &OPENSSL_sk_new_reserve( &ossl_check_PKCS7_RECIP_INFO_compfunc_type($cmp), ($n))));
    }' unless defined(&sk_PKCS7_RECIP_INFO_new_reserve);
    eval 'sub sk_PKCS7_RECIP_INFO_reserve {
        my($sk, $n) = @_;
	    eval q( &OPENSSL_sk_reserve( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk), ($n)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_reserve);
    eval 'sub sk_PKCS7_RECIP_INFO_free {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_free( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_free);
    eval 'sub sk_PKCS7_RECIP_INFO_zero {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_zero( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_zero);
    eval 'sub sk_PKCS7_RECIP_INFO_delete {
        my($sk, $i) = @_;
	    eval q((( &PKCS7_RECIP_INFO *) &OPENSSL_sk_delete( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk), ($i))));
    }' unless defined(&sk_PKCS7_RECIP_INFO_delete);
    eval 'sub sk_PKCS7_RECIP_INFO_delete_ptr {
        my($sk, $ptr) = @_;
	    eval q((( &PKCS7_RECIP_INFO *) &OPENSSL_sk_delete_ptr( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk),  &ossl_check_PKCS7_RECIP_INFO_type($ptr))));
    }' unless defined(&sk_PKCS7_RECIP_INFO_delete_ptr);
    eval 'sub sk_PKCS7_RECIP_INFO_push {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_push( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk),  &ossl_check_PKCS7_RECIP_INFO_type($ptr)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_push);
    eval 'sub sk_PKCS7_RECIP_INFO_unshift {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_unshift( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk),  &ossl_check_PKCS7_RECIP_INFO_type($ptr)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_unshift);
    eval 'sub sk_PKCS7_RECIP_INFO_pop {
        my($sk) = @_;
	    eval q((( &PKCS7_RECIP_INFO *) &OPENSSL_sk_pop( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk))));
    }' unless defined(&sk_PKCS7_RECIP_INFO_pop);
    eval 'sub sk_PKCS7_RECIP_INFO_shift {
        my($sk) = @_;
	    eval q((( &PKCS7_RECIP_INFO *) &OPENSSL_sk_shift( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk))));
    }' unless defined(&sk_PKCS7_RECIP_INFO_shift);
    eval 'sub sk_PKCS7_RECIP_INFO_pop_free {
        my($sk, $freefunc) = @_;
	    eval q( &OPENSSL_sk_pop_free( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk), &ossl_check_PKCS7_RECIP_INFO_freefunc_type($freefunc)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_pop_free);
    eval 'sub sk_PKCS7_RECIP_INFO_insert {
        my($sk, $ptr, $idx) = @_;
	    eval q( &OPENSSL_sk_insert( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk),  &ossl_check_PKCS7_RECIP_INFO_type($ptr), ($idx)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_insert);
    eval 'sub sk_PKCS7_RECIP_INFO_set {
        my($sk, $idx, $ptr) = @_;
	    eval q((( &PKCS7_RECIP_INFO *) &OPENSSL_sk_set( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk), ($idx),  &ossl_check_PKCS7_RECIP_INFO_type($ptr))));
    }' unless defined(&sk_PKCS7_RECIP_INFO_set);
    eval 'sub sk_PKCS7_RECIP_INFO_find {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_find( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk),  &ossl_check_PKCS7_RECIP_INFO_type($ptr)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_find);
    eval 'sub sk_PKCS7_RECIP_INFO_find_ex {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_find_ex( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk),  &ossl_check_PKCS7_RECIP_INFO_type($ptr)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_find_ex);
    eval 'sub sk_PKCS7_RECIP_INFO_find_all {
        my($sk, $ptr, $pnum) = @_;
	    eval q( &OPENSSL_sk_find_all( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk),  &ossl_check_PKCS7_RECIP_INFO_type($ptr), $pnum));
    }' unless defined(&sk_PKCS7_RECIP_INFO_find_all);
    eval 'sub sk_PKCS7_RECIP_INFO_sort {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_sort( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_sort);
    eval 'sub sk_PKCS7_RECIP_INFO_is_sorted {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_is_sorted( &ossl_check_const_PKCS7_RECIP_INFO_sk_type($sk)));
    }' unless defined(&sk_PKCS7_RECIP_INFO_is_sorted);
    eval 'sub sk_PKCS7_RECIP_INFO_dup {
        my($sk) = @_;
	    eval q((( &STACK_OF( &PKCS7_RECIP_INFO) *) &OPENSSL_sk_dup( &ossl_check_const_PKCS7_RECIP_INFO_sk_type($sk))));
    }' unless defined(&sk_PKCS7_RECIP_INFO_dup);
    eval 'sub sk_PKCS7_RECIP_INFO_deep_copy {
        my($sk, $copyfunc, $freefunc) = @_;
	    eval q((( &STACK_OF( &PKCS7_RECIP_INFO) *) &OPENSSL_sk_deep_copy( &ossl_check_const_PKCS7_RECIP_INFO_sk_type($sk),  &ossl_check_PKCS7_RECIP_INFO_copyfunc_type($copyfunc),  &ossl_check_PKCS7_RECIP_INFO_freefunc_type($freefunc))));
    }' unless defined(&sk_PKCS7_RECIP_INFO_deep_copy);
    eval 'sub sk_PKCS7_RECIP_INFO_set_cmp_func {
        my($sk, $cmp) = @_;
	    eval q((( &sk_PKCS7_RECIP_INFO_compfunc) &OPENSSL_sk_set_cmp_func( &ossl_check_PKCS7_RECIP_INFO_sk_type($sk),  &ossl_check_PKCS7_RECIP_INFO_compfunc_type($cmp))));
    }' unless defined(&sk_PKCS7_RECIP_INFO_set_cmp_func);
    eval 'sub PKCS7_S_HEADER () {0;}' unless defined(&PKCS7_S_HEADER);
    eval 'sub PKCS7_S_BODY () {1;}' unless defined(&PKCS7_S_BODY);
    eval 'sub PKCS7_S_TAIL () {2;}' unless defined(&PKCS7_S_TAIL);
    eval 'sub sk_PKCS7_num {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_num( &ossl_check_const_PKCS7_sk_type($sk)));
    }' unless defined(&sk_PKCS7_num);
    eval 'sub sk_PKCS7_value {
        my($sk, $idx) = @_;
	    eval q((( &PKCS7 *) &OPENSSL_sk_value( &ossl_check_const_PKCS7_sk_type($sk), ($idx))));
    }' unless defined(&sk_PKCS7_value);
    eval 'sub sk_PKCS7_new {
        my($cmp) = @_;
	    eval q((( &STACK_OF( &PKCS7) *) &OPENSSL_sk_new( &ossl_check_PKCS7_compfunc_type($cmp))));
    }' unless defined(&sk_PKCS7_new);
    eval 'sub sk_PKCS7_new_null () {
        eval q((( &STACK_OF( &PKCS7) *) &OPENSSL_sk_new_null()));
    }' unless defined(&sk_PKCS7_new_null);
    eval 'sub sk_PKCS7_new_reserve {
        my($cmp, $n) = @_;
	    eval q((( &STACK_OF( &PKCS7) *) &OPENSSL_sk_new_reserve( &ossl_check_PKCS7_compfunc_type($cmp), ($n))));
    }' unless defined(&sk_PKCS7_new_reserve);
    eval 'sub sk_PKCS7_reserve {
        my($sk, $n) = @_;
	    eval q( &OPENSSL_sk_reserve( &ossl_check_PKCS7_sk_type($sk), ($n)));
    }' unless defined(&sk_PKCS7_reserve);
    eval 'sub sk_PKCS7_free {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_free( &ossl_check_PKCS7_sk_type($sk)));
    }' unless defined(&sk_PKCS7_free);
    eval 'sub sk_PKCS7_zero {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_zero( &ossl_check_PKCS7_sk_type($sk)));
    }' unless defined(&sk_PKCS7_zero);
    eval 'sub sk_PKCS7_delete {
        my($sk, $i) = @_;
	    eval q((( &PKCS7 *) &OPENSSL_sk_delete( &ossl_check_PKCS7_sk_type($sk), ($i))));
    }' unless defined(&sk_PKCS7_delete);
    eval 'sub sk_PKCS7_delete_ptr {
        my($sk, $ptr) = @_;
	    eval q((( &PKCS7 *) &OPENSSL_sk_delete_ptr( &ossl_check_PKCS7_sk_type($sk),  &ossl_check_PKCS7_type($ptr))));
    }' unless defined(&sk_PKCS7_delete_ptr);
    eval 'sub sk_PKCS7_push {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_push( &ossl_check_PKCS7_sk_type($sk),  &ossl_check_PKCS7_type($ptr)));
    }' unless defined(&sk_PKCS7_push);
    eval 'sub sk_PKCS7_unshift {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_unshift( &ossl_check_PKCS7_sk_type($sk),  &ossl_check_PKCS7_type($ptr)));
    }' unless defined(&sk_PKCS7_unshift);
    eval 'sub sk_PKCS7_pop {
        my($sk) = @_;
	    eval q((( &PKCS7 *) &OPENSSL_sk_pop( &ossl_check_PKCS7_sk_type($sk))));
    }' unless defined(&sk_PKCS7_pop);
    eval 'sub sk_PKCS7_shift {
        my($sk) = @_;
	    eval q((( &PKCS7 *) &OPENSSL_sk_shift( &ossl_check_PKCS7_sk_type($sk))));
    }' unless defined(&sk_PKCS7_shift);
    eval 'sub sk_PKCS7_pop_free {
        my($sk, $freefunc) = @_;
	    eval q( &OPENSSL_sk_pop_free( &ossl_check_PKCS7_sk_type($sk), &ossl_check_PKCS7_freefunc_type($freefunc)));
    }' unless defined(&sk_PKCS7_pop_free);
    eval 'sub sk_PKCS7_insert {
        my($sk, $ptr, $idx) = @_;
	    eval q( &OPENSSL_sk_insert( &ossl_check_PKCS7_sk_type($sk),  &ossl_check_PKCS7_type($ptr), ($idx)));
    }' unless defined(&sk_PKCS7_insert);
    eval 'sub sk_PKCS7_set {
        my($sk, $idx, $ptr) = @_;
	    eval q((( &PKCS7 *) &OPENSSL_sk_set( &ossl_check_PKCS7_sk_type($sk), ($idx),  &ossl_check_PKCS7_type($ptr))));
    }' unless defined(&sk_PKCS7_set);
    eval 'sub sk_PKCS7_find {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_find( &ossl_check_PKCS7_sk_type($sk),  &ossl_check_PKCS7_type($ptr)));
    }' unless defined(&sk_PKCS7_find);
    eval 'sub sk_PKCS7_find_ex {
        my($sk, $ptr) = @_;
	    eval q( &OPENSSL_sk_find_ex( &ossl_check_PKCS7_sk_type($sk),  &ossl_check_PKCS7_type($ptr)));
    }' unless defined(&sk_PKCS7_find_ex);
    eval 'sub sk_PKCS7_find_all {
        my($sk, $ptr, $pnum) = @_;
	    eval q( &OPENSSL_sk_find_all( &ossl_check_PKCS7_sk_type($sk),  &ossl_check_PKCS7_type($ptr), $pnum));
    }' unless defined(&sk_PKCS7_find_all);
    eval 'sub sk_PKCS7_sort {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_sort( &ossl_check_PKCS7_sk_type($sk)));
    }' unless defined(&sk_PKCS7_sort);
    eval 'sub sk_PKCS7_is_sorted {
        my($sk) = @_;
	    eval q( &OPENSSL_sk_is_sorted( &ossl_check_const_PKCS7_sk_type($sk)));
    }' unless defined(&sk_PKCS7_is_sorted);
    eval 'sub sk_PKCS7_dup {
        my($sk) = @_;
	    eval q((( &STACK_OF( &PKCS7) *) &OPENSSL_sk_dup( &ossl_check_const_PKCS7_sk_type($sk))));
    }' unless defined(&sk_PKCS7_dup);
    eval 'sub sk_PKCS7_deep_copy {
        my($sk, $copyfunc, $freefunc) = @_;
	    eval q((( &STACK_OF( &PKCS7) *) &OPENSSL_sk_deep_copy( &ossl_check_const_PKCS7_sk_type($sk),  &ossl_check_PKCS7_copyfunc_type($copyfunc),  &ossl_check_PKCS7_freefunc_type($freefunc))));
    }' unless defined(&sk_PKCS7_deep_copy);
    eval 'sub sk_PKCS7_set_cmp_func {
        my($sk, $cmp) = @_;
	    eval q((( &sk_PKCS7_compfunc) &OPENSSL_sk_set_cmp_func( &ossl_check_PKCS7_sk_type($sk),  &ossl_check_PKCS7_compfunc_type($cmp))));
    }' unless defined(&sk_PKCS7_set_cmp_func);
    eval 'sub PKCS7_OP_SET_DETACHED_SIGNATURE () {1;}' unless defined(&PKCS7_OP_SET_DETACHED_SIGNATURE);
    eval 'sub PKCS7_OP_GET_DETACHED_SIGNATURE () {2;}' unless defined(&PKCS7_OP_GET_DETACHED_SIGNATURE);
    eval 'sub PKCS7_get_signed_attributes {
        my($si) = @_;
	    eval q((($si)-> &auth_attr));
    }' unless defined(&PKCS7_get_signed_attributes);
    eval 'sub PKCS7_get_attributes {
        my($si) = @_;
	    eval q((($si)-> &unauth_attr));
    }' unless defined(&PKCS7_get_attributes);
    eval 'sub PKCS7_type_is_signed {
        my($a) = @_;
	    eval q(( &OBJ_obj2nid(($a)-> &type) ==  &NID_pkcs7_signed));
    }' unless defined(&PKCS7_type_is_signed);
    eval 'sub PKCS7_type_is_encrypted {
        my($a) = @_;
	    eval q(( &OBJ_obj2nid(($a)-> &type) ==  &NID_pkcs7_encrypted));
    }' unless defined(&PKCS7_type_is_encrypted);
    eval 'sub PKCS7_type_is_enveloped {
        my($a) = @_;
	    eval q(( &OBJ_obj2nid(($a)-> &type) ==  &NID_pkcs7_enveloped));
    }' unless defined(&PKCS7_type_is_enveloped);
    eval 'sub PKCS7_type_is_signedAndEnveloped {
        my($a) = @_;
	    eval q(( &OBJ_obj2nid(($a)-> &type) ==  &NID_pkcs7_signedAndEnveloped));
    }' unless defined(&PKCS7_type_is_signedAndEnveloped);
    eval 'sub PKCS7_type_is_data {
        my($a) = @_;
	    eval q(( &OBJ_obj2nid(($a)-> &type) ==  &NID_pkcs7_data));
    }' unless defined(&PKCS7_type_is_data);
    eval 'sub PKCS7_type_is_digest {
        my($a) = @_;
	    eval q(( &OBJ_obj2nid(($a)-> &type) ==  &NID_pkcs7_digest));
    }' unless defined(&PKCS7_type_is_digest);
    eval 'sub PKCS7_set_detached {
        my($p, $v) = @_;
	    eval q( &PKCS7_ctrl($p,  &PKCS7_OP_SET_DETACHED_SIGNATURE, $v,  &NULL));
    }' unless defined(&PKCS7_set_detached);
    eval 'sub PKCS7_get_detached {
        my($p) = @_;
	    eval q( &PKCS7_ctrl($p,  &PKCS7_OP_GET_DETACHED_SIGNATURE, 0,  &NULL));
    }' unless defined(&PKCS7_get_detached);
    eval 'sub PKCS7_is_detached {
        my($p7) = @_;
	    eval q(( &PKCS7_type_is_signed($p7)  &&  &PKCS7_get_detached($p7)));
    }' unless defined(&PKCS7_is_detached);
    eval 'sub PKCS7_TEXT () {0x1;}' unless defined(&PKCS7_TEXT);
    eval 'sub PKCS7_NOCERTS () {0x2;}' unless defined(&PKCS7_NOCERTS);
    eval 'sub PKCS7_NOSIGS () {0x4;}' unless defined(&PKCS7_NOSIGS);
    eval 'sub PKCS7_NOCHAIN () {0x8;}' unless defined(&PKCS7_NOCHAIN);
    eval 'sub PKCS7_NOINTERN () {0x10;}' unless defined(&PKCS7_NOINTERN);
    eval 'sub PKCS7_NOVERIFY () {0x20;}' unless defined(&PKCS7_NOVERIFY);
    eval 'sub PKCS7_DETACHED () {0x40;}' unless defined(&PKCS7_DETACHED);
    eval 'sub PKCS7_BINARY () {0x80;}' unless defined(&PKCS7_BINARY);
    eval 'sub PKCS7_NOATTR () {0x100;}' unless defined(&PKCS7_NOATTR);
    eval 'sub PKCS7_NOSMIMECAP () {0x200;}' unless defined(&PKCS7_NOSMIMECAP);
    eval 'sub PKCS7_NOOLDMIMETYPE () {0x400;}' unless defined(&PKCS7_NOOLDMIMETYPE);
    eval 'sub PKCS7_CRLFEOL () {0x800;}' unless defined(&PKCS7_CRLFEOL);
    eval 'sub PKCS7_STREAM () {0x1000;}' unless defined(&PKCS7_STREAM);
    eval 'sub PKCS7_NOCRL () {0x2000;}' unless defined(&PKCS7_NOCRL);
    eval 'sub PKCS7_PARTIAL () {0x4000;}' unless defined(&PKCS7_PARTIAL);
    eval 'sub PKCS7_REUSE_DIGEST () {0x8000;}' unless defined(&PKCS7_REUSE_DIGEST);
    eval 'sub PKCS7_NO_DUAL_CONTENT () {0x10000;}' unless defined(&PKCS7_NO_DUAL_CONTENT);
    eval 'sub SMIME_TEXT () { &PKCS7_TEXT;}' unless defined(&SMIME_TEXT);
    eval 'sub SMIME_NOCERTS () { &PKCS7_NOCERTS;}' unless defined(&SMIME_NOCERTS);
    eval 'sub SMIME_NOSIGS () { &PKCS7_NOSIGS;}' unless defined(&SMIME_NOSIGS);
    eval 'sub SMIME_NOCHAIN () { &PKCS7_NOCHAIN;}' unless defined(&SMIME_NOCHAIN);
    eval 'sub SMIME_NOINTERN () { &PKCS7_NOINTERN;}' unless defined(&SMIME_NOINTERN);
    eval 'sub SMIME_NOVERIFY () { &PKCS7_NOVERIFY;}' unless defined(&SMIME_NOVERIFY);
    eval 'sub SMIME_DETACHED () { &PKCS7_DETACHED;}' unless defined(&SMIME_DETACHED);
    eval 'sub SMIME_BINARY () { &PKCS7_BINARY;}' unless defined(&SMIME_BINARY);
    eval 'sub SMIME_NOATTR () { &PKCS7_NOATTR;}' unless defined(&SMIME_NOATTR);
    eval 'sub SMIME_ASCIICRLF () {0x80000;}' unless defined(&SMIME_ASCIICRLF);
    unless(defined(&OPENSSL_NO_STDIO)) {
    }
    if(defined(&__cplusplus)) {
    }
}
1;
