require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&HEADER_DES_H)) {
    eval 'sub HEADER_DES_H () {1;}' unless defined(&HEADER_DES_H);
    require 'sys/types.ph';
    unless(defined(&_KERNEL)) {
	require 'stdio.ph';
    }
    undef(&_) if defined(&_);
    eval 'sub _ () { ($ks->{_});}' unless defined(&_);
    eval 'sub DES_KEY_SZ () {($sizeof{ &des_cblock});}' unless defined(&DES_KEY_SZ);
    eval 'sub DES_SCHEDULE_SZ () {($sizeof{ &des_key_schedule});}' unless defined(&DES_SCHEDULE_SZ);
    eval 'sub DES_ENCRYPT () {1;}' unless defined(&DES_ENCRYPT);
    eval 'sub DES_DECRYPT () {0;}' unless defined(&DES_DECRYPT);
    eval 'sub DES_CBC_MODE () {0;}' unless defined(&DES_CBC_MODE);
    eval 'sub DES_PCBC_MODE () {1;}' unless defined(&DES_PCBC_MODE);
    eval 'sub des_ecb2_encrypt {
        my($i,$o,$k1,$k2,$e) = @_;
	    eval q( &des_ecb3_encrypt(($i),($o),($k1),($k2),($k1),($e)));
    }' unless defined(&des_ecb2_encrypt);
    eval 'sub des_ede2_cbc_encrypt {
        my($i,$o,$l,$k1,$k2,$iv,$e) = @_;
	    eval q( &des_ede3_cbc_encrypt(($i),($o),($l),($k1),($k2),($k1),($iv),($e)));
    }' unless defined(&des_ede2_cbc_encrypt);
    eval 'sub des_ede2_cfb64_encrypt {
        my($i,$o,$l,$k1,$k2,$iv,$n,$e) = @_;
	    eval q( &des_ede3_cfb64_encrypt(($i),($o),($l),($k1),($k2),($k1),($iv),($n),($e)));
    }' unless defined(&des_ede2_cfb64_encrypt);
    eval 'sub des_ede2_ofb64_encrypt {
        my($i,$o,$l,$k1,$k2,$iv,$n) = @_;
	    eval q( &des_ede3_ofb64_encrypt(($i),($o),($l),($k1),($k2),($k1),($iv),($n)));
    }' unless defined(&des_ede2_ofb64_encrypt);
    eval 'sub C_Block () { &des_cblock;}' unless defined(&C_Block);
    eval 'sub Key_schedule () { &des_key_schedule;}' unless defined(&Key_schedule);
    eval 'sub ENCRYPT () { &DES_ENCRYPT;}' unless defined(&ENCRYPT);
    eval 'sub DECRYPT () { &DES_DECRYPT;}' unless defined(&DECRYPT);
    eval 'sub KEY_SZ () { &DES_KEY_SZ;}' unless defined(&KEY_SZ);
    eval 'sub string_to_key () { &des_string_to_key;}' unless defined(&string_to_key);
    eval 'sub read_pw_string () { &des_read_pw_string;}' unless defined(&read_pw_string);
    eval 'sub random_key () { &des_random_key;}' unless defined(&random_key);
    eval 'sub pcbc_encrypt () { &des_pcbc_encrypt;}' unless defined(&pcbc_encrypt);
    eval 'sub set_key () { &des_set_key;}' unless defined(&set_key);
    eval 'sub key_sched () { &des_key_sched;}' unless defined(&key_sched);
    eval 'sub ecb_encrypt () { &des_ecb_encrypt;}' unless defined(&ecb_encrypt);
    eval 'sub cbc_encrypt () { &des_cbc_encrypt;}' unless defined(&cbc_encrypt);
    eval 'sub ncbc_encrypt () { &des_ncbc_encrypt;}' unless defined(&ncbc_encrypt);
    eval 'sub cbc_cksum () { &des_cbc_cksum;}' unless defined(&cbc_cksum);
    eval 'sub quad_cksum () { &des_quad_cksum;}' unless defined(&quad_cksum);
    eval 'sub des_fixup_key_parity () { &des_set_odd_parity;}' unless defined(&des_fixup_key_parity);
    eval 'sub des_check_key_parity () { &check_parity;}' unless defined(&des_check_key_parity);
    if(defined( &__STDC__)) {
	undef(&PROTO) if defined(&PROTO);
	eval 'sub PROTO () {1;}' unless defined(&PROTO);
    }
    if(defined(&PROTO)) {
	if(defined(&PERL5)) {
	} else {
	    if(defined(&HEADER_DES_LOCL_H)) {
	    } else {
	    }
	}
    } else {
	if(defined(&PERL5)) {
	} else {
	}
    }
}
1;
