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