#!/usr/bin/perl # DO NOT EDIT THIS FILE - update __DATA__ section of helper_script/regen_openssl_constants.pl use strict; use warnings; use Net::SSLeay; eval "use Test::Exception;"; if ($@) { eval "use Test::More skip_all => 'Some tests need Test::Exception';"; } else { eval 'use Test::More tests => 406;'; } my @c = (qw/ ASN1_STRFLGS_ESC_CTRL NID_ext_req OP_CISCO_ANYCONNECT ASN1_STRFLGS_ESC_MSB NID_friendlyName OP_COOKIE_EXCHANGE ASN1_STRFLGS_ESC_QUOTE NID_givenName OP_CRYPTOPRO_TLSEXT_BUG ASN1_STRFLGS_RFC2253 NID_hmacWithSHA1 OP_DONT_INSERT_EMPTY_FRAGMENTS CB_ACCEPT_EXIT NID_id_ad OP_EPHEMERAL_RSA CB_ACCEPT_LOOP NID_id_ce OP_LEGACY_SERVER_CONNECT CB_CONNECT_EXIT NID_id_kp OP_MICROSOFT_BIG_SSLV3_BUFFER CB_CONNECT_LOOP NID_id_pbkdf2 OP_MICROSOFT_SESS_ID_BUG ERROR_NONE NID_id_pe OP_MSIE_SSLV2_RSA_PADDING ERROR_SSL NID_id_pkix OP_NETSCAPE_CA_DN_BUG ERROR_SYSCALL NID_id_qt_cps OP_NETSCAPE_CHALLENGE_BUG ERROR_WANT_ACCEPT NID_id_qt_unotice OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG ERROR_WANT_CONNECT NID_idea_cbc OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG ERROR_WANT_READ NID_idea_cfb64 OP_NON_EXPORT_FIRST ERROR_WANT_WRITE NID_idea_ecb OP_NO_COMPRESSION ERROR_WANT_X509_LOOKUP NID_idea_ofb64 OP_NO_QUERY_MTU ERROR_ZERO_RETURN NID_info_access OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION EVP_PKS_DSA NID_initials OP_NO_SSLv2 EVP_PKS_EC NID_invalidity_date OP_NO_SSLv3 EVP_PKS_RSA NID_issuer_alt_name OP_NO_TICKET EVP_PKT_ENC NID_keyBag OP_NO_TLSv1 EVP_PKT_EXCH NID_key_usage OP_NO_TLSv1_1 EVP_PKT_EXP NID_localKeyID OP_NO_TLSv1_2 EVP_PKT_SIGN NID_localityName OP_PKCS1_CHECK_1 EVP_PK_DH NID_md2 OP_PKCS1_CHECK_2 EVP_PK_DSA NID_md2WithRSAEncryption OP_SINGLE_DH_USE EVP_PK_EC NID_md5 OP_SINGLE_ECDH_USE EVP_PK_RSA NID_md5WithRSA OP_SSLEAY_080_CLIENT_DH_BUG FILETYPE_ASN1 NID_md5WithRSAEncryption OP_SSLREF2_REUSE_CERT_TYPE_BUG FILETYPE_PEM NID_md5_sha1 OP_TLS_BLOCK_PADDING_BUG F_CLIENT_CERTIFICATE NID_mdc2 OP_TLS_D5_BUG F_CLIENT_HELLO NID_mdc2WithRSA OP_TLS_ROLLBACK_BUG F_CLIENT_MASTER_KEY NID_ms_code_com READING F_D2I_SSL_SESSION NID_ms_code_ind RECEIVED_SHUTDOWN F_GET_CLIENT_FINISHED NID_ms_ctl_sign RSA_3 F_GET_CLIENT_HELLO NID_ms_efs RSA_F4 F_GET_CLIENT_MASTER_KEY NID_ms_ext_req R_BAD_AUTHENTICATION_TYPE F_GET_SERVER_FINISHED NID_ms_sgc R_BAD_CHECKSUM F_GET_SERVER_HELLO NID_name R_BAD_MAC_DECODE F_GET_SERVER_VERIFY NID_netscape R_BAD_RESPONSE_ARGUMENT F_I2D_SSL_SESSION NID_netscape_base_url R_BAD_SSL_FILETYPE F_READ_N NID_netscape_ca_policy_url R_BAD_SSL_SESSION_ID_LENGTH F_REQUEST_CERTIFICATE NID_netscape_ca_revocation_url R_BAD_STATE F_SERVER_HELLO NID_netscape_cert_extension R_BAD_WRITE_RETRY F_SSL_CERT_NEW NID_netscape_cert_sequence R_CHALLENGE_IS_DIFFERENT F_SSL_GET_NEW_SESSION NID_netscape_cert_type R_CIPHER_TABLE_SRC_ERROR F_SSL_NEW NID_netscape_comment R_INVALID_CHALLENGE_LENGTH F_SSL_READ NID_netscape_data_type R_NO_CERTIFICATE_SET F_SSL_RSA_PRIVATE_DECRYPT NID_netscape_renewal_url R_NO_CERTIFICATE_SPECIFIED F_SSL_RSA_PUBLIC_ENCRYPT NID_netscape_revocation_url R_NO_CIPHER_LIST F_SSL_SESSION_NEW NID_netscape_ssl_server_name R_NO_CIPHER_MATCH F_SSL_SESSION_PRINT_FP NID_ns_sgc R_NO_PRIVATEKEY F_SSL_SET_FD NID_organizationName R_NO_PUBLICKEY F_SSL_SET_RFD NID_organizationalUnitName R_NULL_SSL_CTX F_SSL_SET_WFD NID_pbeWithMD2AndDES_CBC R_PEER_DID_NOT_RETURN_A_CERTIFICATE F_SSL_USE_CERTIFICATE NID_pbeWithMD2AndRC2_CBC R_PEER_ERROR F_SSL_USE_CERTIFICATE_ASN1 NID_pbeWithMD5AndCast5_CBC R_PEER_ERROR_CERTIFICATE F_SSL_USE_CERTIFICATE_FILE NID_pbeWithMD5AndDES_CBC R_PEER_ERROR_NO_CIPHER F_SSL_USE_PRIVATEKEY NID_pbeWithMD5AndRC2_CBC R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE F_SSL_USE_PRIVATEKEY_ASN1 NID_pbeWithSHA1AndDES_CBC R_PUBLIC_KEY_ENCRYPT_ERROR F_SSL_USE_PRIVATEKEY_FILE NID_pbeWithSHA1AndRC2_CBC R_PUBLIC_KEY_IS_NOT_RSA F_SSL_USE_RSAPRIVATEKEY NID_pbe_WithSHA1And128BitRC2_CBC R_READ_WRONG_PACKET_TYPE F_SSL_USE_RSAPRIVATEKEY_ASN1 NID_pbe_WithSHA1And128BitRC4 R_SHORT_READ F_SSL_USE_RSAPRIVATEKEY_FILE NID_pbe_WithSHA1And2_Key_TripleDES_CBC R_SSL_SESSION_ID_IS_DIFFERENT F_WRITE_PENDING NID_pbe_WithSHA1And3_Key_TripleDES_CBC R_UNABLE_TO_EXTRACT_PUBLIC_KEY GEN_DIRNAME NID_pbe_WithSHA1And40BitRC2_CBC R_UNKNOWN_REMOTE_ERROR_TYPE GEN_DNS NID_pbe_WithSHA1And40BitRC4 R_UNKNOWN_STATE GEN_EDIPARTY NID_pbes2 R_X509_LIB GEN_EMAIL NID_pbmac1 SENT_SHUTDOWN GEN_IPADD NID_pkcs SESSION_ASN1_VERSION GEN_OTHERNAME NID_pkcs3 ST_ACCEPT GEN_RID NID_pkcs7 ST_BEFORE GEN_URI NID_pkcs7_data ST_CONNECT GEN_X400 NID_pkcs7_digest ST_INIT MBSTRING_ASC NID_pkcs7_encrypted ST_OK MBSTRING_BMP NID_pkcs7_enveloped ST_READ_BODY MBSTRING_FLAG NID_pkcs7_signed ST_READ_HEADER MBSTRING_UNIV NID_pkcs7_signedAndEnveloped VERIFY_CLIENT_ONCE MBSTRING_UTF8 NID_pkcs8ShroudedKeyBag VERIFY_FAIL_IF_NO_PEER_CERT MIN_RSA_MODULUS_LENGTH_IN_BYTES NID_pkcs9 VERIFY_NONE MODE_ACCEPT_MOVING_WRITE_BUFFER NID_pkcs9_challengePassword VERIFY_PEER MODE_AUTO_RETRY NID_pkcs9_contentType WRITING MODE_ENABLE_PARTIAL_WRITE NID_pkcs9_countersignature X509_LOOKUP MODE_RELEASE_BUFFERS NID_pkcs9_emailAddress X509_PURPOSE_ANY NID_OCSP_sign NID_pkcs9_extCertAttributes X509_PURPOSE_CRL_SIGN NID_SMIMECapabilities NID_pkcs9_messageDigest X509_PURPOSE_NS_SSL_SERVER NID_X500 NID_pkcs9_signingTime X509_PURPOSE_OCSP_HELPER NID_X509 NID_pkcs9_unstructuredAddress X509_PURPOSE_SMIME_ENCRYPT NID_ad_OCSP NID_pkcs9_unstructuredName X509_PURPOSE_SMIME_SIGN NID_ad_ca_issuers NID_private_key_usage_period X509_PURPOSE_SSL_CLIENT NID_algorithm NID_rc2_40_cbc X509_PURPOSE_SSL_SERVER NID_authority_key_identifier NID_rc2_64_cbc X509_PURPOSE_TIMESTAMP_SIGN NID_basic_constraints NID_rc2_cbc X509_TRUST_COMPAT NID_bf_cbc NID_rc2_cfb64 X509_TRUST_EMAIL NID_bf_cfb64 NID_rc2_ecb X509_TRUST_OBJECT_SIGN NID_bf_ecb NID_rc2_ofb64 X509_TRUST_OCSP_REQUEST NID_bf_ofb64 NID_rc4 X509_TRUST_OCSP_SIGN NID_cast5_cbc NID_rc4_40 X509_TRUST_SSL_CLIENT NID_cast5_cfb64 NID_rc5_cbc X509_TRUST_SSL_SERVER NID_cast5_ecb NID_rc5_cfb64 X509_TRUST_TSA NID_cast5_ofb64 NID_rc5_ecb X509_V_FLAG_ALLOW_PROXY_CERTS NID_certBag NID_rc5_ofb64 X509_V_FLAG_CB_ISSUER_CHECK NID_certificate_policies NID_ripemd160 X509_V_FLAG_CHECK_SS_SIGNATURE NID_client_auth NID_ripemd160WithRSA X509_V_FLAG_CRL_CHECK NID_code_sign NID_rle_compression X509_V_FLAG_CRL_CHECK_ALL NID_commonName NID_rsa X509_V_FLAG_EXPLICIT_POLICY NID_countryName NID_rsaEncryption X509_V_FLAG_EXTENDED_CRL_SUPPORT NID_crlBag NID_rsadsi X509_V_FLAG_IGNORE_CRITICAL NID_crl_distribution_points NID_safeContentsBag X509_V_FLAG_INHIBIT_ANY NID_crl_number NID_sdsiCertificate X509_V_FLAG_INHIBIT_MAP NID_crl_reason NID_secretBag X509_V_FLAG_NOTIFY_POLICY NID_delta_crl NID_serialNumber X509_V_FLAG_POLICY_CHECK NID_des_cbc NID_server_auth X509_V_FLAG_POLICY_MASK NID_des_cfb64 NID_sha X509_V_FLAG_USE_CHECK_TIME NID_des_ecb NID_sha1 X509_V_FLAG_USE_DELTAS NID_des_ede NID_sha1WithRSA X509_V_FLAG_X509_STRICT NID_des_ede3 NID_sha1WithRSAEncryption X509_V_OK NID_des_ede3_cbc NID_shaWithRSAEncryption XN_FLAG_COMPAT NID_des_ede3_cfb64 NID_stateOrProvinceName XN_FLAG_DN_REV NID_des_ede3_ofb64 NID_subject_alt_name XN_FLAG_DUMP_UNKNOWN_FIELDS NID_des_ede_cbc NID_subject_key_identifier XN_FLAG_FN_ALIGN NID_des_ede_cfb64 NID_surname XN_FLAG_FN_LN NID_des_ede_ofb64 NID_sxnet XN_FLAG_FN_MASK NID_des_ofb64 NID_time_stamp XN_FLAG_FN_NONE NID_description NID_title XN_FLAG_FN_OID NID_desx_cbc NID_undef XN_FLAG_FN_SN NID_dhKeyAgreement NID_uniqueIdentifier XN_FLAG_MULTILINE NID_dnQualifier NID_x509Certificate XN_FLAG_ONELINE NID_dsa NID_x509Crl XN_FLAG_RFC2253 NID_dsaWithSHA NID_zlib_compression XN_FLAG_SEP_COMMA_PLUS NID_dsaWithSHA1 NOTHING XN_FLAG_SEP_CPLUS_SPC NID_dsaWithSHA1_2 OPENSSL_VERSION_NUMBER XN_FLAG_SEP_MASK NID_dsa_2 OP_ALL XN_FLAG_SEP_MULTILINE NID_email_protect OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION XN_FLAG_SEP_SPLUS_SPC NID_ext_key_usage OP_CIPHER_SERVER_PREFERENCE XN_FLAG_SPC_EQ /); my @missing; my %h = map { $_=>1 } @Net::SSLeay::EXPORT_OK; for (@c) { like(eval("&Net::SSLeay::$_; 'ok'") || $@, qr/^(ok|Your vendor has not defined SSLeay macro.*)$/, "$_"); push(@missing, $_) unless $h{$_}; } is(join(",", sort @missing), '', 'constants missing in @EXPORT_OK count='.scalar(@missing));