require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&HEIMDAL_HX509_H)) {
    eval 'sub HEIMDAL_HX509_H () {1;}' unless defined(&HEIMDAL_HX509_H);
    require 'krb5/rfc2459_asn1.ph';
    require 'stdarg.ph';
    require 'stdio.ph';
    require 'krb5/heimbase.ph';
    eval("sub HX509_VHN_F_ALLOW_NO_MATCH () { 1; }") unless defined(&HX509_VHN_F_ALLOW_NO_MATCH);
    eval("sub HX509_VALIDATE_F_VALIDATE () { 1; }") unless defined(&HX509_VALIDATE_F_VALIDATE);
    eval("sub HX509_VALIDATE_F_VERBOSE () { 2; }") unless defined(&HX509_VALIDATE_F_VERBOSE);
    eval("sub HX509_CRYPTO_PADDING_PKCS7 () { 0; }") unless defined(&HX509_CRYPTO_PADDING_PKCS7);
    eval("sub HX509_CRYPTO_PADDING_NONE () { 1; }") unless defined(&HX509_CRYPTO_PADDING_NONE);
    eval("sub HX509_KEY_FORMAT_GUESS () { 0; }") unless defined(&HX509_KEY_FORMAT_GUESS);
    eval("sub HX509_KEY_FORMAT_DER () { 1; }") unless defined(&HX509_KEY_FORMAT_DER);
    eval("sub HX509_KEY_FORMAT_WIN_BACKUPKEY () { 2; }") unless defined(&HX509_KEY_FORMAT_WIN_BACKUPKEY);
    eval("sub HX509_PROMPT_TYPE_PASSWORD () { 0x1; }") unless defined(&HX509_PROMPT_TYPE_PASSWORD);
    eval("sub HX509_PROMPT_TYPE_QUESTION () { 0x2; }") unless defined(&HX509_PROMPT_TYPE_QUESTION);
    eval("sub HX509_PROMPT_TYPE_INFO () { 0x4; }") unless defined(&HX509_PROMPT_TYPE_INFO);
    eval("sub HX509_QUERY_OPTION_PRIVATE_KEY () { 1; }") unless defined(&HX509_QUERY_OPTION_PRIVATE_KEY);
    eval("sub HX509_QUERY_OPTION_KU_ENCIPHERMENT () { 2; }") unless defined(&HX509_QUERY_OPTION_KU_ENCIPHERMENT);
    eval("sub HX509_QUERY_OPTION_KU_DIGITALSIGNATURE () { 3; }") unless defined(&HX509_QUERY_OPTION_KU_DIGITALSIGNATURE);
    eval("sub HX509_QUERY_OPTION_KU_KEYCERTSIGN () { 4; }") unless defined(&HX509_QUERY_OPTION_KU_KEYCERTSIGN);
    eval("sub HX509_QUERY_OPTION_END () { 0xffff; }") unless defined(&HX509_QUERY_OPTION_END);
    eval 'sub HX509_CERTS_CREATE () {0x1;}' unless defined(&HX509_CERTS_CREATE);
    eval 'sub HX509_CERTS_UNPROTECT_ALL () {0x2;}' unless defined(&HX509_CERTS_UNPROTECT_ALL);
    eval 'sub HX509_ERROR_APPEND () {0x1;}' unless defined(&HX509_ERROR_APPEND);
    eval 'sub HX509_CMS_UE_DONT_REQUIRE_KU_ENCIPHERMENT () {0x1;}' unless defined(&HX509_CMS_UE_DONT_REQUIRE_KU_ENCIPHERMENT);
    eval 'sub HX509_CMS_UE_ALLOW_WEAK () {0x2;}' unless defined(&HX509_CMS_UE_ALLOW_WEAK);
    eval 'sub HX509_CMS_EV_NO_KU_CHECK () {0x1;}' unless defined(&HX509_CMS_EV_NO_KU_CHECK);
    eval 'sub HX509_CMS_EV_ALLOW_WEAK () {0x2;}' unless defined(&HX509_CMS_EV_ALLOW_WEAK);
    eval 'sub HX509_CMS_EV_ID_NAME () {0x4;}' unless defined(&HX509_CMS_EV_ID_NAME);
    eval 'sub HX509_CMS_VS_ALLOW_DATA_OID_MISMATCH () {0x1;}' unless defined(&HX509_CMS_VS_ALLOW_DATA_OID_MISMATCH);
    eval 'sub HX509_CMS_VS_NO_KU_CHECK () {0x2;}' unless defined(&HX509_CMS_VS_NO_KU_CHECK);
    eval 'sub HX509_CMS_VS_ALLOW_ZERO_SIGNER () {0x4;}' unless defined(&HX509_CMS_VS_ALLOW_ZERO_SIGNER);
    eval 'sub HX509_CMS_VS_NO_VALIDATE () {0x8;}' unless defined(&HX509_CMS_VS_NO_VALIDATE);
    eval 'sub HX509_SELECT_ALL () {0;}' unless defined(&HX509_SELECT_ALL);
    eval 'sub HX509_SELECT_DIGEST () {1;}' unless defined(&HX509_SELECT_DIGEST);
    eval 'sub HX509_SELECT_PUBLIC_SIG () {2;}' unless defined(&HX509_SELECT_PUBLIC_SIG);
    eval 'sub HX509_SELECT_PUBLIC_ENC () {3;}' unless defined(&HX509_SELECT_PUBLIC_ENC);
    eval 'sub HX509_SELECT_SECRET_ENC () {4;}' unless defined(&HX509_SELECT_SECRET_ENC);
    eval 'sub HX509_CA_TEMPLATE_SUBJECT () {1;}' unless defined(&HX509_CA_TEMPLATE_SUBJECT);
    eval 'sub HX509_CA_TEMPLATE_SERIAL () {2;}' unless defined(&HX509_CA_TEMPLATE_SERIAL);
    eval 'sub HX509_CA_TEMPLATE_NOTBEFORE () {4;}' unless defined(&HX509_CA_TEMPLATE_NOTBEFORE);
    eval 'sub HX509_CA_TEMPLATE_NOTAFTER () {8;}' unless defined(&HX509_CA_TEMPLATE_NOTAFTER);
    eval 'sub HX509_CA_TEMPLATE_SPKI () {16;}' unless defined(&HX509_CA_TEMPLATE_SPKI);
    eval 'sub HX509_CA_TEMPLATE_KU () {32;}' unless defined(&HX509_CA_TEMPLATE_KU);
    eval 'sub HX509_CA_TEMPLATE_EKU () {64;}' unless defined(&HX509_CA_TEMPLATE_EKU);
    eval 'sub HX509_CMS_SIGNATURE_DETACHED () {0x1;}' unless defined(&HX509_CMS_SIGNATURE_DETACHED);
    eval 'sub HX509_CMS_SIGNATURE_ID_NAME () {0x2;}' unless defined(&HX509_CMS_SIGNATURE_ID_NAME);
    eval 'sub HX509_CMS_SIGNATURE_NO_SIGNER () {0x4;}' unless defined(&HX509_CMS_SIGNATURE_NO_SIGNER);
    eval 'sub HX509_CMS_SIGNATURE_LEAF_ONLY () {0x8;}' unless defined(&HX509_CMS_SIGNATURE_LEAF_ONLY);
    eval 'sub HX509_CMS_SIGNATURE_NO_CERTS () {0x10;}' unless defined(&HX509_CMS_SIGNATURE_NO_CERTS);
    eval("sub HX509_HN_HOSTNAME () { 0; }") unless defined(&HX509_HN_HOSTNAME);
    eval("sub HX509_HN_DNSSRV () { 1; }") unless defined(&HX509_HN_DNSSRV);
    require 'krb5/hx509-protos.ph';
    require 'krb5/hx509_err.ph';
}
1;
