This commit is contained in:
Zhi Guan
2015-08-15 15:02:15 +08:00
parent 06df2fab54
commit 3bdc0ea895
2536 changed files with 417052 additions and 271997 deletions

View File

@@ -21,7 +21,7 @@ foreach $file (@ARGV)
$func="";
while (<IN>)
{
if (!/;$/ && /^([a-zA-Z].*[\s*])?([A-Za-z_0-9]+)\(.*[),]/)
if (!/;$/ && /^\**([a-zA-Z].*[\s*])?([A-Za-z_0-9]+)\(.*([),]|$)/)
{
/^([^()]*(\([^()]*\)[^()]*)*)\(/;
$1 =~ /([A-Za-z_0-9]*)$/;

78
util/copy-if-different.pl Normal file
View File

@@ -0,0 +1,78 @@
#!/usr/local/bin/perl
use strict;
use Fcntl;
# copy-if-different.pl
# Copy to the destination if the source is not the same as it.
my @filelist;
foreach my $arg (@ARGV) {
$arg =~ s|\\|/|g; # compensate for bug/feature in cygwin glob...
foreach (glob $arg)
{
push @filelist, $_;
}
}
my $fnum = @filelist;
if ($fnum <= 1)
{
die "Need at least two filenames";
}
my $dest = pop @filelist;
if ($fnum > 2 && ! -d $dest)
{
die "Destination must be a directory";
}
foreach (@filelist)
{
my $dfile;
if (-d $dest)
{
$dfile = $_;
$dfile =~ s|^.*[/\\]([^/\\]*)$|$1|;
$dfile = "$dest/$dfile";
}
else
{
$dfile = $dest;
}
my $buf;
if (-f $dfile)
{
sysopen(IN, $_, O_RDONLY|O_BINARY) || die "Can't Open $_";
sysopen(OUT, $dfile, O_RDONLY|O_BINARY)
|| die "Can't Open $dfile";
while (sysread IN, $buf, 10240)
{
my $b2;
goto copy if !sysread(OUT, $b2, 10240) || $buf ne $b2;
}
goto copy if sysread(OUT, $buf, 1);
close(IN);
close(OUT);
print "NOT copying: $_ to $dfile\n";
next;
}
copy:
sysopen(IN, $_, O_RDONLY|O_BINARY) || die "Can't Open $_";
sysopen(OUT, $dfile, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY)
|| die "Can't Open $dfile";
while (sysread IN, $buf, 10240)
{
syswrite(OUT, $buf, length($buf));
}
close(IN);
close(OUT);
print "Copying: $_ to $dfile\n";
}

View File

@@ -8,9 +8,16 @@ use Fcntl;
# Perl script 'copy' comment. On Windows the built in "copy" command also
# copies timestamps: this messes up Makefile dependencies.
my $stripcr = 0;
my $arg;
foreach $arg (@ARGV) {
if ($arg eq "-stripcr")
{
$stripcr = 1;
next;
}
$arg =~ s|\\|/|g; # compensate for bug/feature in cygwin glob...
foreach (glob $arg)
{
@@ -49,6 +56,10 @@ foreach (@filelist)
|| die "Can't Open $dfile";
while (sysread IN, $buf, 10240)
{
if ($stripcr)
{
$buf =~ tr/\015//d;
}
syswrite(OUT, $buf, length($buf));
}
close(IN);

View File

@@ -11,6 +11,7 @@ CONFIG_OPTIONS="--prefix=/usr shared zlib no-idea no-rc5"
INSTALL_PREFIX=/tmp/install/INSTALL
VERSION=
SHLIB_VERSION_NUMBER=
SUBVERSION=$1
function cleanup()
@@ -28,6 +29,13 @@ function get_openssl_version()
echo " Check value of variable VERSION in Makefile."
exit 1
fi
eval `grep '^SHLIB_VERSION_NUMBER=' Makefile`
if [ -z "${SHLIB_VERSION_NUMBER}" ]
then
echo "Error: Couldn't retrieve OpenSSL shared lib version from Makefile."
echo " Check value of variable SHLIB_VERSION_NUMBER in Makefile."
exit 1
fi
}
function base_install()
@@ -124,7 +132,7 @@ strip usr/bin/*.exe usr/bin/*.dll usr/lib/engines/*.so
chmod u-w usr/lib/engines/*.so
# Runtime package
tar cjf libopenssl${VERSION//[!0-9]/}-${VERSION}-${SUBVERSION}.tar.bz2 \
tar cjf libopenssl${SHLIB_VERSION_NUMBER//[!0-9]/}-${VERSION}-${SUBVERSION}.tar.bz2 \
usr/bin/cyg*dll
# Base package
find etc usr/bin/openssl.exe usr/bin/c_rehash usr/lib/engines usr/share/doc \
@@ -139,7 +147,7 @@ tar cjfT openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 -
ls -l openssl-${VERSION}-${SUBVERSION}.tar.bz2
ls -l openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2
ls -l libopenssl${VERSION//[!0-9]/}-${VERSION}-${SUBVERSION}.tar.bz2
ls -l libopenssl${SHLIB_VERSION_NUMBER//[!0-9]/}-${VERSION}-${SUBVERSION}.tar.bz2
cleanup

View File

@@ -4,6 +4,12 @@
# It is basically a list of all variables from the passed makefile
#
while ($ARGV[0] =~ /^(\S+)\s*=(.*)$/)
{
$sym{$1} = $2;
shift;
}
$s="";
while (<>)
{
@@ -33,7 +39,7 @@ while (<>)
$o =~ s/\s+/ /g;
$o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
$sym{$s}=$o;
$sym{$s}=$o if !exists $sym{$s};
}
}

751
util/indent.pro Normal file
View File

@@ -0,0 +1,751 @@
-bap
-bbo
-br
-brs
-c33
-cd33
-ce
-ci4
-cli0
-cp33
-d0
-di1
-hnl
-i4
-il1
-ip0
-l78
-lp
-nbad
-nbc
-ncdb
-ncs
-nfc1
-nfca
-npcs
-nprs
-npsl
-nsc
-ppi1
-saf
-sai
-saw
-sob
-ss
-ts0
-T ACCESS_DESCRIPTION
-T ADDED_OBJ
-T AEP_BBOOL
-T AEP_CHAR
-T AEP_CHAR_PTR
-T AEP_CONNECTION_ENTRY
-T AEP_CONNECTION_HNDL
-T AEP_CONNECTION_HNDL_PTR
-T AEP_FLAGS
-T AEP_RV
-T AEP_TRANSACTION_ID
-T AEP_TRANSACTION_ID_PTR
-T AEP_U16
-T AEP_U32
-T AEP_U32_PTR
-T AEP_U64_PTR
-T AEP_U8
-T AEP_U8_PTR
-T AEP_VOID_PTR
-T AEP_VOID_PTR_PTR
-T AES_KEY
-T APP_INFO
-T ARGS
-T ASIdOrRange
-T ASIdOrRanges
-T ASIdentifierChoice
-T ASIdentifiers
-T ASN1_ADB
-T ASN1_ADB_TABLE
-T ASN1_AUX
-T ASN1_BIT_STRING
-T ASN1_BMPSTRING
-T ASN1_BOOLEAN
-T ASN1_COMPAT_FUNCS
-T ASN1_CTX
-T ASN1_ENCODING
-T ASN1_ENUMERATED
-T ASN1_EXTERN_FUNCS
-T ASN1_GENERALIZEDTIME
-T ASN1_GENERALSTRING
-T ASN1_IA5STRING
-T ASN1_INTEGER
-T ASN1_ITEM
-T ASN1_ITEM_EXP
-T ASN1_NULL
-T ASN1_OBJECT
-T ASN1_OCTET_STRING
-T ASN1_PCTX
-T ASN1_PRIMITIVE_FUNCS
-T ASN1_PRINTABLESTRING
-T ASN1_PRINT_ARG
-T ASN1_SCTX
-T ASN1_STREAM_ARG
-T ASN1_STRING
-T ASN1_STRING_TABLE
-T ASN1_T61STRING
-T ASN1_TEMPLATE
-T ASN1_TIME
-T ASN1_TLC
-T ASN1_TYPE
-T ASN1_UNIVERSALSTRING
-T ASN1_UTCTIME
-T ASN1_UTF8STRING
-T ASN1_VALUE
-T ASN1_VISIBLESTRING
-T ASN1_const_CTX
-T AUTHORITY_INFO_ACCESS
-T AUTHORITY_KEYID
-T BASIC_CONSTRAINTS
-T BF_KEY
-T BF_LONG
-T BIGNUM
-T BIO
-T BIO_ACCEPT
-T BIO_ASN1_BUF_CTX
-T BIO_ASN1_EX_FUNCS
-T BIO_B64_CTX
-T BIO_CONNECT
-T BIO_ENC_CTX
-T BIO_F_BUFFER_CTX
-T BIO_LINEBUFFER_CTX
-T BIO_METHOD
-T BIO_OK_CTX
-T BIO_SSL
-T BIT_STRING_BITNAME
-T BN_BLINDING
-T BN_CTX
-T BN_GENCB
-T BN_MONT_CTX
-T BN_POOL
-T BN_POOL_ITEM
-T BN_RECP_CTX
-T BN_STACK
-T BN_ULONG
-T BUF_MEM
-T BY_DIR
-T BY_DIR_ENTRY
-T BY_DIR_HASH
-T Bytef
-T CAMELLIA_KEY
-T CAST_KEY
-T CAST_LONG
-T CA_DB
-T CCM128_CONTEXT
-T CERT
-T CERTIFICATEPOLICIES
-T CERT_PKEY
-T CIPHER_ORDER
-T CMAC_CTX
-T CMS_AuthenticatedData
-T CMS_CertificateChoices
-T CMS_CompressedData
-T CMS_ContentInfo
-T CMS_DigestedData
-T CMS_EncapsulatedContentInfo
-T CMS_EncryptedContentInfo
-T CMS_EncryptedData
-T CMS_EnvelopedData
-T CMS_IssuerAndSerialNumber
-T CMS_KEKIdentifier
-T CMS_KEKRecipientInfo
-T CMS_KeyAgreeRecipientIdentifier
-T CMS_KeyAgreeRecipientInfo
-T CMS_KeyTransRecipientInfo
-T CMS_OriginatorIdentifierOrKey
-T CMS_OriginatorInfo
-T CMS_OriginatorPublicKey
-T CMS_OtherCertificateFormat
-T CMS_OtherKeyAttribute
-T CMS_OtherRecipientInfo
-T CMS_OtherRevocationInfoFormat
-T CMS_PasswordRecipientInfo
-T CMS_Receipt
-T CMS_ReceiptRequest
-T CMS_ReceiptsFrom
-T CMS_RecipientEncryptedKey
-T CMS_RecipientIdentifier
-T CMS_RecipientInfo
-T CMS_RecipientKeyIdentifier
-T CMS_RevocationInfoChoice
-T CMS_SignedData
-T CMS_SignerIdentifier
-T CMS_SignerInfo
-T COMP_CTX
-T COMP_METHOD
-T CONF
-T CONF_IMODULE
-T CONF_METHOD
-T CONF_MODULE
-T CONF_VALUE
-T CRYPTO_EX_DATA
-T CRYPTO_EX_DATA_FUNCS
-T CRYPTO_EX_DATA_IMPL
-T CRYPTO_EX_dup
-T CRYPTO_EX_dup
-T CRYPTO_EX_free
-T CRYPTO_EX_free
-T CRYPTO_EX_new
-T CRYPTO_EX_new
-T CRYPTO_MEM_LEAK_CB
-T CRYPTO_THREADID
-T CRYPTO_dynlock_value
-T DB_ATTR
-T DES_LONG
-T DES_cblock
-T DES_key_schedule
-T DH
-T DH_METHOD
-T DH_PKEY_CTX
-T DIST_POINT
-T DIST_POINT_NAME
-T DRBG_CTX
-T DSA
-T DSA_METHOD
-T DSA_SIG
-T DSO
-T DSO_FUNC_TYPE
-T DSO_MERGER_FUNC
-T DSO_METHOD
-T DSO_NAME_CONVERTER_FUNC
-T DSO_VMS_INTERNAL
-T DTLS1_BITMAP
-T DTLS1_RECORD_DATA
-T DTLS1_STATE
-T Dl_info
-T ECDH_DATA
-T ECDH_METHOD
-T ECDSA_DATA
-T ECDSA_METHOD
-T ECDSA_SIG
-T ECPARAMETERS
-T ECPKPARAMETERS
-T EC_EXTRA_DATA
-T EC_GROUP
-T EC_KEY
-T EC_METHOD
-T EC_POINT
-T EC_PRE_COMP
-T EC_PRIVATEKEY
-T EC_builtin_curve
-T EDIPARTYNAME
-T ENGINE
-T ENGINE_CIPHERS_PTR
-T ENGINE_CLEANUP_CB
-T ENGINE_CLEANUP_ITEM
-T ENGINE_CMD_DEFN
-T ENGINE_CTRL_FUNC_PTR
-T ENGINE_DIGESTS_PTR
-T ENGINE_GEN_FUNC_PTR
-T ENGINE_GEN_INT_FUNC_PTR
-T ENGINE_LOAD_KEY_PTR
-T ENGINE_PILE
-T ENGINE_PILE_DOALL
-T ENGINE_PKEY_ASN1_METHS_PTR
-T ENGINE_PKEY_METHS_PTR
-T ENGINE_SSL_CLIENT_CERT_PTR
-T ENGINE_TABLE
-T ENUMERATED_NAMES
-T ERR_FNS
-T ERR_STATE
-T ERR_STRING_DATA
-T ESS_CERT_ID
-T ESS_ISSUER_SERIAL
-T ESS_SIGNING_CERT
-T EVP_AES_HMAC_SHA1
-T EVP_AES_HMAC_SHA256
-T EVP_CIPHER
-T EVP_CIPHER_CTX
-T EVP_CIPHER_INFO
-T EVP_ENCODE_CTX
-T EVP_MD
-T EVP_MD_CTX
-T EVP_PBE_CTL
-T EVP_PBE_KEYGEN
-T EVP_PKEY
-T EVP_PKEY_ASN1_METHOD
-T EVP_PKEY_CTX
-T EVP_PKEY_METHOD
-T EVP_PKEY_gen_cb
-T EX_CLASS_ITEM
-T E_GMP_RSA_CTX
-T E_RSAX_MOD_CTX
-T FILE
-T F_DIGITALSIGNATUREVERIFY
-T F_PUBLICKEYEXTRACT
-T GCM128_CONTEXT
-T GENERAL_NAME
-T GENERAL_NAMES
-T GENERAL_SUBTREE
-T GEN_SESSION_CB
-T HASH_CTX
-T HEAPENTRY32
-T HEAPLIST32
-T HEARTBEAT_TEST_FIXTURE
-T HMAC_CTX
-T ICA_KEY_RSA_CRT
-T ICA_KEY_RSA_CRT_REC
-T ICA_KEY_RSA_MODEXPO
-T ICA_KEY_RSA_MODEXPO_REC
-T IDEA_KEY_SCHEDULE
-T IPAddrBlocks
-T IPAddressFamily
-T IPAddressOrRange
-T IPAddressOrRanges
-T ISSUING_DIST_POINT
-T JPAKE_CTX
-T JPAKE_STEP1
-T JPAKE_STEP2
-T JPAKE_STEP3A
-T JPAKE_STEP3B
-T JPAKE_STEP_PART
-T JPAKE_ZKP
-T KEY_TABLE_TYPE
-T KRB5_APREQBODY
-T KRB5_AUTHDATA
-T KRB5_AUTHENTBODY
-T KRB5_CHECKSUM
-T KRB5_ENCDATA
-T KRB5_ENCKEY
-T KRB5_PRINCNAME
-T KRB5_TKTBODY
-T KSSL_CTX
-T KSSL_ERR
-T LHASH
-T LHASH_COMP_FN_TYPE
-T LHASH_DOALL_ARG_FN_TYPE
-T LHASH_DOALL_FN_TYPE
-T LHASH_HASH_FN_TYPE
-T LHASH_NODE
-T LPDIR_CTX
-T LPHEAPENTRY32
-T LPHEAPLIST32
-T LPMODULEENTRY32
-T LPMODULEENTRY32W
-T LPPROCESSENTRY32
-T LPPROCESSENTRY32W
-T LPTHREADENTRY32
-T LP_DIR_CTX
-T MD2_CTX
-T MD4_CTX
-T MD5_CTX
-T MDC2_CTX
-T MD_DATA
-T MEM
-T MEM_LEAK
-T MEM_OBJECT_DATA
-T MIME_HEADER
-T MIME_PARAM
-T MODULEENTRY32
-T MODULEENTRY32W
-T MS_FAR
-T NAME_CONSTRAINTS
-T NAME_FUNCS
-T NBIO_TEST
-T NDEF_SUPPORT
-T NETSCAPE_CERT_SEQUENCE
-T NETSCAPE_ENCRYPTED_PKEY
-T NETSCAPE_PKEY
-T NETSCAPE_SPKAC
-T NETSCAPE_SPKI
-T NETSCAPE_X509
-T NET_API_FUNCTION
-T NOTICEREF
-T OBJ_NAME
-T OCB128_CONTEXT
-T OCB_BLOCK
-T OCSP_BASICRESP
-T OCSP_CERTID
-T OCSP_CERTSTATUS
-T OCSP_CRLID
-T OCSP_ONEREQ
-T OCSP_REQINFO
-T OCSP_REQUEST
-T OCSP_REQ_CTX
-T OCSP_RESPBYTES
-T OCSP_RESPDATA
-T OCSP_RESPID
-T OCSP_RESPONSE
-T OCSP_REVOKEDINFO
-T OCSP_SERVICELOC
-T OCSP_SIGNATURE
-T OCSP_SINGLERESP
-T OCSP_TBLSTR
-T OPENSSL_BLOCK
-T OPENSSL_CSTRING
-T OPENSSL_DIR_CTX
-T OPENSSL_ITEM
-T OPENSSL_PSTRING
-T OPENSSL_STRING
-T OPENSSL_STRING
-T OTHERNAME
-T P256_POINT
-T P256_POINT_AFFINE
-T PBE2PARAM
-T PBEPARAM
-T PBKDF2PARAM
-T PCRYPTO_MEM_LEAK_CB
-T PEM_CTX
-T PEM_ENCODE_SEAL_CTX
-T PEM_USER
-T PHEAPENTRY32
-T PHEAPLIST32
-T PKCS12
-T PKCS12_BAGS
-T PKCS12_SAFEBAG
-T PKCS7
-T PKCS7_DIGEST
-T PKCS7_ENCRYPT
-T PKCS7_ENC_CONTENT
-T PKCS7_ENVELOPE
-T PKCS7_ISSUER_AND_SERIAL
-T PKCS7_RECIP_INFO
-T PKCS7_SIGNED
-T PKCS7_SIGNER_INFO
-T PKCS7_SIGN_ENVELOPE
-T PKCS8_PRIV_KEY_INFO
-T PKEY_USAGE_PERIOD
-T PMODULEENTRY32
-T PMODULEENTRY32W
-T POLICYINFO
-T POLICYQUALINFO
-T POLICY_CONSTRAINTS
-T POLICY_MAPPING
-T POLICY_MAPPINGS
-T PPROCESSENTRY32
-T PPROCESSENTRY32W
-T PRECOMP256_ROW
-T PROCESSENTRY32
-T PROCESSENTRY32W
-T PROXY_CERT_INFO_EXTENSION
-T PROXY_POLICY
-T PTHREADENTRY32
-T PW_CB_DATA
-T RAND_METHOD
-T RC2_KEY
-T RC4_KEY
-T RC5_32_KEY
-T RIPEMD160_CTX
-T RSA
-T RSA_METHOD
-T RSA_OAEP_PARAMS
-T RSA_PKEY_CTX
-T RSA_PSS_PARAMS
-T SCT
-T SEED_KEY_SCHEDULE
-T SESS_CERT
-T SHA256_CTX
-T SHA512_CTX
-T SHA_CTX
-T SRP_ARG
-T SRP_CLIENT_ARG
-T SRP_CTX
-T SRP_SERVER_ARG
-T SRP_VBASE
-T SRP_gN_cache
-T SRP_user_pwd
-T SRTP_PROTECTION_PROFILE
-T SSL
-T SSL2_STATE
-T SSL3_BUFFER
-T SSL3_BUF_FREELIST
-T SSL3_BUF_FREELIST_ENTRY
-T SSL3_COMP
-T SSL3_ENC_METHOD
-T SSL3_RECORD
-T SSL3_STATE
-T SSL_CIPHER
-T SSL_COMP
-T SSL_CONF_CTX
-T SSL_CTX
-T SSL_EXCERT
-T SSL_METHOD
-T SSL_SESSION
-T SSL_SESSION_ASN1
-T STACK_OF
-T STORE
-T STORE_ATTR_INFO
-T STORE_ATTR_TYPES
-T STORE_CERTIFICATE_STATUS
-T STORE_CLEANUP_FUNC_PTR
-T STORE_CTRL_FUNC_PTR
-T STORE_END_OBJECT_FUNC_PTR
-T STORE_GENERATE_OBJECT_FUNC_PTR
-T STORE_GENERIC_FUNC_PTR
-T STORE_GET_OBJECT_FUNC_PTR
-T STORE_HANDLE_OBJECT_FUNC_PTR
-T STORE_INITIALISE_FUNC_PTR
-T STORE_METHOD
-T STORE_MODIFY_OBJECT_FUNC_PTR
-T STORE_NEXT_OBJECT_FUNC_PTR
-T STORE_OBJECT
-T STORE_OBJECT_TYPES
-T STORE_PARAM_TYPES
-T STORE_START_OBJECT_FUNC_PTR
-T STORE_STORE_OBJECT_FUNC_PTR
-T SW_ALGTYPE
-T SW_BYTE
-T SW_COMMAND_BITMAP
-T SW_COMMAND_CODE
-T SW_CONTEXT_HANDLE
-T SW_CRT
-T SW_DSA
-T SW_EXP
-T SW_LARGENUMBER
-T SW_NVDATA
-T SW_OSHANDLE
-T SW_PARAM
-T SW_STATE
-T SW_STATUS
-T SW_U16
-T SW_U32
-T SW_U64
-T SXNET
-T SXNETID
-T TCHAR
-T TEST_INFO
-T THREADENTRY32
-T TIMEOUT_PARAM
-T TLS_SESSION_TICKET_EXT
-T TLS_SIGALGS
-T TS_ACCURACY
-T TS_MSG_IMPRINT
-T TS_REQ
-T TS_RESP
-T TS_RESP_CTX
-T TS_STATUS_INFO
-T TS_TST_INFO
-T TS_VERIFY_CTX
-T TXT_DB
-T UI
-T UINT64
-T UI_METHOD
-T UI_STRING
-T USERNOTICE
-T WCHAR
-T WHIRLPOOL_CTX
-T WINAPI
-T WSAAPI
-T X509
-T X509V3_CONF_METHOD
-T X509V3_CTX
-T X509V3_EXT_D2I
-T X509V3_EXT_FREE
-T X509V3_EXT_I2D
-T X509V3_EXT_I2R
-T X509V3_EXT_I2S
-T X509V3_EXT_METHOD
-T X509V3_EXT_NEW
-T X509V3_EXT_R2I
-T X509V3_EXT_S2I
-T X509V3_EXT_V2I
-T X509_ALGOR
-T X509_ATTRIBUTE
-T X509_CERT_AUX
-T X509_CERT_FILE_CTX
-T X509_CERT_PAIR
-T X509_CINF
-T X509_CRL
-T X509_CRL_INFO
-T X509_CRL_METHOD
-T X509_EXTENSION
-T X509_INFO
-T X509_LOOKUP
-T X509_LOOKUP_METHOD
-T X509_NAME
-T X509_NAME_ENTRY
-T X509_OBJECT
-T X509_OBJECTS
-T X509_PKEY
-T X509_POLICY_CACHE
-T X509_POLICY_DATA
-T X509_POLICY_LEVEL
-T X509_POLICY_NODE
-T X509_POLICY_TREE
-T X509_PUBKEY
-T X509_PURPOSE
-T X509_REQ
-T X509_REQ_INFO
-T X509_REVOKED
-T X509_SIG
-T X509_STORE
-T X509_STORE_CTX
-T X509_TRUST
-T X509_VAL
-T X509_VERIFY_PARAM
-T X509_VERIFY_PARAM_ID
-T X9_62_CHARACTERISTIC_TWO
-T X9_62_CURVE
-T X9_62_FIELDID
-T X9_62_PENTANOMIAL
-T XTS128_CONTEXT
-T ZEN_MD_DATA
-T _LHASH
-T _STACK
-T __int64
-T _ossl_old_des_cblock
-T asn1_ps_func
-T bio_dgram_data
-T bio_info_cb
-T char_io
-T conf_finish_func
-T conf_init_func
-T const_DES_cblock
-T d2i_of_void
-T des_cblock
-T dynamic_data_ctx
-T dynamic_fns
-T engine_table_doall_cb
-T i2d_of_void
-T int_dhx942_dh
-T nid_triple
-T pem_password_cb
-T pitem
-T piterator
-T pqueue_s
-T session_op
-T size_t
-T tag_exp_arg
-T testdata
-T time_t
-T time_t
-T u32
-T u64
-T u8
-T v3_ext_ctx
-T v3_ext_method
-T STACK_OF_ACCESS_DESCRIPTION_
-T STACK_OF_ASIdOrRange_
-T STACK_OF_ASN1_ADB_TABLE_
-T STACK_OF_ASN1_INTEGER_
-T STACK_OF_ASN1_OBJECT_
-T STACK_OF_ASN1_STRING_TABLE_
-T STACK_OF_ASN1_TYPE_
-T STACK_OF_ASN1_UTF8STRING_
-T STACK_OF_ASN1_VALUE_
-T STACK_OF_BIO_
-T STACK_OF_BY_DIR_ENTRY_
-T STACK_OF_BY_DIR_HASH_
-T STACK_OF_CMS_CertificateChoices_
-T STACK_OF_CMS_RecipientEncryptedKey_
-T STACK_OF_CMS_RecipientInfo_
-T STACK_OF_CMS_RevocationInfoChoice_
-T STACK_OF_CMS_SignerInfo_
-T STACK_OF_CONF_IMODULE_
-T STACK_OF_CONF_MODULE_
-T STACK_OF_CONF_VALUE_
-T STACK_OF_CRYPTO_EX_DATA_FUNCS_
-T STACK_OF_CRYPTO_dynlock_
-T STACK_OF_DIST_POINT_
-T STACK_OF_ENGINE_
-T STACK_OF_ENGINE_CLEANUP_ITEM_
-T STACK_OF_ESS_CERT_ID_
-T STACK_OF_EVP_PBE_CTL_
-T STACK_OF_EVP_PKEY_ASN1_METHOD_
-T STACK_OF_EVP_PKEY_METHOD_
-T STACK_OF_GENERAL_NAMES_
-T STACK_OF_GENERAL_NAME_
-T STACK_OF_GENERAL_SUBTREE_
-T STACK_OF_IPAddressFamily_
-T STACK_OF_IPAddressOrRange_
-T STACK_OF_KRB5_APREQBODY_
-T STACK_OF_KRB5_AUTHENTBODY_
-T STACK_OF_KRB5_TKTBODY_
-T STACK_OF_MEM_OBJECT_DATA_
-T STACK_OF_MIME_HEADER_
-T STACK_OF_MIME_PARAM_
-T STACK_OF_NAME_FUNCS_
-T STACK_OF_OCSP_CERTID_
-T STACK_OF_OCSP_ONEREQ_
-T STACK_OF_OCSP_RESPID_
-T STACK_OF_OCSP_SINGLERESP_
-T STACK_OF_OPENSSL_BLOCK_
-T STACK_OF_OPENSSL_PSTRING_
-T STACK_OF_OPENSSL_STRING_
-T STACK_OF_PKCS12_SAFEBAG_
-T STACK_OF_PKCS7_
-T STACK_OF_PKCS7_RECIP_INFO_
-T STACK_OF_PKCS7_SIGNER_INFO_
-T STACK_OF_POLICYINFO_
-T STACK_OF_POLICYQUALINFO_
-T STACK_OF_POLICY_MAPPING_
-T STACK_OF_Request_
-T STACK_OF_SCT_
-T STACK_OF_SRP_gN_
-T STACK_OF_SRP_gN_cache_
-T STACK_OF_SRP_user_pwd_
-T STACK_OF_SRTP_PROTECTION_PROFILE_
-T STACK_OF_SSL_CIPHER_
-T STACK_OF_SSL_COMP_
-T STACK_OF_STORE_ATTR_INFO_
-T STACK_OF_STRING_
-T STACK_OF_SXNETID_
-T STACK_OF_SingleResponse_
-T STACK_OF_UI_STRING_
-T STACK_OF_X509V3_EXT_METHOD_
-T STACK_OF_X509_
-T STACK_OF_X509_ALGOR_
-T STACK_OF_X509_ATTRIBUTE_
-T STACK_OF_X509_CRL_
-T STACK_OF_X509_EXTENSION_
-T STACK_OF_X509_INFO_
-T STACK_OF_X509_LOOKUP_
-T STACK_OF_X509_NAME_
-T STACK_OF_X509_NAME_ENTRY_
-T STACK_OF_X509_OBJECT_
-T STACK_OF_X509_POLICY_DATA_
-T STACK_OF_X509_POLICY_NODE_
-T STACK_OF_X509_PURPOSE_
-T STACK_OF_X509_REVOKED_
-T STACK_OF_X509_TRUST_
-T STACK_OF_X509_VERIFY_PARAM_
-T STACK_OF_nid_triple_
-T STACK_OF_void_
-T LHASH_OF_ADDED_OBJ_
-T LHASH_OF_APP_INFO_
-T LHASH_OF_CONF_VALUE_
-T LHASH_OF_ENGINE_PILE_
-T LHASH_OF_ERR_STATE_
-T LHASH_OF_ERR_STRING_DATA_
-T LHASH_OF_EX_CLASS_ITEM_
-T LHASH_OF_FUNCTION_
-T LHASH_OF_MEM_
-T LHASH_OF_OBJ_NAME_
-T LHASH_OF_OPENSSL_STRING_
-T LHASH_OF_SSL_SESSION_
-T LHASH_OF_STRING_
-T clock_t
-T custom_ext_methods
-T hm_fragment
-T krb5_auth_context
-T krb5_authdata
-T KRB5_CALLCONV
-T krb5_ccache
-T krb5_context
-T krb5_creds
-T krb5_data
-T krb5_deltat
-T krb5_flags
-T krb5_int32
-T krb5_keyblock
-T krb5_keytab
-T krb5_keytab_entry
-T krb5_octet
-T krb5_principal
-T krb5_principal_data
-T krb5_rcache
-T krb5_ticket
-T krb5_ticket_times
-T krb5_timestamp
-T record_pqueue
-T ssl_ctx_st
-T ssl_flag_tbl
-T ssl_st
-T ssl_trace_tbl
-T _stdcall
-T tls12_lookup

View File

@@ -1050,7 +1050,7 @@ ASN1_TYPE_get_octetstring 1077 EXIST::FUNCTION:
ASN1_TYPE_set_int_octetstring 1078 EXIST::FUNCTION:
ASN1_TYPE_set_octetstring 1079 EXIST::FUNCTION:
ASN1_UTCTIME_set_string 1080 EXIST::FUNCTION:
ERR_add_error_data 1081 EXIST::FUNCTION:BIO
ERR_add_error_data 1081 EXIST::FUNCTION:
ERR_set_error_data 1082 EXIST::FUNCTION:
EVP_CIPHER_asn1_to_param 1083 EXIST::FUNCTION:
EVP_CIPHER_param_to_asn1 1084 EXIST::FUNCTION:
@@ -1806,7 +1806,9 @@ d2i_ASN1_SET_OF_PKCS12_SAFEBAG 2341 NOEXIST::FUNCTION:
ASN1_UTCTIME_get 2350 NOEXIST::FUNCTION:
X509_REQ_digest 2362 EXIST::FUNCTION:EVP
X509_CRL_digest 2391 EXIST::FUNCTION:EVP
ASN1_STRING_clear_free 2392 EXIST::FUNCTION:
d2i_ASN1_SET_OF_PKCS7 2397 NOEXIST::FUNCTION:
X509_ALGOR_cmp 2398 EXIST::FUNCTION:
EVP_CIPHER_CTX_set_key_length 2399 EXIST::FUNCTION:
EVP_CIPHER_CTX_ctrl 2400 EXIST::FUNCTION:
BN_mod_exp_mont_word 2401 EXIST::FUNCTION:
@@ -2808,7 +2810,7 @@ FIPS_corrupt_rsa 3249 NOEXIST::FUNCTION:
FIPS_selftest_des 3250 NOEXIST::FUNCTION:
EVP_aes_128_cfb1 3251 EXIST::FUNCTION:AES
EVP_aes_192_cfb8 3252 EXIST::FUNCTION:AES
FIPS_mode_set 3253 NOEXIST::FUNCTION:
FIPS_mode_set 3253 EXIST::FUNCTION:
FIPS_selftest_dsa 3254 NOEXIST::FUNCTION:
EVP_aes_256_cfb8 3255 EXIST::FUNCTION:AES
FIPS_allow_md5 3256 NOEXIST::FUNCTION:
@@ -2838,23 +2840,23 @@ AES_cfb1_encrypt 3279 EXIST::FUNCTION:AES
EVP_des_ede3_cfb1 3280 EXIST::FUNCTION:DES
FIPS_rand_check 3281 NOEXIST::FUNCTION:
FIPS_md5_allowed 3282 NOEXIST::FUNCTION:
FIPS_mode 3283 NOEXIST::FUNCTION:
FIPS_mode 3283 EXIST::FUNCTION:
FIPS_selftest_failed 3284 NOEXIST::FUNCTION:
sk_is_sorted 3285 EXIST::FUNCTION:
X509_check_ca 3286 EXIST::FUNCTION:
private_idea_set_encrypt_key 3287 NOEXIST::FUNCTION:
private_idea_set_encrypt_key 3287 EXIST:OPENSSL_FIPS:FUNCTION:IDEA
HMAC_CTX_set_flags 3288 EXIST::FUNCTION:HMAC
private_SHA_Init 3289 NOEXIST::FUNCTION:
private_CAST_set_key 3290 NOEXIST::FUNCTION:
private_RIPEMD160_Init 3291 NOEXIST::FUNCTION:
private_SHA_Init 3289 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA0
private_CAST_set_key 3290 EXIST:OPENSSL_FIPS:FUNCTION:CAST
private_RIPEMD160_Init 3291 EXIST:OPENSSL_FIPS:FUNCTION:RIPEMD
private_RC5_32_set_key 3292 NOEXIST::FUNCTION:
private_MD5_Init 3293 NOEXIST::FUNCTION:
private_RC4_set_key 3294 NOEXIST::FUNCTION:
private_MDC2_Init 3295 NOEXIST::FUNCTION:
private_RC2_set_key 3296 NOEXIST::FUNCTION:
private_MD4_Init 3297 NOEXIST::FUNCTION:
private_BF_set_key 3298 NOEXIST::FUNCTION:
private_MD2_Init 3299 NOEXIST::FUNCTION:
private_MD5_Init 3293 EXIST:OPENSSL_FIPS:FUNCTION:MD5
private_RC4_set_key 3294 EXIST::FUNCTION:RC4
private_MDC2_Init 3295 EXIST:OPENSSL_FIPS:FUNCTION:MDC2
private_RC2_set_key 3296 EXIST:OPENSSL_FIPS:FUNCTION:RC2
private_MD4_Init 3297 EXIST:OPENSSL_FIPS:FUNCTION:MD4
private_BF_set_key 3298 EXIST:OPENSSL_FIPS:FUNCTION:BF
private_MD2_Init 3299 EXIST:OPENSSL_FIPS:FUNCTION:MD2
d2i_PROXY_CERT_INFO_EXTENSION 3300 EXIST::FUNCTION:
PROXY_POLICY_it 3301 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
PROXY_POLICY_it 3301 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
@@ -2882,7 +2884,7 @@ RSA_verify_PKCS1_PSS 3321 EXIST::FUNCTION:RSA
RSA_padding_add_X931 3322 EXIST::FUNCTION:RSA
RSA_padding_add_PKCS1_PSS 3323 EXIST::FUNCTION:RSA
PKCS1_MGF1 3324 EXIST::FUNCTION:RSA
BN_X931_generate_Xpq 3325 NOEXIST::FUNCTION:
BN_X931_generate_Xpq 3325 EXIST::FUNCTION:
RSA_X931_generate_key 3326 NOEXIST::FUNCTION:
BN_X931_derive_prime 3327 NOEXIST::FUNCTION:
BN_X931_generate_prime 3328 NOEXIST::FUNCTION:
@@ -2906,7 +2908,7 @@ STORE_parse_attrs_start 3343 NOEXIST::FUNCTION:
POLICY_CONSTRAINTS_free 3344 EXIST::FUNCTION:
EVP_PKEY_add1_attr_by_NID 3345 EXIST::FUNCTION:
BN_nist_mod_192 3346 EXIST::FUNCTION:
EC_GROUP_get_trinomial_basis 3347 EXIST::FUNCTION:EC
EC_GROUP_get_trinomial_basis 3347 EXIST::FUNCTION:EC,EC2M
STORE_set_method 3348 NOEXIST::FUNCTION:
GENERAL_SUBTREE_free 3349 EXIST::FUNCTION:
NAME_CONSTRAINTS_it 3350 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
@@ -2921,14 +2923,14 @@ SHA512_Update 3356 EXIST:!VMSVAX:FUNCTION:SHA,SHA512
i2d_ECPrivateKey 3357 EXIST::FUNCTION:EC
BN_get0_nist_prime_192 3358 EXIST::FUNCTION:
STORE_modify_certificate 3359 NOEXIST::FUNCTION:
EC_POINT_set_affine_coordinates_GF2m 3360 EXIST:!VMS:FUNCTION:EC
EC_POINT_set_affine_coords_GF2m 3360 EXIST:VMS:FUNCTION:EC
BN_GF2m_mod_exp_arr 3361 EXIST::FUNCTION:
EC_POINT_set_affine_coordinates_GF2m 3360 EXIST:!VMS:FUNCTION:EC,EC2M
EC_POINT_set_affine_coords_GF2m 3360 EXIST:VMS:FUNCTION:EC,EC2M
BN_GF2m_mod_exp_arr 3361 EXIST::FUNCTION:EC2M
STORE_ATTR_INFO_modify_number 3362 NOEXIST::FUNCTION:
X509_keyid_get0 3363 EXIST::FUNCTION:
ENGINE_load_gmp 3364 EXIST::FUNCTION:ENGINE,GMP,STATIC_ENGINE
pitem_new 3365 EXIST::FUNCTION:
BN_GF2m_mod_mul_arr 3366 EXIST::FUNCTION:
BN_GF2m_mod_mul_arr 3366 EXIST::FUNCTION:EC2M
STORE_list_public_key_endp 3367 NOEXIST::FUNCTION:
o2i_ECPublicKey 3368 EXIST::FUNCTION:EC
EC_KEY_copy 3369 EXIST::FUNCTION:EC
@@ -2945,7 +2947,7 @@ X509_VERIFY_PARAM_inherit 3378 EXIST::FUNCTION:
EC_POINT_point2bn 3379 EXIST::FUNCTION:EC
STORE_ATTR_INFO_set_dn 3380 NOEXIST::FUNCTION:
X509_policy_tree_get0_policies 3381 EXIST::FUNCTION:
EC_GROUP_new_curve_GF2m 3382 EXIST::FUNCTION:EC
EC_GROUP_new_curve_GF2m 3382 EXIST::FUNCTION:EC,EC2M
STORE_destroy_method 3383 NOEXIST::FUNCTION:
ENGINE_unregister_STORE 3384 EXIST::FUNCTION:ENGINE
EVP_PKEY_get1_EC_KEY 3385 EXIST::FUNCTION:EC
@@ -2961,7 +2963,7 @@ ENGINE_get_static_state 3393 EXIST::FUNCTION:ENGINE
pqueue_iterator 3394 EXIST::FUNCTION:
ECDSA_SIG_new 3395 EXIST::FUNCTION:ECDSA
OPENSSL_DIR_end 3396 EXIST::FUNCTION:
BN_GF2m_mod_sqr 3397 EXIST::FUNCTION:
BN_GF2m_mod_sqr 3397 EXIST::FUNCTION:EC2M
EC_POINT_bn2point 3398 EXIST::FUNCTION:EC
X509_VERIFY_PARAM_set_depth 3399 EXIST::FUNCTION:
EC_KEY_set_asn1_flag 3400 EXIST::FUNCTION:EC
@@ -2974,7 +2976,7 @@ EC_GROUP_get_point_conv_form 3405 EXIST:VMS:FUNCTION:EC
STORE_method_set_store_function 3406 NOEXIST::FUNCTION:
STORE_ATTR_INFO_in 3407 NOEXIST::FUNCTION:
PEM_read_bio_ECPKParameters 3408 EXIST::FUNCTION:EC
EC_GROUP_get_pentanomial_basis 3409 EXIST::FUNCTION:EC
EC_GROUP_get_pentanomial_basis 3409 EXIST::FUNCTION:EC,EC2M
EVP_PKEY_add1_attr_by_txt 3410 EXIST::FUNCTION:
BN_BLINDING_set_flags 3411 EXIST::FUNCTION:
X509_VERIFY_PARAM_set1_policies 3412 EXIST::FUNCTION:
@@ -2982,10 +2984,10 @@ X509_VERIFY_PARAM_set1_name 3413 EXIST::FUNCTION:
X509_VERIFY_PARAM_set_purpose 3414 EXIST::FUNCTION:
STORE_get_number 3415 NOEXIST::FUNCTION:
ECDSA_sign_setup 3416 EXIST::FUNCTION:ECDSA
BN_GF2m_mod_solve_quad_arr 3417 EXIST::FUNCTION:
BN_GF2m_mod_solve_quad_arr 3417 EXIST::FUNCTION:EC2M
EC_KEY_up_ref 3418 EXIST::FUNCTION:EC
POLICY_MAPPING_free 3419 EXIST::FUNCTION:
BN_GF2m_mod_div 3420 EXIST::FUNCTION:
BN_GF2m_mod_div 3420 EXIST::FUNCTION:EC2M
X509_VERIFY_PARAM_set_flags 3421 EXIST::FUNCTION:
EC_KEY_free 3422 EXIST::FUNCTION:EC
STORE_meth_set_list_next_fn 3423 NOEXIST::FUNCTION:
@@ -2999,7 +3001,7 @@ STORE_method_set_list_end_function 3427 NOEXIST::FUNCTION:
pqueue_print 3428 EXIST::FUNCTION:
EC_GROUP_have_precompute_mult 3429 EXIST::FUNCTION:EC
EC_KEY_print_fp 3430 EXIST::FUNCTION:EC,FP_API
BN_GF2m_mod_arr 3431 EXIST::FUNCTION:
BN_GF2m_mod_arr 3431 EXIST::FUNCTION:EC2M
PEM_write_bio_X509_CERT_PAIR 3432 EXIST::FUNCTION:
EVP_PKEY_cmp 3433 EXIST::FUNCTION:
X509_policy_level_node_count 3434 EXIST::FUNCTION:
@@ -3020,7 +3022,7 @@ X509_policy_node_get0_qualifiers 3448 EXIST:!VMS:FUNCTION:
X509_pcy_node_get0_qualifiers 3448 EXIST:VMS:FUNCTION:
STORE_list_crl_end 3449 NOEXIST::FUNCTION:
EVP_PKEY_set1_EC_KEY 3450 EXIST::FUNCTION:EC
BN_GF2m_mod_sqrt_arr 3451 EXIST::FUNCTION:
BN_GF2m_mod_sqrt_arr 3451 EXIST::FUNCTION:EC2M
i2d_ECPrivateKey_bio 3452 EXIST::FUNCTION:BIO,EC
ECPKParameters_print_fp 3453 EXIST::FUNCTION:EC,FP_API
pqueue_find 3454 EXIST::FUNCTION:
@@ -3037,7 +3039,7 @@ PKCS12_add_safes 3464 EXIST::FUNCTION:
BN_BLINDING_convert_ex 3465 EXIST::FUNCTION:
X509_policy_tree_free 3466 EXIST::FUNCTION:
OPENSSL_ia32cap_loc 3467 EXIST::FUNCTION:
BN_GF2m_poly2arr 3468 EXIST::FUNCTION:
BN_GF2m_poly2arr 3468 EXIST::FUNCTION:EC2M
STORE_ctrl 3469 NOEXIST::FUNCTION:
STORE_ATTR_INFO_compare 3470 NOEXIST::FUNCTION:
BN_get0_nist_prime_224 3471 EXIST::FUNCTION:
@@ -3061,7 +3063,7 @@ STORE_method_set_delete_function 3486 NOEXIST::FUNCTION:
STORE_list_certificate_next 3487 NOEXIST::FUNCTION:
ASN1_generate_nconf 3488 EXIST::FUNCTION:
BUF_memdup 3489 EXIST::FUNCTION:
BN_GF2m_mod_mul 3490 EXIST::FUNCTION:
BN_GF2m_mod_mul 3490 EXIST::FUNCTION:EC2M
STORE_meth_get_list_next_fn 3491 NOEXIST::FUNCTION:
STORE_method_get_list_next_function 3491 NOEXIST::FUNCTION:
STORE_ATTR_INFO_get0_dn 3492 NOEXIST::FUNCTION:
@@ -3072,7 +3074,7 @@ STORE_ATTR_INFO_free 3496 NOEXIST::FUNCTION:
STORE_get_private_key 3497 NOEXIST::FUNCTION:
EVP_PKEY_get_attr_count 3498 EXIST::FUNCTION:
STORE_ATTR_INFO_new 3499 NOEXIST::FUNCTION:
EC_GROUP_get_curve_GF2m 3500 EXIST::FUNCTION:EC
EC_GROUP_get_curve_GF2m 3500 EXIST::FUNCTION:EC,EC2M
STORE_meth_set_revoke_fn 3501 NOEXIST::FUNCTION:
STORE_method_set_revoke_function 3501 NOEXIST::FUNCTION:
STORE_store_number 3502 NOEXIST::FUNCTION:
@@ -3088,7 +3090,7 @@ BIO_dump_indent_fp 3511 EXIST::FUNCTION:FP_API
EC_KEY_set_group 3512 EXIST::FUNCTION:EC
BUF_strndup 3513 EXIST::FUNCTION:
STORE_list_certificate_start 3514 NOEXIST::FUNCTION:
BN_GF2m_mod 3515 EXIST::FUNCTION:
BN_GF2m_mod 3515 EXIST::FUNCTION:EC2M
X509_REQ_check_private_key 3516 EXIST::FUNCTION:
EC_GROUP_get_seed_len 3517 EXIST::FUNCTION:EC
ERR_load_STORE_strings 3518 NOEXIST::FUNCTION:
@@ -3117,19 +3119,19 @@ STORE_method_set_get_function 3536 NOEXIST::FUNCTION:
STORE_modify_number 3537 NOEXIST::FUNCTION:
STORE_method_get_store_function 3538 NOEXIST::FUNCTION:
STORE_store_private_key 3539 NOEXIST::FUNCTION:
BN_GF2m_mod_sqr_arr 3540 EXIST::FUNCTION:
BN_GF2m_mod_sqr_arr 3540 EXIST::FUNCTION:EC2M
RSA_setup_blinding 3541 EXIST::FUNCTION:RSA
BIO_s_datagram 3542 EXIST::FUNCTION:DGRAM
STORE_Memory 3543 NOEXIST::FUNCTION:
sk_find_ex 3544 EXIST::FUNCTION:
EC_GROUP_set_curve_GF2m 3545 EXIST::FUNCTION:EC
EC_GROUP_set_curve_GF2m 3545 EXIST::FUNCTION:EC,EC2M
ENGINE_set_default_ECDSA 3546 EXIST::FUNCTION:ENGINE
POLICY_CONSTRAINTS_new 3547 EXIST::FUNCTION:
BN_GF2m_mod_sqrt 3548 EXIST::FUNCTION:
BN_GF2m_mod_sqrt 3548 EXIST::FUNCTION:EC2M
ECDH_set_default_method 3549 EXIST::FUNCTION:ECDH
EC_KEY_generate_key 3550 EXIST::FUNCTION:EC
SHA384_Update 3551 EXIST:!VMSVAX:FUNCTION:SHA,SHA512
BN_GF2m_arr2poly 3552 EXIST::FUNCTION:
BN_GF2m_arr2poly 3552 EXIST::FUNCTION:EC2M
STORE_method_get_get_function 3553 NOEXIST::FUNCTION:
STORE_meth_set_cleanup_fn 3554 NOEXIST::FUNCTION:
STORE_method_set_cleanup_function 3554 NOEXIST::FUNCTION:
@@ -3154,7 +3156,7 @@ EC_GROUP_get_degree 3570 EXIST::FUNCTION:EC
ASN1_generate_v3 3571 EXIST::FUNCTION:
STORE_ATTR_INFO_modify_cstr 3572 NOEXIST::FUNCTION:
X509_policy_tree_level_count 3573 EXIST::FUNCTION:
BN_GF2m_add 3574 EXIST::FUNCTION:
BN_GF2m_add 3574 EXIST::FUNCTION:EC2M
EC_KEY_get0_group 3575 EXIST::FUNCTION:EC
STORE_generate_crl 3576 NOEXIST::FUNCTION:
STORE_store_public_key 3577 NOEXIST::FUNCTION:
@@ -3179,8 +3181,8 @@ STORE_store_certificate 3593 NOEXIST::FUNCTION:
OBJ_bsearch_ex 3594 NOEXIST::FUNCTION:
X509_STORE_CTX_set_default 3595 EXIST::FUNCTION:
STORE_ATTR_INFO_set_sha1str 3596 NOEXIST::FUNCTION:
BN_GF2m_mod_inv 3597 EXIST::FUNCTION:
BN_GF2m_mod_exp 3598 EXIST::FUNCTION:
BN_GF2m_mod_inv 3597 EXIST::FUNCTION:EC2M
BN_GF2m_mod_exp 3598 EXIST::FUNCTION:EC2M
STORE_modify_public_key 3599 NOEXIST::FUNCTION:
STORE_meth_get_list_start_fn 3600 NOEXIST::FUNCTION:
STORE_method_get_list_start_function 3600 NOEXIST::FUNCTION:
@@ -3188,7 +3190,7 @@ EC_GROUP_get0_seed 3601 EXIST::FUNCTION:EC
STORE_store_arbitrary 3602 NOEXIST::FUNCTION:
STORE_meth_set_unlock_store_fn 3603 NOEXIST::FUNCTION:
STORE_method_set_unlock_store_function 3603 NOEXIST::FUNCTION:
BN_GF2m_mod_div_arr 3604 EXIST::FUNCTION:
BN_GF2m_mod_div_arr 3604 EXIST::FUNCTION:EC2M
ENGINE_set_ECDSA 3605 EXIST::FUNCTION:ENGINE
STORE_create_method 3606 NOEXIST::FUNCTION:
ECPKParameters_print 3607 EXIST::FUNCTION:BIO,EC
@@ -3211,8 +3213,8 @@ EC_KEY_get_enc_flags 3622 EXIST::FUNCTION:EC
ASN1_const_check_infinite_end 3623 EXIST::FUNCTION:
EVP_PKEY_delete_attr 3624 EXIST::FUNCTION:
ECDSA_set_default_method 3625 EXIST::FUNCTION:ECDSA
EC_POINT_set_compressed_coordinates_GF2m 3626 EXIST:!VMS:FUNCTION:EC
EC_POINT_set_compr_coords_GF2m 3626 EXIST:VMS:FUNCTION:EC
EC_POINT_set_compressed_coordinates_GF2m 3626 EXIST:!VMS:FUNCTION:EC,EC2M
EC_POINT_set_compr_coords_GF2m 3626 EXIST:VMS:FUNCTION:EC,EC2M
EC_GROUP_cmp 3627 EXIST::FUNCTION:EC
STORE_revoke_certificate 3628 NOEXIST::FUNCTION:
BN_get0_nist_prime_256 3629 EXIST::FUNCTION:
@@ -3241,7 +3243,7 @@ POLICY_CONSTRAINTS_it 3649 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTI
STORE_get_ex_new_index 3650 NOEXIST::FUNCTION:
EVP_PKEY_get_attr_by_OBJ 3651 EXIST::FUNCTION:
X509_VERIFY_PARAM_add0_policy 3652 EXIST::FUNCTION:
BN_GF2m_mod_solve_quad 3653 EXIST::FUNCTION:
BN_GF2m_mod_solve_quad 3653 EXIST::FUNCTION:EC2M
SHA256 3654 EXIST::FUNCTION:SHA,SHA256
i2d_ECPrivateKey_fp 3655 EXIST::FUNCTION:EC,FP_API
X509_policy_tree_get0_user_policies 3656 EXIST:!VMS:FUNCTION:
@@ -3249,8 +3251,8 @@ X509_pcy_tree_get0_usr_policies 3656 EXIST:VMS:FUNCTION:
OPENSSL_DIR_read 3657 EXIST::FUNCTION:
ENGINE_register_all_ECDSA 3658 EXIST::FUNCTION:ENGINE
X509_VERIFY_PARAM_lookup 3659 EXIST::FUNCTION:
EC_POINT_get_affine_coordinates_GF2m 3660 EXIST:!VMS:FUNCTION:EC
EC_POINT_get_affine_coords_GF2m 3660 EXIST:VMS:FUNCTION:EC
EC_POINT_get_affine_coordinates_GF2m 3660 EXIST:!VMS:FUNCTION:EC,EC2M
EC_POINT_get_affine_coords_GF2m 3660 EXIST:VMS:FUNCTION:EC,EC2M
EC_GROUP_dup 3661 EXIST::FUNCTION:EC
ENGINE_get_default_ECDSA 3662 EXIST::FUNCTION:ENGINE
EC_KEY_new 3663 EXIST::FUNCTION:EC
@@ -3332,7 +3334,7 @@ STORE_list_certificate_end 3734 NOEXIST::FUNCTION:
STORE_get_crl 3735 NOEXIST::FUNCTION:
X509_POLICY_NODE_print 3736 EXIST::FUNCTION:
SHA384_Init 3737 EXIST:!VMSVAX:FUNCTION:SHA,SHA512
EC_GF2m_simple_method 3738 EXIST::FUNCTION:EC
EC_GF2m_simple_method 3738 EXIST::FUNCTION:EC,EC2M
ECDSA_set_ex_data 3739 EXIST::FUNCTION:ECDSA
SHA384_Final 3740 EXIST:!VMSVAX:FUNCTION:SHA,SHA512
PKCS7_set_digest 3741 EXIST::FUNCTION:
@@ -3364,7 +3366,7 @@ BIO_dump_cb 3764 EXIST::FUNCTION:
SHA256_Update 3765 EXIST::FUNCTION:SHA,SHA256
pqueue_insert 3766 EXIST::FUNCTION:
pitem_free 3767 EXIST::FUNCTION:
BN_GF2m_mod_inv_arr 3768 EXIST::FUNCTION:
BN_GF2m_mod_inv_arr 3768 EXIST::FUNCTION:EC2M
ENGINE_unregister_ECDSA 3769 EXIST::FUNCTION:ENGINE
BN_BLINDING_set_thread_id 3770 EXIST::FUNCTION:DEPRECATED
get_rfc3526_prime_8192 3771 EXIST::FUNCTION:
@@ -3510,6 +3512,8 @@ BIO_get_callback_arg 3902 EXIST::FUNCTION:
BIO_set_callback 3903 EXIST::FUNCTION:
d2i_ASIdOrRange 3904 EXIST::FUNCTION:RFC3779
i2d_ASIdentifiers 3905 EXIST::FUNCTION:RFC3779
CRYPTO_memcmp 3906 EXIST::FUNCTION:
BN_consttime_swap 3907 EXIST::FUNCTION:
SEED_decrypt 3908 EXIST::FUNCTION:SEED
SEED_encrypt 3909 EXIST::FUNCTION:SEED
SEED_cbc_encrypt 3910 EXIST::FUNCTION:SEED
@@ -3670,7 +3674,7 @@ int_EVP_MD_set_engine_callbacks 4056 NOEXIST::FUNCTION:
int_CRYPTO_set_do_dynlock_callback 4057 NOEXIST::FUNCTION:
FIPS_rng_stick 4058 NOEXIST::FUNCTION:
EVP_CIPHER_CTX_set_flags 4059 EXIST::FUNCTION:
BN_X931_generate_prime_ex 4060 NOEXIST::FUNCTION:
BN_X931_generate_prime_ex 4060 EXIST::FUNCTION:
FIPS_selftest_check 4061 NOEXIST::FUNCTION:
FIPS_rand_set_dt 4062 NOEXIST::FUNCTION:
CRYPTO_dbg_pop_info 4063 NOEXIST::FUNCTION:
@@ -3687,7 +3691,7 @@ FIPS_dh_new 4073 NOEXIST::FUNCTION:
FIPS_corrupt_dsa_keygen 4074 NOEXIST::FUNCTION:
FIPS_dh_free 4075 NOEXIST::FUNCTION:
fips_pkey_signature_test 4076 NOEXIST::FUNCTION:
EVP_add_alg_module 4077 NOEXIST::FUNCTION:
EVP_add_alg_module 4077 EXIST::FUNCTION:
int_RAND_init_engine_callbacks 4078 NOEXIST::FUNCTION:
int_EVP_CIPHER_set_engine_callbacks 4079 NOEXIST::FUNCTION:
int_EVP_MD_init_engine_callbacks 4080 NOEXIST::FUNCTION:
@@ -3695,14 +3699,14 @@ FIPS_rand_test_mode 4081 NOEXIST::FUNCTION:
FIPS_rand_reset 4082 NOEXIST::FUNCTION:
FIPS_dsa_new 4083 NOEXIST::FUNCTION:
int_RAND_set_callbacks 4084 NOEXIST::FUNCTION:
BN_X931_derive_prime_ex 4085 NOEXIST::FUNCTION:
BN_X931_derive_prime_ex 4085 EXIST::FUNCTION:
int_ERR_lib_init 4086 NOEXIST::FUNCTION:
int_EVP_CIPHER_init_engine_callbacks 4087 NOEXIST::FUNCTION:
FIPS_rsa_free 4088 NOEXIST::FUNCTION:
FIPS_dsa_sig_encode 4089 NOEXIST::FUNCTION:
CRYPTO_dbg_remove_all_info 4090 NOEXIST::FUNCTION:
OPENSSL_init 4091 NOEXIST::FUNCTION:
private_Camellia_set_key 4092 NOEXIST::FUNCTION:
OPENSSL_init 4091 EXIST::FUNCTION:
private_Camellia_set_key 4092 EXIST:OPENSSL_FIPS:FUNCTION:CAMELLIA
CRYPTO_strdup 4093 EXIST::FUNCTION:
JPAKE_STEP3A_process 4094 EXIST::FUNCTION:JPAKE
JPAKE_STEP1_release 4095 EXIST::FUNCTION:JPAKE
@@ -4189,3 +4193,241 @@ CRYPTO_cts128_encrypt_block 4560 EXIST::FUNCTION:
CRYPTO_cbc128_decrypt 4561 EXIST::FUNCTION:
CRYPTO_cfb128_encrypt 4562 EXIST::FUNCTION:
CRYPTO_cfb128_8_encrypt 4563 EXIST::FUNCTION:
OPENSSL_strcasecmp 4564 EXIST::FUNCTION:
OPENSSL_memcmp 4565 EXIST::FUNCTION:
OPENSSL_strncasecmp 4566 EXIST::FUNCTION:
OPENSSL_gmtime 4567 EXIST::FUNCTION:
OPENSSL_gmtime_adj 4568 EXIST::FUNCTION:
SRP_VBASE_get_by_user 4569 EXIST::FUNCTION:SRP
SRP_Calc_server_key 4570 EXIST::FUNCTION:SRP
SRP_create_verifier 4571 EXIST::FUNCTION:SRP
SRP_create_verifier_BN 4572 EXIST::FUNCTION:SRP
SRP_Calc_u 4573 EXIST::FUNCTION:SRP
SRP_VBASE_free 4574 EXIST::FUNCTION:SRP
SRP_Calc_client_key 4575 EXIST::FUNCTION:SRP
SRP_get_default_gN 4576 EXIST::FUNCTION:SRP
SRP_Calc_x 4577 EXIST::FUNCTION:SRP
SRP_Calc_B 4578 EXIST::FUNCTION:SRP
SRP_VBASE_new 4579 EXIST::FUNCTION:SRP
SRP_check_known_gN_param 4580 EXIST::FUNCTION:SRP
SRP_Calc_A 4581 EXIST::FUNCTION:SRP
SRP_Verify_A_mod_N 4582 EXIST::FUNCTION:SRP
SRP_VBASE_init 4583 EXIST::FUNCTION:SRP
SRP_Verify_B_mod_N 4584 EXIST::FUNCTION:SRP
EC_KEY_set_public_key_affine_coordinates 4585 EXIST:!VMS:FUNCTION:EC
EC_KEY_set_pub_key_aff_coords 4585 EXIST:VMS:FUNCTION:EC
EVP_aes_192_ctr 4586 EXIST::FUNCTION:AES
EVP_PKEY_meth_get0_info 4587 EXIST::FUNCTION:
EVP_PKEY_meth_copy 4588 EXIST::FUNCTION:
ERR_add_error_vdata 4589 EXIST::FUNCTION:
EVP_aes_128_ctr 4590 EXIST::FUNCTION:AES
EVP_aes_256_ctr 4591 EXIST::FUNCTION:AES
EC_GFp_nistp224_method 4592 EXIST::FUNCTION:EC,EC_NISTP_64_GCC_128
EC_KEY_get_flags 4593 EXIST::FUNCTION:EC
RSA_padding_add_PKCS1_PSS_mgf1 4594 EXIST::FUNCTION:RSA
EVP_aes_128_xts 4595 EXIST::FUNCTION:AES
private_SHA224_Init 4596 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256
private_AES_set_decrypt_key 4597 EXIST::FUNCTION:AES
private_WHIRLPOOL_Init 4598 EXIST:OPENSSL_FIPS:FUNCTION:WHIRLPOOL
EVP_aes_256_xts 4599 EXIST::FUNCTION:AES
private_SHA512_Init 4600 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512
EVP_aes_128_gcm 4601 EXIST::FUNCTION:AES
EC_KEY_clear_flags 4602 EXIST::FUNCTION:EC
EC_KEY_set_flags 4603 EXIST::FUNCTION:EC
private_DES_set_key_unchecked 4604 EXIST:OPENSSL_FIPS:FUNCTION:DES
EVP_aes_256_ccm 4605 EXIST::FUNCTION:AES
private_AES_set_encrypt_key 4606 EXIST::FUNCTION:AES
RSA_verify_PKCS1_PSS_mgf1 4607 EXIST::FUNCTION:RSA
private_SHA1_Init 4608 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA1
EVP_aes_128_ccm 4609 EXIST::FUNCTION:AES
private_SEED_set_key 4610 EXIST:OPENSSL_FIPS:FUNCTION:SEED
EVP_aes_192_gcm 4611 EXIST::FUNCTION:AES
X509_ALGOR_set_md 4612 EXIST::FUNCTION:
private_SHA256_Init 4613 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256
RAND_init_fips 4614 EXIST:OPENSSL_FIPS:FUNCTION:
EVP_aes_256_gcm 4615 EXIST::FUNCTION:AES
private_SHA384_Init 4616 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512
EVP_aes_192_ccm 4617 EXIST::FUNCTION:AES
CMAC_CTX_copy 4618 EXIST::FUNCTION:
CMAC_CTX_free 4619 EXIST::FUNCTION:
CMAC_CTX_get0_cipher_ctx 4620 EXIST::FUNCTION:
CMAC_CTX_cleanup 4621 EXIST::FUNCTION:
CMAC_Init 4622 EXIST::FUNCTION:
CMAC_Update 4623 EXIST::FUNCTION:
CMAC_resume 4624 EXIST::FUNCTION:
CMAC_CTX_new 4625 EXIST::FUNCTION:
CMAC_Final 4626 EXIST::FUNCTION:
CRYPTO_ctr128_encrypt_ctr32 4627 EXIST::FUNCTION:
CRYPTO_gcm128_release 4628 EXIST::FUNCTION:
CRYPTO_ccm128_decrypt_ccm64 4629 EXIST::FUNCTION:
CRYPTO_ccm128_encrypt 4630 EXIST::FUNCTION:
CRYPTO_gcm128_encrypt 4631 EXIST::FUNCTION:
CRYPTO_xts128_encrypt 4632 EXIST::FUNCTION:
EVP_rc4_hmac_md5 4633 EXIST::FUNCTION:MD5,RC4
CRYPTO_nistcts128_decrypt_block 4634 EXIST::FUNCTION:
CRYPTO_gcm128_setiv 4635 EXIST::FUNCTION:
CRYPTO_nistcts128_encrypt 4636 EXIST::FUNCTION:
EVP_aes_128_cbc_hmac_sha1 4637 EXIST::FUNCTION:AES,SHA,SHA1
CRYPTO_gcm128_tag 4638 EXIST::FUNCTION:
CRYPTO_ccm128_encrypt_ccm64 4639 EXIST::FUNCTION:
ENGINE_load_rdrand 4640 EXIST::FUNCTION:ENGINE
CRYPTO_ccm128_setiv 4641 EXIST::FUNCTION:
CRYPTO_nistcts128_encrypt_block 4642 EXIST::FUNCTION:
CRYPTO_gcm128_aad 4643 EXIST::FUNCTION:
CRYPTO_ccm128_init 4644 EXIST::FUNCTION:
CRYPTO_nistcts128_decrypt 4645 EXIST::FUNCTION:
CRYPTO_gcm128_new 4646 EXIST::FUNCTION:
CRYPTO_ccm128_tag 4647 EXIST::FUNCTION:
CRYPTO_ccm128_decrypt 4648 EXIST::FUNCTION:
CRYPTO_ccm128_aad 4649 EXIST::FUNCTION:
CRYPTO_gcm128_init 4650 EXIST::FUNCTION:
CRYPTO_gcm128_decrypt 4651 EXIST::FUNCTION:
ENGINE_load_rsax 4652 NOEXIST::FUNCTION:
CRYPTO_gcm128_decrypt_ctr32 4653 EXIST::FUNCTION:
CRYPTO_gcm128_encrypt_ctr32 4654 EXIST::FUNCTION:
CRYPTO_gcm128_finish 4655 EXIST::FUNCTION:
EVP_aes_256_cbc_hmac_sha1 4656 EXIST::FUNCTION:AES,SHA,SHA1
PKCS5_pbkdf2_set 4657 EXIST::FUNCTION:
CMS_add0_recipient_password 4658 EXIST::FUNCTION:CMS
CMS_decrypt_set1_password 4659 EXIST::FUNCTION:CMS
CMS_RecipientInfo_set0_password 4660 EXIST::FUNCTION:CMS
RAND_set_fips_drbg_type 4661 EXIST:OPENSSL_FIPS:FUNCTION:
X509_REQ_sign_ctx 4662 EXIST::FUNCTION:EVP
RSA_PSS_PARAMS_new 4663 EXIST::FUNCTION:RSA
X509_CRL_sign_ctx 4664 EXIST::FUNCTION:EVP
X509_signature_dump 4665 EXIST::FUNCTION:EVP
d2i_RSA_PSS_PARAMS 4666 EXIST::FUNCTION:RSA
RSA_PSS_PARAMS_it 4667 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA
RSA_PSS_PARAMS_it 4667 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA
RSA_PSS_PARAMS_free 4668 EXIST::FUNCTION:RSA
X509_sign_ctx 4669 EXIST::FUNCTION:EVP
i2d_RSA_PSS_PARAMS 4670 EXIST::FUNCTION:RSA
ASN1_item_sign_ctx 4671 EXIST::FUNCTION:EVP
EC_GFp_nistp521_method 4672 EXIST::FUNCTION:EC,EC_NISTP_64_GCC_128
EC_GFp_nistp256_method 4673 EXIST::FUNCTION:EC,EC_NISTP_64_GCC_128
OPENSSL_stderr 4674 EXIST::FUNCTION:
OPENSSL_cpuid_setup 4675 EXIST::FUNCTION:
OPENSSL_showfatal 4676 EXIST::FUNCTION:
BIO_new_dgram_sctp 4677 EXIST::FUNCTION:SCTP
BIO_dgram_sctp_msg_waiting 4678 EXIST::FUNCTION:SCTP
BIO_dgram_sctp_wait_for_dry 4679 EXIST::FUNCTION:SCTP
BIO_s_datagram_sctp 4680 EXIST::FUNCTION:DGRAM,SCTP
BIO_dgram_is_sctp 4681 EXIST::FUNCTION:SCTP
BIO_dgram_sctp_notification_cb 4682 EXIST::FUNCTION:SCTP
i2d_DHxparams 4683 EXIST::FUNCTION:DH
EC_curve_nist2nid 4684 EXIST::FUNCTION:EC
DH_get_1024_160 4685 EXIST::FUNCTION:DH
PEM_write_DHxparams 4686 EXIST:!WIN16:FUNCTION:DH
d2i_DHxparams 4687 EXIST::FUNCTION:DH
EC_curve_nid2nist 4688 EXIST::FUNCTION:EC
DH_get_2048_256 4689 EXIST::FUNCTION:DH
PEM_write_bio_DHxparams 4690 EXIST::FUNCTION:DH
DH_get_2048_224 4691 EXIST::FUNCTION:DH
X509_chain_check_suiteb 4692 EXIST::FUNCTION:
X509_chain_up_ref 4693 EXIST::FUNCTION:
X509_VERIFY_PARAM_set1_ip_asc 4694 EXIST::FUNCTION:
X509_CRL_check_suiteb 4695 EXIST::FUNCTION:
X509_VERIFY_PARAM_set1_email 4696 EXIST::FUNCTION:
X509_check_email 4697 EXIST::FUNCTION:
X509_check_host 4698 EXIST::FUNCTION:
X509_check_ip_asc 4699 EXIST::FUNCTION:
X509_get0_signature 4700 EXIST::FUNCTION:
X509_get_signature_nid 4701 EXIST::FUNCTION:
X509_VERIFY_PARAM_set1_host 4702 EXIST::FUNCTION:
X509_VERIFY_PARAM_set1_ip 4703 EXIST::FUNCTION:
X509_check_ip 4704 EXIST::FUNCTION:
X509_STORE_set_lookup_crls_cb 4705 EXIST::FUNCTION:
X509_CRL_diff 4706 EXIST::FUNCTION:
X509_CRL_http_nbio 4707 EXIST::FUNCTION:EVP
OCSP_REQ_CTX_i2d 4708 EXIST::FUNCTION:
OCSP_REQ_CTX_get0_mem_bio 4709 EXIST::FUNCTION:
X509_STORE_CTX_get0_store 4710 EXIST::FUNCTION:
X509_REVOKED_dup 4711 EXIST::FUNCTION:
CMS_RecipientInfo_encrypt 4712 EXIST::FUNCTION:CMS
OCSP_REQ_CTX_http 4713 EXIST::FUNCTION:
OCSP_REQ_CTX_nbio 4714 EXIST::FUNCTION:
X509_http_nbio 4715 EXIST::FUNCTION:EVP
OCSP_set_max_response_length 4716 EXIST::FUNCTION:
OCSP_REQ_CTX_new 4717 EXIST::FUNCTION:
OCSP_REQ_CTX_nbio_d2i 4718 EXIST::FUNCTION:
EVP_aes_256_wrap 4719 EXIST::FUNCTION:AES
CRYPTO_128_wrap 4720 EXIST::FUNCTION:
RSA_OAEP_PARAMS_new 4721 EXIST::FUNCTION:RSA
CRYPTO_128_unwrap 4722 EXIST::FUNCTION:
ECDSA_METHOD_set_name 4723 EXIST::FUNCTION:ECDSA
CMS_RecipientInfo_kari_decrypt 4724 EXIST::FUNCTION:CMS
CMS_SignerInfo_get0_pkey_ctx 4725 EXIST::FUNCTION:CMS
ECDSA_METHOD_set_flags 4726 EXIST::FUNCTION:ECDSA
ECDSA_METHOD_set_sign_setup 4727 EXIST::FUNCTION:ECDSA
CMS_RecipientInfo_kari_orig_id_cmp 4728 EXIST:!VMS:FUNCTION:CMS
CMS_RecipInfo_kari_orig_id_cmp 4728 EXIST:VMS:FUNCTION:CMS
CMS_RecipientInfo_kari_get0_alg 4729 EXIST::FUNCTION:CMS
EVP_aes_192_wrap 4730 EXIST::FUNCTION:AES
EVP_aes_128_cbc_hmac_sha256 4731 EXIST::FUNCTION:AES,SHA256
DH_compute_key_padded 4732 EXIST::FUNCTION:DH
ECDSA_METHOD_set_sign 4733 EXIST::FUNCTION:ECDSA
CMS_RecipientEncryptedKey_cert_cmp 4734 EXIST:!VMS:FUNCTION:CMS
CMS_RecipEncryptedKey_cert_cmp 4734 EXIST:VMS:FUNCTION:CMS
DH_KDF_X9_42 4735 EXIST::FUNCTION:DH
RSA_OAEP_PARAMS_free 4736 EXIST::FUNCTION:RSA
EVP_des_ede3_wrap 4737 EXIST::FUNCTION:DES
RSA_OAEP_PARAMS_it 4738 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA
RSA_OAEP_PARAMS_it 4738 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA
ASN1_TIME_diff 4739 EXIST::FUNCTION:
EVP_aes_256_cbc_hmac_sha256 4740 EXIST::FUNCTION:AES,SHA256
CMS_SignerInfo_get0_signature 4741 EXIST::FUNCTION:CMS
CMS_RecipientInfo_kari_get0_reks 4742 EXIST:!VMS:FUNCTION:CMS
CMS_RecipInfo_kari_get0_reks 4742 EXIST:VMS:FUNCTION:CMS
EVP_aes_128_wrap 4743 EXIST::FUNCTION:AES
CMS_SignerInfo_get0_md_ctx 4744 EXIST::FUNCTION:CMS
OPENSSL_gmtime_diff 4745 EXIST::FUNCTION:
CMS_RecipientInfo_kari_set0_pkey 4746 EXIST:!VMS:FUNCTION:CMS
CMS_RecipInfo_kari_set0_pkey 4746 EXIST:VMS:FUNCTION:CMS
i2d_RSA_OAEP_PARAMS 4747 EXIST::FUNCTION:RSA
d2i_RSA_OAEP_PARAMS 4748 EXIST::FUNCTION:RSA
ECDH_KDF_X9_62 4749 EXIST::FUNCTION:ECDH
CMS_RecipientInfo_kari_get0_ctx 4750 EXIST::FUNCTION:CMS
ECDSA_METHOD_new 4751 EXIST::FUNCTION:ECDSA
CMS_RecipientInfo_get0_pkey_ctx 4752 EXIST::FUNCTION:CMS
CMS_RecipientEncryptedKey_get0_id 4753 EXIST:!VMS:FUNCTION:CMS
CMS_RecipEncryptedKey_get0_id 4753 EXIST:VMS:FUNCTION:CMS
RSA_padding_check_PKCS1_OAEP_mgf1 4754 EXIST:!VMS:FUNCTION:RSA
RSA_pad_check_PKCS1_OAEP_mgf1 4754 EXIST:VMS:FUNCTION:RSA
ECDSA_METHOD_set_verify 4755 EXIST::FUNCTION:ECDSA
CMS_SharedInfo_encode 4756 EXIST::FUNCTION:CMS
RSA_padding_add_PKCS1_OAEP_mgf1 4757 EXIST::FUNCTION:RSA
CMS_RecipientInfo_kari_get0_orig_id 4758 EXIST:!VMS:FUNCTION:CMS
CMS_RecipInfo_kari_get0_orig_id 4758 EXIST:VMS:FUNCTION:CMS
ECDSA_METHOD_free 4759 EXIST::FUNCTION:ECDSA
X509_VERIFY_PARAM_get_count 4760 EXIST::FUNCTION:
X509_VERIFY_PARAM_get0_name 4761 EXIST::FUNCTION:
X509_VERIFY_PARAM_get0 4762 EXIST::FUNCTION:
X509V3_EXT_free 4763 EXIST::FUNCTION:
BIO_hex_string 4764 EXIST::FUNCTION:
X509_VERIFY_PARAM_set_hostflags 4765 EXIST::FUNCTION:
BUF_strnlen 4766 EXIST::FUNCTION:
X509_VERIFY_PARAM_get0_peername 4767 EXIST::FUNCTION:
ECDSA_METHOD_set_app_data 4768 EXIST::FUNCTION:ECDSA
sk_deep_copy 4769 EXIST::FUNCTION:
ECDSA_METHOD_get_app_data 4770 EXIST::FUNCTION:ECDSA
X509_VERIFY_PARAM_add1_host 4771 EXIST::FUNCTION:
EC_GROUP_get_mont_data 4772 EXIST::FUNCTION:EC
i2d_re_X509_tbs 4773 EXIST::FUNCTION:
EVP_PKEY_asn1_set_item 4774 EXIST::FUNCTION:
sm3_update 4775 EXIST::FUNCTION:
sm3_compress 4776 EXIST::FUNCTION:
sm3_final 4777 EXIST::FUNCTION:
sm3 4778 EXIST::FUNCTION:
sm3_init 4779 EXIST::FUNCTION:
EVP_sm3 4780 EXIST::FUNCTION:SM3
sms4_cbc_encrypt 4781 EXIST::FUNCTION:
EVP_sms4_ofb 4782 EXIST::FUNCTION:SMS4
sms4_ofb128_encrypt 4783 EXIST::FUNCTION:
EVP_sms4_ecb 4784 EXIST::FUNCTION:SMS4
EVP_sms4_cfb128 4785 EXIST::FUNCTION:SMS4
sms4_set_encrypt_key 4786 EXIST::FUNCTION:
sms4_encrypt 4787 EXIST::FUNCTION:
EVP_sms4_cbc 4788 EXIST::FUNCTION:SMS4
sms4_ecb_encrypt 4789 EXIST::FUNCTION:
sms4_cfb128_encrypt 4790 EXIST::FUNCTION:
sms4_set_decrypt_key 4791 EXIST::FUNCTION:

View File

@@ -2,8 +2,12 @@
# A bit of an evil hack but it post processes the file ../MINFO which
# is generated by `make files` in the top directory.
# This script outputs one mega makefile that has no shell stuff or any
# funny stuff
#
# funny stuff (if the target is not "copy").
# If the target is "copy", then it tries to create a makefile that can be
# safely used with the -j flag and that is compatible with the top-level
# Makefile, in the sense that it uses the same options and assembler files etc.
use Cwd;
$INSTALLTOP="/usr/local/ssl";
$OPENSSLDIR="/usr/local/ssl";
@@ -18,6 +22,8 @@ local $zlib_opt = 0; # 0 = no zlib, 1 = static, 2 = dynamic
local $zlib_lib = "";
local $perl_asm = 0; # 1 to autobuild asm files from perl scripts
my $ex_l_libs = "";
# Options to import from top level Makefile
my %mf_import = (
@@ -26,6 +32,7 @@ my %mf_import = (
INSTALLTOP => \$INSTALLTOP,
OPENSSLDIR => \$OPENSSLDIR,
PLATFORM => \$mf_platform,
CC => \$mf_cc,
CFLAG => \$mf_cflag,
DEPFLAG => \$mf_depflag,
CPUID_OBJ => \$mf_cpuid_asm,
@@ -40,15 +47,19 @@ my %mf_import = (
SHA1_ASM_OBJ => \$mf_sha_asm,
RMD160_ASM_OBJ => \$mf_rmd_asm,
WP_ASM_OBJ => \$mf_wp_asm,
CMLL_ENC => \$mf_cm_asm
CMLL_ENC => \$mf_cm_asm,
MODES_ASM_OBJ => \$mf_modes_asm,
ENGINES_ASM_OBJ=> \$mf_engines_asm,
BASEADDR => \$baseaddr,
FIPSDIR => \$fipsdir,
EC_ASM => \$mf_ec_asm,
);
open(IN,"<Makefile") || die "unable to open Makefile!\n";
while(<IN>) {
my ($mf_opt, $mf_ref);
while (($mf_opt, $mf_ref) = each %mf_import) {
if (/^$mf_opt\s*=\s*(.*)$/) {
if (/^$mf_opt\s*=\s*(.*)$/ && !defined($$mfref)) {
$$mf_ref = $1;
}
}
@@ -79,7 +90,8 @@ $infile="MINFO";
"netware-libc", "CodeWarrior for NetWare - LibC - with WinSock Sockets",
"netware-libc-bsdsock", "CodeWarrior for NetWare - LibC - with BSD Sockets",
"default","cc under unix",
"auto", "auto detect from top level Makefile"
"auto", "auto detect from top level Makefile",
"copy", "copy from top level Makefile"
);
$platform="";
@@ -96,14 +108,16 @@ foreach (@ARGV)
print STDERR <<"EOF";
and [options] can be one of
no-md2 no-md4 no-md5 no-sha no-mdc2 - Skip this digest
no-ripemd
no-ripemd no-sm3
no-rc2 no-rc4 no-rc5 no-idea no-des - Skip this symetric cipher
no-bf no-cast no-aes no-camellia no-seed
no-sms4
no-rsa no-dsa no-dh - Skip this public key cipher
no-ssl2 no-ssl3 - Skip this version of SSL
just-ssl - remove all non-ssl keys/digest
no-asm - No x86 asm
no-krb5 - No KRB5
no-srp - No SRP
no-ec - No EC
no-ecdsa - No ECDSA
no-ecdh - No ECDH
@@ -157,7 +171,7 @@ $mkdir="-mkdir" unless defined $mkdir;
$ranlib="echo ranlib";
$cc=(defined($VARS{'CC'}))?$VARS{'CC'}:'cc';
$src_dir=(defined($VARS{'SRC'}))?$VARS{'SRC'}:'.';
$src_dir=(defined($VARS{'SRC'}))?$VARS{'SRC'}: $platform eq 'copy' ? getcwd() : '.';
$bin_dir=(defined($VARS{'BIN'}))?$VARS{'BIN'}:'';
# $bin_dir.=$o causes a core dump on my sparc :-(
@@ -167,7 +181,8 @@ $NT=0;
push(@INC,"util/pl","pl");
if ($platform eq "auto") {
if ($platform eq "auto" || $platform eq 'copy') {
$orig_platform = $platform;
$platform = $mf_platform;
print STDERR "Imported platform $mf_platform\n";
}
@@ -228,6 +243,8 @@ else
$cflags.=' -DTERMIO';
}
$fipsdir =~ s/\//${o}/g;
$out_dir=(defined($VARS{'OUT'}))?$VARS{'OUT'}:$out_def.($debug?".dbg":"");
$tmp_dir=(defined($VARS{'TMP'}))?$VARS{'TMP'}:$tmp_def.($debug?".dbg":"");
$inc_dir=(defined($VARS{'INC'}))?$VARS{'INC'}:$inc_def;
@@ -261,6 +278,7 @@ $cflags.=" -DOPENSSL_NO_SOCK" if $no_sock;
$cflags.=" -DOPENSSL_NO_SSL2" if $no_ssl2;
$cflags.=" -DOPENSSL_NO_SSL3" if $no_ssl3;
$cflags.=" -DOPENSSL_NO_TLSEXT" if $no_tlsext;
$cflags.=" -DOPENSSL_NO_SRP" if $no_srp;
$cflags.=" -DOPENSSL_NO_CMS" if $no_cms;
$cflags.=" -DOPENSSL_NO_ERR" if $no_err;
$cflags.=" -DOPENSSL_NO_KRB5" if $no_krb5;
@@ -270,9 +288,13 @@ $cflags.=" -DOPENSSL_NO_ECDH" if $no_ecdh;
$cflags.=" -DOPENSSL_NO_GOST" if $no_gost;
$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine;
$cflags.=" -DOPENSSL_NO_HW" if $no_hw;
$cflags.=" -DOPENSSL_FIPS" if $fips;
$cflags.=" -DOPENSSL_NO_JPAKE" if $no_jpake;
$cflags.=" -DOPENSSL_NO_EC2M" if $no_ec2m;
$cflags.= " -DZLIB" if $zlib_opt;
$cflags.= " -DZLIB_SHARED" if $zlib_opt == 2;
$cflags.=" -DOPENSSL_NO_SM3" if $no_sm3;
$cflags.=" -DOPENSSL_NO_SMS4" if $no_sms4;
if ($no_static_engine)
{
@@ -290,6 +312,11 @@ else
##else
{ $cflags="$c_flags$cflags" if ($c_flags ne ""); }
if ($orig_platform eq 'copy') {
$cflags = $mf_cflag;
$cc = $mf_cc;
}
$ex_libs="$l_flags$ex_libs" if ($l_flags ne "");
@@ -316,7 +343,7 @@ open(IN,"<$infile") || die "unable to open $infile:$!\n";
$_=<IN>;
for (;;)
{
chop;
s/\s*$//; # was chop, didn't work in mixture of perls for Windows...
($key,$val)=/^([^=]+)=(.*)/;
if ($key eq "RELATIVE_DIRECTORY")
@@ -381,6 +408,14 @@ for (;;)
}
close(IN);
if ($orig_platform eq 'copy')
{
# Remove opensslconf.h so it doesn't get updated if we configure a
# different branch.
$exheader =~ s/[^ ]+\/opensslconf.h//;
$header =~ s/[^ ]+\/opensslconf.h//;
}
if ($shlib)
{
$extra_install= <<"EOF";
@@ -404,9 +439,15 @@ else
\$(CP) \"\$(O_CRYPTO)\" \"\$(INSTALLTOP)${o}lib\"
EOF
$ex_libs .= " $zlib_lib" if $zlib_opt == 1;
if ($fips)
{
$build_targets .= " \$(LIB_D)$o$crypto_compat \$(PREMAIN_DSO_EXE)";
$ex_l_libs .= " \$(O_FIPSCANISTER)";
}
}
$defs= <<"EOF";
# N.B. You MUST use -j on FreeBSD.
# This makefile has been automatically generated from the OpenSSL distribution.
# This single makefile will build the complete OpenSSL distribution and
# by default leave the 'intertesting' output files in .${o}out and the stuff
@@ -448,7 +489,7 @@ LINK=$link
LFLAGS=$lflags
RSC=$rsc
# The output directory for everything intersting
# The output directory for everything interesting
OUT_D=$out_dir
# The output directory for all the temporary muck
TMP_D=$tmp_dir
@@ -465,6 +506,19 @@ MKLIB=$bin_dir$mklib
MLFLAGS=$mlflags
ASM=$bin_dir$asm
# FIPS validated module and support file locations
E_PREMAIN_DSO=fips_premain_dso
FIPSDIR=$fipsdir
BASEADDR=$baseaddr
FIPSLIB_D=\$(FIPSDIR)${o}lib
FIPS_PREMAIN_SRC=\$(FIPSLIB_D)${o}fips_premain.c
O_FIPSCANISTER=\$(FIPSLIB_D)${o}fipscanister.lib
FIPS_SHA1_EXE=\$(FIPSDIR)${o}bin${o}fips_standalone_sha1${exep}
PREMAIN_DSO_EXE=\$(BIN_D)${o}fips_premain_dso$exep
FIPSLINK=\$(PERL) \$(FIPSDIR)${o}bin${o}fipslink.pl
######################################################
# You should not need to touch anything below this point
######################################################
@@ -497,7 +551,7 @@ SO_CRYPTO= $plib\$(CRYPTO)$so_shlibp
L_SSL= \$(LIB_D)$o$plib\$(SSL)$libp
L_CRYPTO= \$(LIB_D)$o$plib\$(CRYPTO)$libp
L_LIBS= \$(L_SSL) \$(L_CRYPTO)
L_LIBS= \$(L_SSL) \$(L_CRYPTO) $ex_l_libs
######################################################
# Don't touch anything below this point
@@ -513,7 +567,7 @@ LIBS_DEP=\$(O_CRYPTO) \$(O_SSL)
EOF
$rules=<<"EOF";
all: banner \$(TMP_D) \$(BIN_D) \$(TEST_D) \$(LIB_D) \$(INCO_D) headers lib exe
all: banner \$(TMP_D) \$(BIN_D) \$(TEST_D) \$(LIB_D) \$(INCO_D) headers lib exe $build_targets
banner:
$banner
@@ -536,8 +590,12 @@ $banner
\$(INC_D):
\$(MKDIR) \"\$(INC_D)\"
# This needs to be invoked once, when the makefile is first constructed, or
# after cleaning.
init: \$(TMP_D) \$(LIB_D) \$(INC_D) \$(INCO_D) \$(BIN_D) \$(TEST_D) headers
\$(PERL) \$(SRC_D)/util/copy-if-different.pl "\$(SRC_D)/crypto/opensslconf.h" "\$(INCO_D)/opensslconf.h"
headers: \$(HEADER) \$(EXHEADER)
@
lib: \$(LIBS_DEP) \$(E_SHLIB)
@@ -555,11 +613,6 @@ install: all
\$(CP) apps${o}openssl.cnf \"\$(OPENSSLDIR)\"
$extra_install
test: \$(T_EXE)
cd \$(BIN_D)
..${o}ms${o}test
clean:
\$(RM) \$(TMP_D)$o*.*
@@ -567,8 +620,25 @@ vclean:
\$(RM) \$(TMP_D)$o*.*
\$(RM) \$(OUT_D)$o*.*
reallyclean:
\$(RM) -rf \$(TMP_D)
\$(RM) -rf \$(BIN_D)
\$(RM) -rf \$(TEST_D)
\$(RM) -rf \$(LIB_D)
\$(RM) -rf \$(INC_D)
EOF
if ($orig_platform ne 'copy')
{
$rules .= <<"EOF";
test: \$(T_EXE)
cd \$(BIN_D)
..${o}ms${o}test
EOF
}
my $platform_cpp_symbol = "MK1MF_PLATFORM_$platform";
$platform_cpp_symbol =~ s/-/_/g;
if (open(IN,"crypto/buildinf.h"))
@@ -598,14 +668,14 @@ open (OUT,">>crypto/buildinf.h") || die "Can't open buildinf.h";
printf OUT <<EOF;
#ifdef $platform_cpp_symbol
/* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */
#define CFLAGS "$cc $cflags"
#define CFLAGS "compiler: $cc $cflags"
#define PLATFORM "$platform"
EOF
printf OUT " #define DATE \"%s\"\n", scalar gmtime();
printf OUT "#endif\n";
close(OUT);
# Strip of trailing ' '
# Strip off trailing ' '
foreach (keys %lib_obj) { $lib_obj{$_}=&clean_up_ws($lib_obj{$_}); }
$test=&clean_up_ws($test);
$e_exe=&clean_up_ws($e_exe);
@@ -629,17 +699,49 @@ $rules.=&do_compile_rule("\$(OBJ_D)",$test,"\$(APP_CFLAGS)");
$defs.=&do_defs("E_OBJ",$e_exe,"\$(OBJ_D)",$obj);
$rules.=&do_compile_rule("\$(OBJ_D)",$e_exe,'-DMONOLITH $(APP_CFLAGS)');
# Special case rule for fips_premain_dso
if ($fips)
{
$rules.=&cc_compile_target("\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj",
"\$(FIPS_PREMAIN_SRC)",
"-DFINGERPRINT_PREMAIN_DSO_LOAD \$(APP_CFLAGS)", "");
$rules.=&do_link_rule("\$(PREMAIN_DSO_EXE)","\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj \$(CRYPTOOBJ) \$(O_FIPSCANISTER)","","\$(EX_LIBS)", 1);
}
sub fix_asm
{
my($asm, $dir) = @_;
return '' if $asm eq '';
$asm = " $asm";
$asm =~ s/\s+/ $dir\//g;
$asm =~ s/\.o//g;
$asm =~ s/^ //;
return $asm . ' ';
}
if ($orig_platform eq 'copy') {
$lib_obj{CRYPTO} .= fix_asm($mf_md5_asm, 'crypto/md5');
$lib_obj{CRYPTO} .= fix_asm($mf_bn_asm, 'crypto/bn');
# cpuid is included by the crypto dir
#$lib_obj{CRYPTO} .= fix_asm($mf_cpuid_asm, 'crypto');
# AES asm files DON'T end up included by the aes dir itself
$lib_obj{CRYPTO} .= fix_asm($mf_aes_asm, 'crypto/aes');
$lib_obj{CRYPTO} .= fix_asm($mf_sha_asm, 'crypto/sha');
$lib_obj{CRYPTO} .= fix_asm($mf_engines_asm, 'engines');
$lib_obj{CRYPTO} .= fix_asm($mf_rc4_asm, 'crypto/rc4');
$lib_obj{CRYPTO} .= fix_asm($mf_modes_asm, 'crypto/modes');
$lib_obj{CRYPTO} .= fix_asm($mf_ec_asm, 'crypto/ec');
}
foreach (values %lib_nam)
{
$lib_obj=$lib_obj{$_};
local($slib)=$shlib;
if (($_ eq "SSL") && $no_ssl2 && $no_ssl3)
{
$rules.="\$(O_SSL):\n\n";
next;
}
$defs.=&do_defs(${_}."OBJ",$lib_obj,"\$(OBJ_D)",$obj);
$lib=($slib)?" \$(SHLIB_CFLAGS)".$shlib_ex_cflags{$_}:" \$(LIB_CFLAGS)";
$rules.=&do_compile_rule("\$(OBJ_D)",$lib_obj{$_},$lib);
@@ -677,7 +779,28 @@ foreach (split(/\s+/,$engines))
$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)");
$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)");
if ($fips)
{
if ($shlib)
{
$rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)",
"\$(O_CRYPTO)", "$crypto",
$shlib, "\$(SO_CRYPTO)", "\$(BASEADDR)");
}
else
{
$rules.= &do_lib_rule("\$(CRYPTOOBJ)",
"\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)", "");
$rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)",
"\$(LIB_D)$o$crypto_compat",$crypto,$shlib,"\$(SO_CRYPTO)", "");
}
}
else
{
$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,
"\$(SO_CRYPTO)");
}
foreach (split(" ",$otherlibs))
{
@@ -687,7 +810,9 @@ foreach (split(" ",$otherlibs))
}
$rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
$rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)", ($fips && !$shlib) ? 2 : 0);
$rules .= get_tests('test/Makefile') if $orig_platform eq 'copy';
print $defs;
@@ -781,6 +906,8 @@ sub var_add
@a=grep(!/(^sha1)|(_sha1$)|(m_dss1$)/,@a) if $no_sha1;
@a=grep(!/_mdc2$/,@a) if $no_mdc2;
@a=grep(!/(srp)/,@a) if $no_srp;
@a=grep(!/^engine$/,@a) if $no_engine;
@a=grep(!/^hw$/,@a) if $no_hw;
@a=grep(!/(^rsa$)|(^genrsa$)/,@a) if $no_rsa;
@@ -790,6 +917,9 @@ sub var_add
@a=grep(!/(^dh)|(_sha1$)|(m_dss1$)/,@a) if $no_sha1;
@a=grep(!/(^sm3)|(_sm3$)/,@a) if $no_sm3;
@a=grep(!/(^sms4)|(_sms4$)/,@a) if $no_sms4;
grep($_="$dir/$_",@a);
@a=grep(!/(^|\/)s_/,@a) if $no_sock;
@a=grep(!/(^|\/)bio_sock/,@a) if $no_sock;
@@ -904,6 +1034,11 @@ sub do_compile_rule
{
$ret.=&Sasm_compile_target("$to${o}$n$obj",$s,$n);
}
elsif (defined &special_compile_target and
($s=special_compile_target($_)))
{
$ret.=$s;
}
else { die "no rule for $_"; }
}
return($ret);
@@ -914,6 +1049,10 @@ sub do_compile_rule
sub perlasm_compile_target
{
my($target,$source,$bname)=@_;
return platform_perlasm_compile_target($target, $source, $bname)
if defined &platform_perlasm_compile_target;
my($ret);
$bname =~ s/(.*)\.[^\.]$/$1/;
@@ -939,14 +1078,19 @@ sub Sasm_compile_target
sub cc_compile_target
{
local($target,$source,$ex_flags)=@_;
local($target,$source,$ex_flags, $srcd)=@_;
local($ret);
$ex_flags.=" -DMK1MF_BUILD -D$platform_cpp_symbol" if ($source =~ /cversion/);
$target =~ s/\//$o/g if $o ne "/";
$source =~ s/\//$o/g if $o ne "/";
$ret ="$target: \$(SRC_D)$o$source\n\t";
$ret.="\$(CC) ${ofile}$target $ex_flags -c \$(SRC_D)$o$source\n\n";
$srcd = "\$(SRC_D)$o" unless defined $srcd && $platform ne 'copy';
$ret ="$target: $srcd$source\n\t";
$ret.="\$(CC)";
$ret.= " -MMD" if $orig_platform eq "copy";
$ret.= " ${ofile}$target $ex_flags -c $srcd$source\n\n";
$target =~ s/\.o$/.d/;
$ret.=".sinclude \"$target\"\n\n" if $orig_platform eq "copy";
return($ret);
}
@@ -1011,17 +1155,22 @@ sub do_copy_rule
if ($n =~ /bss_file/)
{ $pp=".c"; }
else { $pp=$p; }
$ret.="$to${o}$n$pp: \$(SRC_D)$o$_$pp\n\t\$(CP) \"\$(SRC_D)$o$_$pp\" \"$to${o}$n$pp\"\n\n";
$ret.="$to${o}$n$pp: \$(SRC_D)$o$_$pp\n\t\$(PERL) \$(SRC_D)${o}util${o}copy-if-different.pl \"\$(SRC_D)$o$_$pp\" \"$to${o}$n$pp\"\n\n";
}
return($ret);
}
# Options picked up from the OPTIONS line in the top level Makefile
# generated by Configure.
sub read_options
{
# Many options are handled in a similar way. In particular
# no-xxx sets zero or more scalars to 1.
# Process these using a hash containing the option name and
# reference to the scalars to set.
# Process these using the %valid_options hash containing the option
# name and reference to the scalars to set. In some cases the option
# needs no special handling and can be ignored: this is done by
# setting the value to 0.
my %valid_options = (
"no-rc2" => \$no_rc2,
@@ -1055,9 +1204,13 @@ sub read_options
"gaswin" => \$gaswin,
"no-ssl2" => \$no_ssl2,
"no-ssl3" => \$no_ssl3,
"no-ssl3-method" => 0,
"no-tlsext" => \$no_tlsext,
"no-srp" => \$no_srp,
"no-cms" => \$no_cms,
"no-jpake" => \$no_jpake,
"no-ec2m" => \$no_ec2m,
"no-ec_nistp_64_gcc_128" => 0,
"no-err" => \$no_err,
"no-sock" => \$no_sock,
"no-krb5" => \$no_krb5,
@@ -1067,11 +1220,12 @@ sub read_options
"no-gost" => \$no_gost,
"no-engine" => \$no_engine,
"no-hw" => \$no_hw,
"no-rsax" => 0,
"just-ssl" =>
[\$no_rc2, \$no_idea, \$no_des, \$no_bf, \$no_cast,
\$no_md2, \$no_sha, \$no_mdc2, \$no_dsa, \$no_dh,
\$no_ssl2, \$no_err, \$no_ripemd, \$no_rc5,
\$no_aes, \$no_camellia, \$no_seed],
\$no_aes, \$no_camellia, \$no_seed, \$no_srp],
"rsaref" => 0,
"gcc" => \$gcc,
"debug" => \$debug,
@@ -1079,6 +1233,8 @@ sub read_options
"shlib" => \$shlib,
"dll" => \$shlib,
"shared" => 0,
"no-sctp" => 0,
"no-srtp" => 0,
"no-gmp" => 0,
"no-rfc3779" => 0,
"no-montasm" => 0,
@@ -1086,6 +1242,13 @@ sub read_options
"no-store" => 0,
"no-zlib" => 0,
"no-zlib-dynamic" => 0,
"no-ssl-trace" => 0,
"no-unit-test" => 0,
"no-libunbound" => 0,
"no-multiblock" => 0,
"fips" => \$fips,
"no-sm3" => \$no_sm3,
"no-sms4" => \$no_sms4
);
if (exists $valid_options{$_})

35
util/mkbuildinf.pl Executable file
View File

@@ -0,0 +1,35 @@
#!/usr/local/bin/perl
my ($cflags, $platform) = @ARGV;
$cflags = "compiler: $cflags";
$date = localtime();
print <<"END_OUTPUT";
#ifndef MK1MF_BUILD
/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */
#define CFLAGS cflags
/*
* Generate CFLAGS as an array of individual characters. This is a
* workaround for the situation where CFLAGS gets too long for a C90 string
* literal
*/
static const char cflags[] = {
END_OUTPUT
my $ctr = 0;
foreach my $c (split //, $cflags) {
# Max 18 characters per line
if (($ctr++ % 18) == 0) {
if ($ctr != 1) {
print "\n";
}
print " ";
}
print "'$c',";
}
print <<"END_OUTPUT";
'\\0'
};
#define PLATFORM "platform: $platform"
#define DATE "built on: $date"
#endif
END_OUTPUT

View File

@@ -79,13 +79,15 @@ my $OS2=0;
my $safe_stack_def = 0;
my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT",
"EXPORT_VAR_AS_FUNCTION", "ZLIB" );
"EXPORT_VAR_AS_FUNCTION", "ZLIB", "OPENSSL_FIPS" );
my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" );
my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
"CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1",
"SHA256", "SHA512", "RIPEMD",
"MDC2", "WHIRLPOOL", "RSA", "DSA", "DH", "EC", "ECDH", "ECDSA",
"SHA256", "SHA512", "RIPEMD", "SM3", "SMS4",
"MDC2", "WHIRLPOOL", "RSA", "DSA", "DH", "EC", "ECDH", "ECDSA", "EC2M",
"HMAC", "AES", "CAMELLIA", "SEED", "GOST",
# EC_NISTP_64_GCC_128
"EC_NISTP_64_GCC_128",
# Envelope "algorithms"
"EVP", "X509", "ASN1_TYPEDEFS",
# Helper "algorithms"
@@ -98,17 +100,31 @@ my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
# RFC3779
"RFC3779",
# TLS
"TLSEXT", "PSK",
"TLSEXT", "PSK", "SRP", "HEARTBEATS",
# CMS
"CMS",
# CryptoAPI Engine
"CAPIENG",
# SSL v2
"SSL2",
# SSL v3 method
"SSL3_METHOD",
# JPAKE
"JPAKE",
# NEXTPROTONEG
"NEXTPROTONEG",
# Deprecated functions
"DEPRECATED" );
"DEPRECATED",
# Hide SSL internals
"SSL_INTERN",
# SCTP
"SCTP",
# SRTP
"SRTP",
# SSL TRACE
"SSL_TRACE",
# Unit testing
"UNIT_TEST");
my $options="";
open(IN,"<Makefile") || die "unable to open Makefile!\n";
@@ -127,7 +143,12 @@ my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5;
my $no_ec; my $no_ecdsa; my $no_ecdh; my $no_engine; my $no_hw;
my $no_fp_api; my $no_static_engine=1; my $no_gmp; my $no_deprecated;
my $no_rfc3779; my $no_psk; my $no_tlsext; my $no_cms; my $no_capieng;
my $no_jpake; my $no_ssl2;
my $no_jpake; my $no_srp; my $no_ssl2; my $no_ec2m; my $no_nistp_gcc;
my $no_nextprotoneg; my $no_sctp; my $no_srtp; my $no_ssl_trace;
my $no_unit_test; my $no_ssl3_method;
my $no_sm3; my $no_sms4;
my $fips;
my $zlib;
@@ -151,6 +172,7 @@ foreach (@ARGV, split(/ /, $options))
}
$VMS=1 if $_ eq "VMS";
$OS2=1 if $_ eq "OS2";
$fips=1 if /^fips/;
if ($_ eq "zlib" || $_ eq "enable-zlib" || $_ eq "zlib-dynamic"
|| $_ eq "enable-zlib-dynamic") {
$zlib = 1;
@@ -215,9 +237,20 @@ foreach (@ARGV, split(/ /, $options))
elsif (/^no-rfc3779$/) { $no_rfc3779=1; }
elsif (/^no-tlsext$/) { $no_tlsext=1; }
elsif (/^no-cms$/) { $no_cms=1; }
elsif (/^no-ec2m$/) { $no_ec2m=1; }
elsif (/^no-ec_nistp_64_gcc_128$/) { $no_nistp_gcc=1; }
elsif (/^no-nextprotoneg$/) { $no_nextprotoneg=1; }
elsif (/^no-ssl2$/) { $no_ssl2=1; }
elsif (/^no-ssl3-method$/) { $no_ssl3_method=1; }
elsif (/^no-ssl-trace$/) { $no_ssl_trace=1; }
elsif (/^no-capieng$/) { $no_capieng=1; }
elsif (/^no-jpake$/) { $no_jpake=1; }
elsif (/^no-srp$/) { $no_srp=1; }
elsif (/^no-sctp$/) { $no_sctp=1; }
elsif (/^no-srtp$/) { $no_srtp=1; }
elsif (/^no-unit-test$/){ $no_unit_test=1; }
elsif (/^no-sm3$/) { $no_sm3=1; }
elsif (/^no-sms4$/) { $no_sms4=1; }
}
@@ -254,9 +287,13 @@ $max_crypto = $max_num;
my $ssl="ssl/ssl.h";
$ssl.=" ssl/kssl.h";
$ssl.=" ssl/tls1.h";
$ssl.=" ssl/srtp.h";
my $crypto ="crypto/crypto.h";
$crypto.=" crypto/cryptlib.h";
$crypto.=" crypto/o_dir.h";
$crypto.=" crypto/o_str.h";
$crypto.=" crypto/o_time.h";
$crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des;
$crypto.=" crypto/idea/idea.h" ; # unless $no_idea;
$crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4;
@@ -283,6 +320,7 @@ $crypto.=" crypto/ec/ec.h" ; # unless $no_ec;
$crypto.=" crypto/ecdsa/ecdsa.h" ; # unless $no_ecdsa;
$crypto.=" crypto/ecdh/ecdh.h" ; # unless $no_ecdh;
$crypto.=" crypto/hmac/hmac.h" ; # unless $no_hmac;
$crypto.=" crypto/cmac/cmac.h" ; # unless $no_hmac;
$crypto.=" crypto/engine/engine.h"; # unless $no_engine;
$crypto.=" crypto/stack/stack.h" ; # unless $no_stack;
@@ -317,6 +355,10 @@ $crypto.=" crypto/pqueue/pqueue.h";
$crypto.=" crypto/cms/cms.h";
$crypto.=" crypto/jpake/jpake.h";
$crypto.=" crypto/modes/modes.h";
$crypto.=" crypto/srp/srp.h";
$crypto.=" crypto/sm3/sm3.h" ; # unless $no_sm3;
$crypto.=" crypto/sms4/sms4.h" ; # unless $no_sms4;
my $symhacks="crypto/symhacks.h";
@@ -809,6 +851,7 @@ sub do_defs
$def .= "int PEM_write_bio_$1(void);";
next;
} elsif (/^DECLARE_PEM_write\s*\(\s*(\w*)\s*,/ ||
/^DECLARE_PEM_write_const\s*\(\s*(\w*)\s*,/ ||
/^DECLARE_PEM_write_cb\s*\(\s*(\w*)\s*,/ ) {
# Things not in Win16
$def .=
@@ -936,6 +979,8 @@ sub do_defs
$a .= ",RSA" if($s =~ /PEM_Seal(Final|Init|Update)/);
$a .= ",RSA" if($s =~ /RSAPrivateKey/);
$a .= ",RSA" if($s =~ /SSLv23?_((client|server)_)?method/);
$a .= ",SM3" if($s =~ /EVP_sm3/);
$a .= ",SMS4" if($s =~ /EVP_sms4/);
$platform{$s} =
&reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p);
@@ -1124,6 +1169,9 @@ sub is_valid
if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || $W32 || $W16)) {
return 1;
}
if ($keyword eq "OPENSSL_FIPS" && $fips) {
return 1;
}
if ($keyword eq "ZLIB" && $zlib) { return 1; }
return 0;
} else {
@@ -1170,10 +1218,22 @@ sub is_valid
if ($keyword eq "TLSEXT" && $no_tlsext) { return 0; }
if ($keyword eq "PSK" && $no_psk) { return 0; }
if ($keyword eq "CMS" && $no_cms) { return 0; }
if ($keyword eq "EC2M" && $no_ec2m) { return 0; }
if ($keyword eq "NEXTPROTONEG" && $no_nextprotoneg) { return 0; }
if ($keyword eq "EC_NISTP_64_GCC_128" && $no_nistp_gcc)
{ return 0; }
if ($keyword eq "SSL2" && $no_ssl2) { return 0; }
if ($keyword eq "SSL3_METHOD" && $no_ssl3_method) { return 0; }
if ($keyword eq "SSL_TRACE" && $no_ssl_trace) { return 0; }
if ($keyword eq "CAPIENG" && $no_capieng) { return 0; }
if ($keyword eq "JPAKE" && $no_jpake) { return 0; }
if ($keyword eq "SRP" && $no_srp) { return 0; }
if ($keyword eq "SCTP" && $no_sctp) { return 0; }
if ($keyword eq "SRTP" && $no_srtp) { return 0; }
if ($keyword eq "UNIT_TEST" && $no_unit_test) { return 0; }
if ($keyword eq "DEPRECATED" && $no_deprecated) { return 0; }
if ($keyword eq "SM3" && $no_sm3) { return 0; }
if ($keyword eq "SMS4" && $no_sms4) { return 0; }
# Nothing recognise as true
return 1;

View File

@@ -14,6 +14,7 @@ my $pack_errcode;
my $load_errcode;
my $errcount;
my $year = (localtime)[5] + 1900;
while (@ARGV) {
my $arg = $ARGV[0];
@@ -250,7 +251,7 @@ while (($hdr, $lib) = each %libinc)
if ($gotfile) {
while(<IN>) {
if(/^\#define\s+(\S+)\s+(\S+)/) {
if(/^\#\s*define\s+(\S+)\s+(\S+)/) {
$name = $1;
$code = $2;
next if $name =~ /^${lib}err/;
@@ -391,7 +392,7 @@ foreach $lib (keys %csrc)
} else {
push @out,
"/* ====================================================================\n",
" * Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved.\n",
" * Copyright (c) 2001-$year The OpenSSL Project. All rights reserved.\n",
" *\n",
" * Redistribution and use in source and binary forms, with or without\n",
" * modification, are permitted provided that the following conditions\n",
@@ -458,7 +459,8 @@ foreach $lib (keys %csrc)
print OUT @out;
undef @out;
print OUT <<"EOF";
/* The following lines are auto generated by the script mkerr.pl. Any changes
/*
* The following lines are auto generated by the script mkerr.pl. Any changes
* made after this point may be overwritten when the script is next run.
*/
EOF
@@ -472,7 +474,7 @@ EOF
${staticloader}void ERR_load_${lib}_strings(void);
${staticloader}void ERR_unload_${lib}_strings(void);
${staticloader}void ERR_${lib}_error(int function, int reason, char *file, int line);
#define ${lib}err(f,r) ERR_${lib}_error((f),(r),__FILE__,__LINE__)
# define ${lib}err(f,r) ERR_${lib}_error((f),(r),__FILE__,__LINE__)
EOF
}
@@ -483,7 +485,7 @@ EOF
EOF
foreach $i (@function) {
$z=6-int(length($i)/8);
$z=48 - length($i);
if($fcodes{$i} eq "X") {
$fassigned{$lib} =~ m/^:([^:]*):/;
$findcode = $1;
@@ -497,13 +499,13 @@ EOF
$fassigned{$lib} .= "$findcode:";
print STDERR "New Function code $i\n" if $debug;
}
printf OUT "#define $i%s $fcodes{$i}\n","\t" x $z;
printf OUT "# define $i%s $fcodes{$i}\n"," " x $z;
}
print OUT "\n/* Reason codes. */\n";
foreach $i (@reasons) {
$z=6-int(length($i)/8);
$z=48 - length($i);
if($rcodes{$i} eq "X") {
$rassigned{$lib} =~ m/^:([^:]*):/;
$findcode = $1;
@@ -517,7 +519,7 @@ EOF
$rassigned{$lib} .= "$findcode:";
print STDERR "New Reason code $i\n" if $debug;
}
printf OUT "#define $i%s $rcodes{$i}\n","\t" x $z;
printf OUT "# define $i%s $rcodes{$i}\n"," " x $z;
}
print OUT <<"EOF";
@@ -533,14 +535,21 @@ EOF
# First, read any existing reason string definitions:
my %err_reason_strings;
if (open(IN,"<$cfile")) {
my $line = "";
while (<IN>) {
if (/\b(${lib}_R_\w*)\b.*\"(.*)\"/) {
$err_reason_strings{$1} = $2;
}
if (/\b${lib}_F_(\w*)\b.*\"(.*)\"/) {
if (!exists $ftrans{$1} && ($1 ne $2)) {
print STDERR "WARNING: Mismatched function string $2\n";
$ftrans{$1} = $2;
chomp;
$_ = $line . $_;
$line = "";
if (/{ERR_(FUNC|REASON)\(/) {
if (/\b(${lib}_R_\w*)\b.*\"(.*)\"/) {
$err_reason_strings{$1} = $2;
} elsif (/\b${lib}_F_(\w*)\b.*\"(.*)\"/) {
if (!exists $ftrans{$1} && ($1 ne $2)) {
print STDERR "WARNING: Mismatched function string $2\n";
$ftrans{$1} = $2;
}
} else {
$line = $_;
}
}
}
@@ -576,14 +585,14 @@ EOF
print OUT <<"EOF";
/* $cfile */
/* ====================================================================
* Copyright (c) 1999-2010 The OpenSSL Project. All rights reserved.
* Copyright (c) 1999-$year The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
@@ -629,7 +638,8 @@ EOF
*
*/
/* NOTE: this file was auto generated by the mkerr.pl script: any changes
/*
* NOTE: this file was auto generated by the mkerr.pl script: any changes
* made to it will be overwritten when the script next updates this file,
* only reason strings will be preserved.
*/
@@ -641,11 +651,10 @@ EOF
/* BEGIN ERROR CODES */
#ifndef OPENSSL_NO_ERR
#define ERR_FUNC(func) ERR_PACK($pack_errcode,func,0)
#define ERR_REASON(reason) ERR_PACK($pack_errcode,0,reason)
# define ERR_FUNC(func) ERR_PACK($pack_errcode,func,0)
# define ERR_REASON(reason) ERR_PACK($pack_errcode,0,reason)
static ERR_STRING_DATA ${lib}_str_functs[]=
{
static ERR_STRING_DATA ${lib}_str_functs[] = {
EOF
# Add each function code: if a function name is found then use it.
foreach $i (@function) {
@@ -656,20 +665,22 @@ EOF
$fn = $ftrans{$fn};
}
# print OUT "{ERR_PACK($pack_errcode,$i,0),\t\"$fn\"},\n";
print OUT "{ERR_FUNC($i),\t\"$fn\"},\n";
if(length($i) + length($fn) > 58) {
print OUT " {ERR_FUNC($i),\n \"$fn\"},\n";
} else {
print OUT " {ERR_FUNC($i), \"$fn\"},\n";
}
}
print OUT <<"EOF";
{0,NULL}
};
{0, NULL}
};
static ERR_STRING_DATA ${lib}_str_reasons[]=
{
static ERR_STRING_DATA ${lib}_str_reasons[] = {
EOF
# Add each reason code.
foreach $i (@reasons) {
my $rn;
my $rstr = "ERR_REASON($i)";
my $nspc = 0;
if (exists $err_reason_strings{$i}) {
$rn = $err_reason_strings{$i};
} else {
@@ -677,90 +688,87 @@ EOF
$rn = $1;
$rn =~ tr/_[A-Z]/ [a-z]/;
}
$nspc = 40 - length($rstr) unless length($rstr) > 40;
$nspc = " " x $nspc;
print OUT "{${rstr}${nspc},\"$rn\"},\n";
if(length($i) + length($rn) > 56) {
print OUT " {${rstr},\n \"$rn\"},\n";
} else {
print OUT " {${rstr}, \"$rn\"},\n";
}
}
if($static) {
print OUT <<"EOF";
{0,NULL}
};
{0, NULL}
};
#endif
${staticloader}void ERR_load_${lib}_strings(void)
{
{
#ifndef OPENSSL_NO_ERR
if (ERR_func_error_string(${lib}_str_functs[0].error) == NULL)
{
ERR_load_strings($load_errcode,${lib}_str_functs);
ERR_load_strings($load_errcode,${lib}_str_reasons);
}
if (ERR_func_error_string(${lib}_str_functs[0].error) == NULL) {
ERR_load_strings($load_errcode, ${lib}_str_functs);
ERR_load_strings($load_errcode, ${lib}_str_reasons);
}
#endif
}
}
EOF
} else {
print OUT <<"EOF";
{0,NULL}
};
{0, NULL}
};
#endif
#ifdef ${lib}_LIB_NAME
static ERR_STRING_DATA ${lib}_lib_name[]=
{
{0 ,${lib}_LIB_NAME},
{0,NULL}
};
static ERR_STRING_DATA ${lib}_lib_name[] = {
{0, ${lib}_LIB_NAME},
{0, NULL}
};
#endif
static int ${lib}_lib_error_code=0;
static int ${lib}_error_init=1;
static int ${lib}_lib_error_code = 0;
static int ${lib}_error_init = 1;
${staticloader}void ERR_load_${lib}_strings(void)
{
if (${lib}_lib_error_code == 0)
${lib}_lib_error_code=ERR_get_next_error_library();
{
if (${lib}_lib_error_code == 0)
${lib}_lib_error_code = ERR_get_next_error_library();
if (${lib}_error_init)
{
${lib}_error_init=0;
if (${lib}_error_init) {
${lib}_error_init = 0;
#ifndef OPENSSL_NO_ERR
ERR_load_strings(${lib}_lib_error_code,${lib}_str_functs);
ERR_load_strings(${lib}_lib_error_code,${lib}_str_reasons);
ERR_load_strings(${lib}_lib_error_code, ${lib}_str_functs);
ERR_load_strings(${lib}_lib_error_code, ${lib}_str_reasons);
#endif
#ifdef ${lib}_LIB_NAME
${lib}_lib_name->error = ERR_PACK(${lib}_lib_error_code,0,0);
ERR_load_strings(0,${lib}_lib_name);
${lib}_lib_name->error = ERR_PACK(${lib}_lib_error_code, 0, 0);
ERR_load_strings(0, ${lib}_lib_name);
#endif
}
}
}
}
${staticloader}void ERR_unload_${lib}_strings(void)
{
if (${lib}_error_init == 0)
{
{
if (${lib}_error_init == 0) {
#ifndef OPENSSL_NO_ERR
ERR_unload_strings(${lib}_lib_error_code,${lib}_str_functs);
ERR_unload_strings(${lib}_lib_error_code,${lib}_str_reasons);
ERR_unload_strings(${lib}_lib_error_code, ${lib}_str_functs);
ERR_unload_strings(${lib}_lib_error_code, ${lib}_str_reasons);
#endif
#ifdef ${lib}_LIB_NAME
ERR_unload_strings(0,${lib}_lib_name);
ERR_unload_strings(0, ${lib}_lib_name);
#endif
${lib}_error_init=1;
}
}
${lib}_error_init = 1;
}
}
${staticloader}void ERR_${lib}_error(int function, int reason, char *file, int line)
{
if (${lib}_lib_error_code == 0)
${lib}_lib_error_code=ERR_get_next_error_library();
ERR_PUT_error(${lib}_lib_error_code,function,reason,file,line);
}
{
if (${lib}_lib_error_code == 0)
${lib}_lib_error_code = ERR_get_next_error_library();
ERR_PUT_error(${lib}_lib_error_code, function, reason, file, line);
}
EOF
}
@@ -769,7 +777,7 @@ EOF
undef %err_reason_strings;
}
if($debug && defined(%notrans)) {
if($debug && %notrans) {
print STDERR "The following function codes were not translated:\n";
foreach(sort keys %notrans)
{
@@ -787,7 +795,7 @@ foreach (keys %rcodes) {
push (@runref, $_) unless exists $urcodes{$_};
}
if($debug && defined(@funref) ) {
if($debug && @funref) {
print STDERR "The following function codes were not referenced:\n";
foreach(sort @funref)
{
@@ -795,7 +803,7 @@ if($debug && defined(@funref) ) {
}
}
if($debug && defined(@runref) ) {
if($debug && @runref) {
print STDERR "The following reason codes were not referenced:\n";
foreach(sort @runref)
{

View File

@@ -15,11 +15,14 @@ my @dirs = (
"crypto/sha",
"crypto/mdc2",
"crypto/hmac",
"crypto/cmac",
"crypto/ripemd",
"crypto/sm3",
"crypto/des",
"crypto/rc2",
"crypto/rc4",
"crypto/rc5",
"crypto/sms4",
"crypto/idea",
"crypto/bf",
"crypto/cast",
@@ -62,6 +65,7 @@ my @dirs = (
"crypto/pqueue",
"crypto/whrlpool",
"crypto/ts",
"crypto/srp",
"ssl",
"apps",
"engines",

View File

@@ -90,6 +90,7 @@ while(<IN>) {
#define sk_${type_thing}_set_cmp_func(st, cmp) SKM_sk_set_cmp_func($type_thing, (st), (cmp))
#define sk_${type_thing}_dup(st) SKM_sk_dup($type_thing, st)
#define sk_${type_thing}_pop_free(st, free_func) SKM_sk_pop_free($type_thing, (st), (free_func))
#define sk_${type_thing}_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy($type_thing, (st), (copy_func), (free_func))
#define sk_${type_thing}_shift(st) SKM_sk_shift($type_thing, (st))
#define sk_${type_thing}_pop(st) SKM_sk_pop($type_thing, (st))
#define sk_${type_thing}_sort(st) SKM_sk_sort($type_thing, (st))
@@ -108,7 +109,8 @@ EOF
#define sk_${t1}_find(st, val) sk_find(CHECKED_STACK_OF($t1, st), CHECKED_PTR_OF($t2, val))
#define sk_${t1}_value(st, i) (($t1)sk_value(CHECKED_STACK_OF($t1, st), i))
#define sk_${t1}_num(st) SKM_sk_num($t1, st)
#define sk_${t1}_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF($t1, st), CHECKED_SK_FREE_FUNC2($t1, free_func))
#define sk_${t1}_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF($t1, st), CHECKED_SK_FREE_FUNC($t2, free_func))
#define sk_${t1}_deep_copy(st, copy_func, free_func) ((STACK_OF($t1) *)sk_deep_copy(CHECKED_STACK_OF($t1, st), CHECKED_SK_COPY_FUNC($t2, copy_func), CHECKED_SK_FREE_FUNC($t2, free_func)))
#define sk_${t1}_insert(st, val, i) sk_insert(CHECKED_STACK_OF($t1, st), CHECKED_PTR_OF($t2, val), i)
#define sk_${t1}_free(st) SKM_sk_free(${t1}, st)
#define sk_${t1}_set(st, i, val) sk_set(CHECKED_STACK_OF($t1, st), i, CHECKED_PTR_OF($t2, val))

148
util/openssl-format-source Executable file
View File

@@ -0,0 +1,148 @@
#!/bin/sh
#
# openssl-format-source
# - format source tree according to OpenSSL coding style using indent
#
# usage:
# openssl-format-source [-v] [-n] [file|directory] ...
#
# note: the indent options assume GNU indent v2.2.10 which was released
# Feb-2009 so if you have an older indent the options may not
# match what is expected
#
# any marked block comment blocks have to be moved to align manually after
# the reformatting has been completed as marking a block causes indent to
# not move it at all ...
#
PATH=/usr/local/bin:/bin:/usr/bin:$PATH
export PATH
HERE="`dirname $0`"
set -e
if [ $# -eq 0 ]; then
echo "usage: $0 [-v] [-n] [-c] [sourcefile|sourcedir] ..." >&2
exit 1
fi
VERBOSE=false
DONT=false
STOPARGS=false
COMMENTS=false
DEBUG=""
# for this exercise, we want to force the openssl style, so we roll
# our own indent profile, which is at a well known location
INDENT_PROFILE="$HERE/indent.pro"
export INDENT_PROFILE
if [ ! -f "$INDENT_PROFILE" ]; then
echo "$0: unable to locate the openssl indent.pro file" >&2
exit 1
fi
# Extra arguments; for adding the comment-formatting
INDENT_ARGS=""
for i
do
if [ "$STOPARGS" != "true" ]; then
case $i in
--) STOPARGS="true"; continue;;
-n) DONT="true"; continue;;
-v) VERBOSE="true";
echo "INDENT_PROFILE=$INDENT_PROFILE";
continue;;
-c) COMMENTS="true";
INDENT_ARGS="-fc1 -fca -cdb -sc";
continue;;
-nc) COMMENTS="true";
continue;;
-d) DEBUG='eval tee "$j.pre" |'
continue;;
esac
fi
if [ -d "$i" ]; then
LIST=`find "$i" -name '*.[ch]' -print`
else
if [ ! -f "$i" ]; then
echo "$0: source file not found: $i" >&2
exit 1
fi
LIST="$i"
fi
for j in $LIST
do
# ignore symlinks - we only ever process the base file - so if we
# expand a directory tree we need to ignore any located symlinks
if [ -d "$i" ]; then
if [ -h "$j" ]; then
continue;
fi
fi
if [ "$VERBOSE" = "true" ]; then
echo "$j"
fi
if [ "$DONT" = "false" ]; then
tmp=$(mktemp /tmp/indent.XXXXXX)
trap 'rm -f "$tmp"' HUP INT TERM EXIT
case `basename $j` in
# the list of files that indent is unable to handle correctly
# that we simply leave alone for manual formatting now
obj_dat.h|aes_core.c|aes_x86core.c|ecp_nistz256.c)
echo "skipping $j"
;;
*)
if [ "$COMMENTS" = "true" ]; then
# we have to mark single line comments as /*- ...*/ to stop indent
# messing with them, run expand then indent as usual but with the
# the process-comments options and then undo that marking, and then
# finally re-run indent without process-comments so the marked-to-
# be-ignored comments we did automatically end up getting moved
# into the right possition within the code as indent leaves marked
# comments entirely untouched - we appear to have no way to avoid
# the double processing and get the desired output
cat "$j" | \
expand | \
perl -0 -np \
-e 's/(\n#[ \t]*ifdef[ \t]+__cplusplus\n[^\n]*\n#[ \t]*endif\n)/\n\/**INDENT-OFF**\/$1\/**INDENT-ON**\/\n/g;' \
-e 's/(\n\/\*\!)/\n\/**/g;' \
-e 's/(STACK_OF|LHASH_OF)\(([^ \t,\)]+)\)( |\n)/$1_$2_$3/g;' \
| \
perl -np \
-e 's/^([ \t]*)\/\*([ \t]+.*)\*\/[ \t]*$/if (length("$1$2")<75) {$c="-"}else{$c=""}; "$1\/*$c$2*\/"/e;' \
-e 's/^\/\* ((Copyright|=|----).*)$/\/*-$1/;' \
-e 's/^((DECLARE|IMPLEMENT)_(EXTERN_ASN1|ASN1|ADB|STACK_OF|PKCS12_STACK_OF).*)$/\/**INDENT-OFF**\/\n$1\n\/**INDENT-ON**\//;' \
-e 's/^([ \t]*(make_dh|make_dh_bn|make_rfc5114_td)\(.*\)[ \t,]*)$/\/**INDENT-OFF**\/\n$1\n\/**INDENT-ON**\//;' \
-e 's/^(ASN1_ADB_TEMPLATE\(.*)$/\/**INDENT-OFF**\/\n$1\n\/**INDENT-ON**\//;' \
-e 's/^((ASN1|ADB)_.*_(end|END)\(.*[\){=,;]+[ \t]*)$/$1\n\/**INDENT-ON**\//;' \
-e '/ASN1_(ITEM_ref|ITEM_ptr|ITEM_rptr|PCTX)/ || s/^((ASN1|ADB)_[^\*]*[){=,]+[ \t]*)$/\/**INDENT-OFF**\/\n$1/;' \
-e 's/^(} (ASN1|ADB)_[^\*]*[\){=,;]+)$/$1\n\/**INDENT-ON**\//;' \
| \
$DEBUG indent $INDENT_ARGS | \
perl -np \
-e 's/^([ \t]*)\/\*-(.*)\*\/[ \t]*$/$1\/*$2*\//;' \
-e 's/^\/\*-((Copyright|=|----).*)$/\/* $1/;' \
| indent | \
perl -0 -np \
-e 's/\/\*\*INDENT-(ON|OFF)\*\*\/\n//g;' \
| perl -np \
-e 's/(STACK_OF|LHASH_OF)_([^ \t,]+)_( |\/)/$1($2)$3/g;' \
-e 's/(STACK_OF|LHASH_OF)_([^ \t,]+)_$/$1($2)/g;' \
| perl "$HERE"/su-filter.pl \
> "$tmp"
else
expand "$j" | indent $INDENT_ARGS > "$tmp"
fi;
mv "$tmp" "$j"
;;
esac
fi
done
done

View File

@@ -38,7 +38,7 @@ $efile="";
$exep='.exe';
if ($no_sock)
{ $ex_libs=""; }
else { $ex_libs="cw32mt.lib import32.lib"; }
else { $ex_libs="cw32mt.lib import32.lib crypt32.lib ws2_32.lib"; }
# static library stuff
$mklib='tlib /P64';
@@ -51,8 +51,8 @@ $lfile='';
$shlib_ex_obj="";
$app_ex_obj="c0x32.obj";
$asm='nasmw -f obj -d__omf__';
$asm.=" /Zi" if $debug;
$asm=(`nasm -v 2>NUL` ge `nasmw -v 2>NUL`?"nasm":"nasmw")." -f obj -d__omf__";
$asm.=" -g" if $debug;
$afile='-o';
$bn_mulw_obj='';
@@ -130,7 +130,7 @@ sub do_link_rule
local($ret,$_);
$file =~ s/\//$o/g if $o ne '/';
$n=&bname($targer);
$n=&bname($target);
$ret.="$target: $files $dep_libs\n";
$ret.="\t\$(LINK) \$(LFLAGS) $files \$(APP_EX_OBJ), $target,, $libs\n\n";
return($ret);

View File

@@ -6,6 +6,16 @@
$ssl= "ssleay32";
$crypto="libeay32";
if ($fips && !$shlib)
{
$crypto="libeayfips32";
$crypto_compat = "libeaycompat32.lib";
}
else
{
$crypto="libeay32";
}
$o='\\';
$cp='$(PERL) util/copy.pl';
$mkdir='$(PERL) util/mkdir-p.pl';
@@ -17,6 +27,8 @@ $zlib_lib="zlib1.lib";
$l_flags =~ s/-L("\[^"]+")/\/libpath:$1/g;
$l_flags =~ s/-L(\S+)/\/libpath:$1/g;
my $ff = "";
# C compiler stuff
$cc='cl';
if ($FLAVOR =~ /WIN64/)
@@ -33,8 +45,7 @@ if ($FLAVOR =~ /WIN64/)
# considered safe to ignore.
#
$base_cflags= " $mf_cflag";
my $f = $shlib?' /MD':' /MT';
$lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
my $f = $shlib || $fips ?' /MD':' /MT';
$opt_cflags=$f.' /Ox';
$dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
$lflags="/nologo /subsystem:console /opt:ref";
@@ -77,7 +88,7 @@ elsif ($FLAVOR =~ /CE/)
$wcetgt = $ENV{'TARGETCPU'}; # just shorter name...
SWITCH: for($wcetgt) {
/^X86/ && do { $wcecdefs.=" -Dx86 -D_X86_ -D_i386_ -Di_386_";
$wcelflag.=" /machine:IX86"; last; };
$wcelflag.=" /machine:X86"; last; };
/^ARMV4[IT]/ && do { $wcecdefs.=" -DARM -D_ARM_ -D$wcetgt";
$wcecdefs.=" -DTHUMB -D_THUMB_" if($wcetgt=~/T$/);
$wcecdefs.=" -QRarch4T -QRinterwork-return";
@@ -102,24 +113,30 @@ elsif ($FLAVOR =~ /CE/)
$wcelflag.=" /machine:$wcetgt"; last; };
}
$cc='$(CC)';
$cc=($ENV{CC} or "cl");
$base_cflags=' /W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT';
$base_cflags.=" $wcecdefs";
$base_cflags.=' -I$(WCECOMPAT)/include' if (defined($ENV{'WCECOMPAT'}));
$base_cflags.=' -I$(PORTSDK_LIBPATH)/../../include' if (defined($ENV{'PORTSDK_LIBPATH'}));
$opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics...
$dbg_clfags=' /MC /Od -DDEBUG -D_DEBUG';
if (`$cc 2>&1` =~ /Version ([0-9]+)\./ && $1>=14) {
$base_cflags.=$shlib?' /MD':' /MT';
} else {
$base_cflags.=' /MC';
}
$opt_cflags=' /O1i'; # optimize for space, but with intrinsics...
$dbg_cflags=' /Od -DDEBUG -D_DEBUG';
$lflags="/nologo /opt:ref $wcelflag";
}
else # Win32
{
$base_cflags= " $mf_cflag";
my $f = $shlib?' /MD':' /MT';
$lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
my $f = $shlib || $fips ?' /MD':' /MT';
$ff = "/fixed";
$opt_cflags=$f.' /Ox /O2 /Ob2';
$dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
$lflags="/nologo /subsystem:console /opt:ref";
}
$lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
$mlflags='';
$out_def ="out32"; $out_def.="dll" if ($shlib);
@@ -152,14 +169,26 @@ $rsc="rc";
$efile="/out:";
$exep='.exe';
if ($no_sock) { $ex_libs=''; }
elsif ($FLAVOR =~ /CE/) { $ex_libs='winsock.lib'; }
elsif ($FLAVOR =~ /CE/) { $ex_libs='ws2.lib'; }
else { $ex_libs='ws2_32.lib'; }
if ($FLAVOR =~ /CE/)
{
$ex_libs.=' $(WCECOMPAT)/lib/wcecompatex.lib' if (defined($ENV{'WCECOMPAT'}));
$ex_libs.=' crypt32.lib'; # for e_capi.c
if (defined($ENV{WCECOMPAT}))
{
$ex_libs.= ' $(WCECOMPAT)/lib';
if (-f "$ENV{WCECOMPAT}/lib/$ENV{TARGETCPU}/wcecompatex.lib")
{
$ex_libs.='/$(TARGETCPU)/wcecompatex.lib';
}
else
{
$ex_libs.='/wcecompatex.lib';
}
}
$ex_libs.=' $(PORTSDK_LIBPATH)/portlib.lib' if (defined($ENV{'PORTSDK_LIBPATH'}));
$ex_libs.=' /nodefaultlib:oldnames.lib coredll.lib corelibc.lib' if ($ENV{'TARGETCPU'} eq "X86");
$ex_libs.=' /nodefaultlib coredll.lib corelibc.lib' if ($ENV{'TARGETCPU'} eq "X86");
}
else
{
@@ -266,10 +295,19 @@ elsif ($shlib && $FLAVOR =~ /CE/)
sub do_lib_rule
{
local($objs,$target,$name,$shlib)=@_;
my($objs,$target,$name,$shlib,$ign,$base_addr) = @_;
local($ret);
$taget =~ s/\//$o/g if $o ne '/';
my $base_arg;
if ($base_addr ne "")
{
$base_arg= " /base:$base_addr";
}
else
{
$base_arg = "";
}
if ($name ne "")
{
$name =~ tr/a-z/A-Z/;
@@ -277,17 +315,37 @@ sub do_lib_rule
}
# $target="\$(LIB_D)$o$target";
$ret.="$target: $objs\n";
# $ret.="$target: $objs\n";
if (!$shlib)
{
# $ret.="\t\$(RM) \$(O_$Name)\n";
$ret.="$target: $objs\n";
$ret.="\t\$(MKLIB) $lfile$target @<<\n $objs\n<<\n";
}
else
{
local($ex)=($target =~ /O_CRYPTO/)?'':' $(L_CRYPTO)';
$ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/;
$ret.="\t\$(LINK) \$(MLFLAGS) $efile$target $name @<<\n \$(SHLIB_EX_OBJ) $objs $ex \$(EX_LIBS)\n<<\n";
if ($fips && $target =~ /O_CRYPTO/)
{
$ret.="$target: $objs \$(PREMAIN_DSO_EXE)";
$ret.="\n\tSET FIPS_LINK=\$(LINK)\n";
$ret.="\tSET FIPS_CC=\$(CC)\n";
$ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
$ret.="\tSET PREMAIN_DSO_EXE=\$(PREMAIN_DSO_EXE)\n";
$ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
$ret.="\tSET FIPS_TARGET=$target\n";
$ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
$ret.="\t\$(FIPSLINK) \$(MLFLAGS) $ff /map $base_arg $efile$target ";
$ret.="$name @<<\n \$(SHLIB_EX_OBJ) $objs \$(EX_LIBS) ";
$ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n";
}
else
{
$ret.="$target: $objs";
$ret.="\n\t\$(LINK) \$(MLFLAGS) $efile$target $name @<<\n \$(SHLIB_EX_OBJ) $objs $ex \$(EX_LIBS)\n<<\n";
}
$ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;2\n\n";
}
$ret.="\n";
@@ -296,15 +354,35 @@ sub do_lib_rule
sub do_link_rule
{
local($target,$files,$dep_libs,$libs)=@_;
my($target,$files,$dep_libs,$libs,$standalone)=@_;
local($ret,$_);
$file =~ s/\//$o/g if $o ne '/';
$n=&bname($targer);
$n=&bname($target);
$ret.="$target: $files $dep_libs\n";
$ret.="\t\$(LINK) \$(LFLAGS) $efile$target @<<\n";
$ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
$ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;1\n\n";
if ($standalone == 1)
{
$ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n\t";
$ret.= "\$(EX_LIBS) " if ($files =~ /O_FIPSCANISTER/ && !$fipscanisterbuild);
$ret.="$files $libs\n<<\n";
}
elsif ($standalone == 2)
{
$ret.="\tSET FIPS_LINK=\$(LINK)\n";
$ret.="\tSET FIPS_CC=\$(CC)\n";
$ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
$ret.="\tSET PREMAIN_DSO_EXE=\n";
$ret.="\tSET FIPS_TARGET=$target\n";
$ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
$ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
$ret.="\t\$(FIPSLINK) \$(LFLAGS) $ff /map $efile$target @<<\n";
$ret.="\t\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n";
}
else
{
$ret.="\t\$(LINK) \$(LFLAGS) $efile$target @<<\n";
$ret.="\t\$(APP_EX_OBJ) $files $libs\n<<\n";
}
$ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;1\n\n";
return($ret);
}

View File

@@ -212,7 +212,7 @@ else
# Turned off the "possible" warnings ( -w nopossible ). Metrowerks
# complained a lot about various stuff. May want to turn back
# on for further development.
$cflags.=" -nostdinc -ir crypto -ir engines -ir apps -I$include_path \\
$cflags.=" -nostdinc -ir crypto -ir ssl -ir engines -ir apps -I$include_path \\
-msgstyle gcc -align 4 -processor pentium -char unsigned \\
-w on -w nolargeargs -w nopossible -w nounusedarg -w nounusedexpr \\
-w noimplicitconv -relax_pointers -nosyspath -maxerrors 20";

View File

@@ -26,11 +26,12 @@ else
{ $cflags="-O"; }
}
$obj='.o';
$asm_suffix='.s';
$ofile='-o ';
# EXE linking stuff
$link='${CC}';
$lflags='${CFLAGS}';
$lflags='${CFLAG}';
$efile='-o ';
$exep='';
$ex_libs="";
@@ -53,6 +54,93 @@ $des_enc_src="";
$bf_enc_obj="";
$bf_enc_src="";
%perl1 = (
'md5-x86_64' => 'crypto/md5',
'x86_64-mont' => 'crypto/bn',
'x86_64-mont5' => 'crypto/bn',
'x86_64-gf2m' => 'crypto/bn',
'aes-x86_64' => 'crypto/aes',
'vpaes-x86_64' => 'crypto/aes',
'bsaes-x86_64' => 'crypto/aes',
'aesni-x86_64' => 'crypto/aes',
'aesni-sha1-x86_64' => 'crypto/aes',
'sha1-x86_64' => 'crypto/sha',
'e_padlock-x86_64' => 'engines',
'rc4-x86_64' => 'crypto/rc4',
'rc4-md5-x86_64' => 'crypto/rc4',
'ghash-x86_64' => 'crypto/modes',
'aesni-gcm-x86_64' => 'crypto/modes',
'aesni-sha256-x86_64' => 'crypto/aes',
'rsaz-x86_64' => 'crypto/bn',
'rsaz-avx2' => 'crypto/bn',
'aesni-mb-x86_64' => 'crypto/aes',
'sha1-mb-x86_64' => 'crypto/sha',
'sha256-mb-x86_64' => 'crypto/sha',
'ecp_nistz256-x86_64' => 'crypto/ec',
);
# If I were feeling more clever, these could probably be extracted
# from makefiles.
sub platform_perlasm_compile_target
{
local($target, $source, $bname) = @_;
for $p (keys %perl1)
{
if ($target eq "\$(OBJ_D)/$p.o")
{
return << "EOF";
\$(TMP_D)/$p.s: $perl1{$p}/asm/$p.pl
\$(PERL) $perl1{$p}/asm/$p.pl \$(PERLASM_SCHEME) > \$@
EOF
}
}
if ($target eq '$(OBJ_D)/x86_64cpuid.o')
{
return << 'EOF';
$(TMP_D)/x86_64cpuid.s: crypto/x86_64cpuid.pl
$(PERL) crypto/x86_64cpuid.pl $(PERLASM_SCHEME) > $@
EOF
}
elsif ($target eq '$(OBJ_D)/sha256-x86_64.o')
{
return << 'EOF';
$(TMP_D)/sha256-x86_64.s: crypto/sha/asm/sha512-x86_64.pl
$(PERL) crypto/sha/asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@
EOF
}
elsif ($target eq '$(OBJ_D)/sha512-x86_64.o')
{
return << 'EOF';
$(TMP_D)/sha512-x86_64.s: crypto/sha/asm/sha512-x86_64.pl
$(PERL) crypto/sha/asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@
EOF
}
elsif ($target eq '$(OBJ_D)/sha512-x86_64.o')
{
return << 'EOF';
$(TMP_D)/sha512-x86_64.s: crypto/sha/asm/sha512-x86_64.pl
$(PERL) crypto/sha/asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@
EOF
}
die $target;
}
sub special_compile_target
{
local($target) = @_;
if ($target eq 'crypto/bn/x86_64-gcc')
{
return << "EOF";
\$(TMP_D)/x86_64-gcc.o: crypto/bn/asm/x86_64-gcc.c
\$(CC) \$(CFLAGS) -c -o \$@ crypto/bn/asm/x86_64-gcc.c
EOF
}
return undef;
}
sub do_lib_rule
{
local($obj,$target,$name,$shlib)=@_;
@@ -72,7 +160,7 @@ sub do_link_rule
{
local($target,$files,$dep_libs,$libs)=@_;
local($ret,$_);
$file =~ s/\//$o/g if $o ne '/';
$n=&bname($target);
$ret.="$target: $files $dep_libs\n";
@@ -93,4 +181,262 @@ sub which
}
}
sub fixtests
{
my ($str, $tests) = @_;
foreach my $t (keys %$tests)
{
$str =~ s/(\.\/)?\$\($t\)/\$(TEST_D)\/$tests->{$t}/g;
}
return $str;
}
sub fixdeps
{
my ($str, $fakes) = @_;
my @t = split(/\s+/, $str);
$str = '';
foreach my $t (@t)
{
$str .= ' ' if $str ne '';
if (exists($fakes->{$t}))
{
$str .= $fakes->{$t};
next;
}
if ($t =~ /^[^\/]+$/)
{
$str .= '$(TEST_D)/' . $t;
}
else
{
$str .= $t;
}
}
return $str;
}
sub fixrules
{
my ($str) = @_;
# Compatible with -j...
$str =~ s/^(\s+@?)/$1cd \$(TEST_D) && /;
return $str;
# Compatible with not -j.
my @t = split("\n", $str);
$str = '';
my $prev;
foreach my $t (@t)
{
$t =~ s/^\s+//;
if (!$prev)
{
if ($t =~ /^@/)
{
$t =~ s/^@/\@cd \$(TEST_D) && /;
}
elsif ($t !~ /^\s*#/)
{
$t = 'cd $(TEST_D) && ' . $t;
}
}
$str .= "\t$t\n";
$prev = $t =~/\\$/;
}
return $str;
}
sub copy_scripts
{
my ($sed, $src, @targets) = @_;
my $s = '';
foreach my $t (@targets)
{
# Copy first so we get file modes...
$s .= "\$(TEST_D)/$t: \$(SRC_D)/$src/$t\n\tcp \$(SRC_D)/$src/$t \$(TEST_D)/$t\n";
$s .= "\tsed -e 's/\\.\\.\\/apps/..\\/\$(OUT_D)/' -e 's/\\.\\.\\/util/..\\/\$(TEST_D)/' < \$(SRC_D)/$src/$t > \$(TEST_D)/$t\n" if $sed;
$s .= "\n";
}
return $s;
}
sub get_tests
{
my ($makefile) = @_;
open(M, $makefile) || die "Can't open $makefile: $!";
my %targets;
my %deps;
my %tests;
my %alltests;
my %fakes;
while (my $line = <M>)
{
chomp $line;
while ($line =~ /^(.*)\\$/)
{
$line = $1 . <M>;
}
if ($line =~ /^alltests:(.*)$/)
{
my @t = split(/\s+/, $1);
foreach my $t (@t)
{
$targets{$t} = '';
$alltests{$t} = undef;
}
}
if (($line =~ /^(?<t>\S+):(?<d>.*)$/ && exists $targets{$1})
|| $line =~ /^(?<t>test_(ss|gen) .*):(?<d>.*)/)
{
my $t = $+{t};
my $d = $+{d};
# If there are multiple targets stupid FreeBSD make runs the
# rules once for each dependency that matches one of the
# targets. Running the same rule twice concurrently causes
# breakage, so replace with a fake target.
if ($t =~ /\s/)
{
++$fake;
my @targets = split /\s+/, $t;
$t = "_fake$fake";
foreach my $f (@targets)
{
$fakes{$f} = $t;
}
}
$deps{$t} = $d;
$deps{$t} =~ s/#.*$//;
for (;;)
{
$line = <M>;
chomp $line;
last if $line eq '';
$targets{$t} .= "$line\n";
}
next;
}
if ($line =~ /^(\S+TEST)=\s*(\S+)$/)
{
$tests{$1} = $2;
next;
}
}
delete $alltests{test_jpake} if $no_jpake;
delete $targets{test_ige} if $no_ige;
delete $alltests{test_md2} if $no_md2;
delete $alltests{test_rc5} if $no_rc5;
my $tests;
foreach my $t (keys %tests)
{
$tests .= "$t = $tests{$t}\n";
}
my $each;
foreach my $t (keys %targets)
{
next if $t eq '';
my $d = $deps{$t};
$d =~ s/\.\.\/apps/\$(BIN_D)/g;
$d =~ s/\.\.\/util/\$(TEST_D)/g;
$d = fixtests($d, \%tests);
$d = fixdeps($d, \%fakes);
my $r = $targets{$t};
$r =~ s/\.\.\/apps/..\/\$(BIN_D)/g;
$r =~ s/\.\.\/util/..\/\$(TEST_D)/g;
$r =~ s/\.\.\/(\S+)/\$(SRC_D)\/$1/g;
$r = fixrules($r);
next if $r eq '';
$t =~ s/\s+/ \$(TEST_D)\//g;
$each .= "$t: test_scripts $d\n\t\@echo '$t test started'\n$r\t\@echo '$t test done'\n\n";
}
# FIXME: Might be a clever way to figure out what needs copying
my @copies = ( 'bctest',
'testgen',
'cms-test.pl',
'tx509',
'test.cnf',
'testenc',
'tocsp',
'testca',
'CAss.cnf',
'testtsa',
'CAtsa.cnf',
'Uss.cnf',
'P1ss.cnf',
'P2ss.cnf',
'tcrl',
'tsid',
'treq',
'tpkcs7',
'tpkcs7d',
'testcrl.pem',
'testx509.pem',
'v3-cert1.pem',
'v3-cert2.pem',
'testreq2.pem',
'testp7.pem',
'pkcs7-1.pem',
'trsa',
'testrsa.pem',
'testsid.pem',
'testss',
'testssl',
'testsslproxy',
'serverinfo.pem',
);
my $copies = copy_scripts(1, 'test', @copies);
$copies .= copy_scripts(0, 'test', ('smcont.txt'));
my @utils = ( 'shlib_wrap.sh',
'opensslwrap.sh',
);
$copies .= copy_scripts(1, 'util', @utils);
my @apps = ( 'CA.sh',
'openssl.cnf',
'server2.pem',
);
$copies .= copy_scripts(1, 'apps', @apps);
$copies .= copy_scripts(1, 'crypto/evp', ('evptests.txt'));
$scripts = "test_scripts: \$(TEST_D)/CA.sh \$(TEST_D)/opensslwrap.sh \$(TEST_D)/openssl.cnf \$(TEST_D)/shlib_wrap.sh ocsp smime\n";
$scripts .= "\nocsp:\n\tcp -R test/ocsp-tests \$(TEST_D)\n";
$scripts .= "\smime:\n\tcp -R test/smime-certs \$(TEST_D)\n";
my $all = 'test:';
foreach my $t (keys %alltests)
{
if (exists($fakes{$t}))
{
$all .= " $fakes{$t}";
}
else
{
$all .= " $t";
}
}
return "$scripts\n$copies\n$tests\n$all\n\n$each";
}
1;

View File

@@ -90,4 +90,8 @@ fi
cmd="$1${EXE_EXT}"
shift
exec "$cmd" "$@"
if [ $# -eq 0 ]; then
exec "$cmd" # old sh, such as Tru64 4.x, fails to expand empty "$@"
else
exec "$cmd" "$@"
fi

View File

@@ -12,7 +12,8 @@
$line=0;
foreach $a ("md2","md4","md5","sha","sha1","rc4","des cfb","des cbc","des ede3",
"idea cfb","idea cbc","rc2 cfb","rc2 cbc","blowfish cbc","cast cbc")
"idea cfb","idea cbc","rc2 cfb","rc2 cbc","blowfish cbc","cast cbc",
"sm3","sms4 cfb","sms4 cbc")
{
if (defined($one{$a,8}) && defined($two{$a,8}))
{

View File

@@ -101,9 +101,9 @@ SSLv23_server_method 112 EXIST::FUNCTION:RSA
SSLv2_client_method 113 EXIST::FUNCTION:RSA,SSL2
SSLv2_method 114 EXIST::FUNCTION:RSA,SSL2
SSLv2_server_method 115 EXIST::FUNCTION:RSA,SSL2
SSLv3_client_method 116 EXIST::FUNCTION:
SSLv3_method 117 EXIST::FUNCTION:
SSLv3_server_method 118 EXIST::FUNCTION:
SSLv3_client_method 116 EXIST::FUNCTION:SSL3_METHOD
SSLv3_method 117 EXIST::FUNCTION:SSL3_METHOD
SSLv3_server_method 118 EXIST::FUNCTION:SSL3_METHOD
d2i_SSL_SESSION 119 EXIST::FUNCTION:
i2d_SSL_SESSION 120 EXIST::FUNCTION:
BIO_f_ssl 121 EXIST::FUNCTION:BIO
@@ -181,6 +181,7 @@ SSL_get_verify_depth 229 EXIST::FUNCTION:
SSL_CTX_set_session_id_context 231 EXIST::FUNCTION:
SSL_CTX_set_cert_verify_callback 232 EXIST:!VMS:FUNCTION:
SSL_CTX_set_cert_verify_cb 232 EXIST:VMS:FUNCTION:
SSL_test_functions 233 EXIST::FUNCTION:UNIT_TEST
SSL_CTX_set_default_passwd_cb_userdata 235 EXIST:!VMS:FUNCTION:
SSL_CTX_set_def_passwd_cb_ud 235 EXIST:VMS:FUNCTION:
SSL_set_purpose 236 EXIST::FUNCTION:
@@ -259,3 +260,111 @@ SSL_set_session_secret_cb 307 EXIST::FUNCTION:
SSL_set_session_ticket_ext_cb 308 EXIST::FUNCTION:
SSL_set1_param 309 EXIST::FUNCTION:
SSL_CTX_set1_param 310 EXIST::FUNCTION:
SSL_tls1_key_exporter 311 NOEXIST::FUNCTION:
SSL_renegotiate_abbreviated 312 EXIST::FUNCTION:
TLSv1_1_method 313 EXIST::FUNCTION:
TLSv1_1_client_method 314 EXIST::FUNCTION:
TLSv1_1_server_method 315 EXIST::FUNCTION:
SSL_CTX_set_srp_client_pwd_callback 316 EXIST:!VMS:FUNCTION:SRP
SSL_CTX_set_srp_client_pwd_cb 316 EXIST:VMS:FUNCTION:SRP
SSL_get_srp_g 317 EXIST::FUNCTION:SRP
SSL_CTX_set_srp_username_callback 318 EXIST:!VMS:FUNCTION:SRP
SSL_CTX_set_srp_un_cb 318 EXIST:VMS:FUNCTION:SRP
SSL_get_srp_userinfo 319 EXIST::FUNCTION:SRP
SSL_set_srp_server_param 320 EXIST::FUNCTION:SRP
SSL_set_srp_server_param_pw 321 EXIST::FUNCTION:SRP
SSL_get_srp_N 322 EXIST::FUNCTION:SRP
SSL_get_srp_username 323 EXIST::FUNCTION:SRP
SSL_CTX_set_srp_password 324 EXIST::FUNCTION:SRP
SSL_CTX_set_srp_strength 325 EXIST::FUNCTION:SRP
SSL_CTX_set_srp_verify_param_callback 326 EXIST:!VMS:FUNCTION:SRP
SSL_CTX_set_srp_vfy_param_cb 326 EXIST:VMS:FUNCTION:SRP
SSL_CTX_set_srp_miss_srp_un_cb 327 NOEXIST::FUNCTION:
SSL_CTX_set_srp_missing_srp_username_callback 327 NOEXIST::FUNCTION:
SSL_CTX_set_srp_cb_arg 328 EXIST::FUNCTION:SRP
SSL_CTX_set_srp_username 329 EXIST::FUNCTION:SRP
SSL_CTX_SRP_CTX_init 330 EXIST::FUNCTION:SRP
SSL_SRP_CTX_init 331 EXIST::FUNCTION:SRP
SRP_Calc_A_param 332 EXIST::FUNCTION:SRP
SRP_generate_server_master_secret 333 EXIST:!VMS:FUNCTION:SRP
SRP_gen_server_master_secret 333 EXIST:VMS:FUNCTION:SRP
SSL_CTX_SRP_CTX_free 334 EXIST::FUNCTION:SRP
SRP_generate_client_master_secret 335 EXIST:!VMS:FUNCTION:SRP
SRP_gen_client_master_secret 335 EXIST:VMS:FUNCTION:SRP
SSL_srp_server_param_with_username 336 EXIST:!VMS:FUNCTION:SRP
SSL_srp_server_param_with_un 336 EXIST:VMS:FUNCTION:SRP
SRP_have_to_put_srp_username 337 NOEXIST::FUNCTION:
SSL_SRP_CTX_free 338 EXIST::FUNCTION:SRP
SSL_set_debug 339 EXIST::FUNCTION:
SSL_SESSION_get0_peer 340 EXIST::FUNCTION:
TLSv1_2_client_method 341 EXIST::FUNCTION:
SSL_SESSION_set1_id_context 342 EXIST::FUNCTION:
TLSv1_2_server_method 343 EXIST::FUNCTION:
SSL_cache_hit 344 EXIST::FUNCTION:
SSL_get0_kssl_ctx 345 EXIST::FUNCTION:KRB5
SSL_set0_kssl_ctx 346 EXIST::FUNCTION:KRB5
SSL_SESSION_get0_id 347 NOEXIST::FUNCTION:
SSL_set_state 348 EXIST::FUNCTION:
SSL_CIPHER_get_id 349 EXIST::FUNCTION:
TLSv1_2_method 350 EXIST::FUNCTION:
SSL_SESSION_get_id_len 351 NOEXIST::FUNCTION:
kssl_ctx_get0_client_princ 352 EXIST::FUNCTION:KRB5
SSL_export_keying_material 353 EXIST::FUNCTION:TLSEXT
SSL_set_tlsext_use_srtp 354 EXIST::FUNCTION:SRTP
SSL_CTX_set_next_protos_advertised_cb 355 EXIST:!VMS:FUNCTION:NEXTPROTONEG
SSL_CTX_set_next_protos_adv_cb 355 EXIST:VMS:FUNCTION:NEXTPROTONEG
SSL_get0_next_proto_negotiated 356 EXIST::FUNCTION:NEXTPROTONEG
SSL_get_selected_srtp_profile 357 EXIST::FUNCTION:SRTP
SSL_CTX_set_tlsext_use_srtp 358 EXIST::FUNCTION:SRTP
SSL_select_next_proto 359 EXIST::FUNCTION:TLSEXT
SSL_get_srtp_profiles 360 EXIST::FUNCTION:SRTP
SSL_CTX_set_next_proto_select_cb 361 EXIST:!VMS:FUNCTION:NEXTPROTONEG
SSL_CTX_set_next_proto_sel_cb 361 EXIST:VMS:FUNCTION:NEXTPROTONEG
SSL_SESSION_get_compress_id 362 EXIST::FUNCTION:
SSL_get0_param 363 EXIST::FUNCTION:
SSL_CTX_get0_privatekey 364 EXIST::FUNCTION:
SSL_get_shared_sigalgs 365 EXIST::FUNCTION:TLSEXT
SSL_CONF_CTX_finish 366 EXIST::FUNCTION:
DTLS_method 367 EXIST::FUNCTION:
DTLS_client_method 368 EXIST::FUNCTION:
SSL_CIPHER_standard_name 369 EXIST::FUNCTION:SSL_TRACE
SSL_set_alpn_protos 370 EXIST::FUNCTION:
SSL_CTX_set_srv_supp_data 371 NOEXIST::FUNCTION:
SSL_CONF_cmd_argv 372 EXIST::FUNCTION:
DTLSv1_2_server_method 373 EXIST::FUNCTION:
SSL_COMP_set0_compression_methods 374 EXIST:!VMS:FUNCTION:COMP
SSL_COMP_set0_compress_methods 374 EXIST:VMS:FUNCTION:COMP
SSL_CTX_set_cert_cb 375 EXIST::FUNCTION:
SSL_CTX_add_client_custom_ext 376 EXIST::FUNCTION:TLSEXT
SSL_is_server 377 EXIST::FUNCTION:
SSL_CTX_get0_param 378 EXIST::FUNCTION:
SSL_CONF_cmd 379 EXIST::FUNCTION:
SSL_CTX_get_ssl_method 380 EXIST::FUNCTION:
SSL_CONF_CTX_set_ssl_ctx 381 EXIST::FUNCTION:
SSL_CIPHER_find 382 EXIST::FUNCTION:
SSL_CTX_use_serverinfo 383 EXIST::FUNCTION:TLSEXT
DTLSv1_2_client_method 384 EXIST::FUNCTION:
SSL_get0_alpn_selected 385 EXIST::FUNCTION:
SSL_CONF_CTX_clear_flags 386 EXIST::FUNCTION:
SSL_CTX_set_alpn_protos 387 EXIST::FUNCTION:
SSL_CTX_add_server_custom_ext 389 EXIST::FUNCTION:TLSEXT
SSL_CTX_get0_certificate 390 EXIST::FUNCTION:
SSL_CTX_set_alpn_select_cb 391 EXIST::FUNCTION:
SSL_CONF_cmd_value_type 392 EXIST::FUNCTION:
SSL_set_cert_cb 393 EXIST::FUNCTION:
SSL_get_sigalgs 394 EXIST::FUNCTION:TLSEXT
SSL_CONF_CTX_set1_prefix 395 EXIST::FUNCTION:
SSL_CONF_CTX_new 396 EXIST::FUNCTION:
SSL_CONF_CTX_set_flags 397 EXIST::FUNCTION:
SSL_CONF_CTX_set_ssl 398 EXIST::FUNCTION:
SSL_check_chain 399 EXIST::FUNCTION:TLSEXT
SSL_certs_clear 400 EXIST::FUNCTION:
SSL_CONF_CTX_free 401 EXIST::FUNCTION:
SSL_trace 402 EXIST::FUNCTION:SSL_TRACE
SSL_CTX_set_cli_supp_data 403 NOEXIST::FUNCTION:
DTLSv1_2_method 404 EXIST::FUNCTION:
DTLS_server_method 405 EXIST::FUNCTION:
SSL_CTX_use_serverinfo_file 406 EXIST::FUNCTION:STDIO,TLSEXT
SSL_COMP_free_compression_methods 407 EXIST:!VMS:FUNCTION:COMP
SSL_COMP_free_compress_methods 407 EXIST:VMS:FUNCTION:COMP
SSL_extension_supported 409 EXIST::FUNCTION:TLSEXT

260
util/su-filter.pl Normal file
View File

@@ -0,0 +1,260 @@
#!/usr/bin/env perl
#
# su-filter.pl
#
use strict;
my $in_su = 0;
my $indent = 0;
my $out;
my $braces = 0;
my $arrcnt;
my $data;
my $tststr;
my $incomm = 0;
while(<>) {
$tststr = $_;
$incomm++ while $tststr =~ /\/\*/g;
$incomm-- while $tststr =~ /\*\//g;
if($in_su == 1) {
if(/}(.*);/) {
$out .= $_;
do_output($out);
$in_su = 0;
} elsif(/^ *\} [^\s]+(\[\d*\])* = \{/) {
$tststr = $1;
$arrcnt = 0;
$arrcnt++ while $tststr =~ /\[/g;
$in_su++;
$braces = 1;
/^(.* = \{)(.*)$/;
$data = $2;
$out .= $1."\n";
} else {
$out .= $_;
}
} elsif($in_su == 2) {
$data .= $_;
if(/};$/) {
#$data = "\n$data";
$data =~ s/\n */\n/g;
$data =~ s/};\n?//s;
my @strucdata = structureData($data);
$out .= displayData($indent, 0, \@strucdata);
$out .= "\n$indent};\n";
do_output($out);
$in_su = 0;
}
} elsif($incomm <= 0 && /( *)(static )?(const )?(union|struct) ([^\s]+ )?\{/) {
$in_su = 1;
$indent = $1;
$out = $_;
next;
} else {
do_output($_);
}
}
sub structureData {
my $data = $_[0];
my @datalist = split(/(\{|\}|,|"|#|\n|\/\*|\*\/|\(|\))/, $data);
my $item;
my $dataitem = "";
my @struclist = ();
my $substruc;
my $inquote = 0;
my $inbrace = 0;
my $preproc = 0;
my $comment = 0;
my $inparen = 0;
foreach $item (@datalist) {
if($comment) {
if($item eq "*/") {
$comment = 0;
$dataitem .= "*/";
push @struclist, $dataitem;
$dataitem = "";
next;
}
$dataitem .= $item;
next;
}
if($inquote) {
$dataitem .= $item;
if($item eq "\"") {
$inquote--;
}
next;
}
if($preproc) {
if($item eq "\n") {
$preproc = 0;
push @struclist, $dataitem;
$dataitem = "";
next;
}
$dataitem .= $item;
next;
}
if($inbrace) {
if($item eq "}") {
$inbrace --;
if(!$inbrace) {
$substruc = structureData($dataitem);
$dataitem = $substruc;
next;
}
} elsif($item eq "{") {
$inbrace++;
} elsif ($item eq "\"") {
$inquote++;
}
$dataitem .= $item;
next;
}
if($inparen) {
if($item eq ")") {
$inparen--;
}
$dataitem .= $item;
next;
}
if($item eq "\n") {
next;
}
if($item eq "#") {
$preproc = 1;
push @struclist, $dataitem;
$dataitem = "#";
next;
}
if($item eq "/*") {
$comment = 1;
push @struclist, $dataitem;
$dataitem= "/*";
next;
}
if($item eq "\"") {
$dataitem .= $item;
$inquote++;
next;
}
if($item eq "{") {
$inbrace++;
next;
}
if($item eq ",") {
push @struclist, $dataitem;
$dataitem = "";
next;
}
if($item eq "(") {
$dataitem .= $item;
$inparen++;
next;
}
if($item =~ /^\s*$/) {
next;
}
if(ref $dataitem eq 'ARRAY') {
push @struclist, $dataitem;
$dataitem = "";
}
$dataitem .= $item;
}
push @struclist, $dataitem;
return \@struclist;
}
sub displayData {
my $indent = shift;
my $depth = shift;
my $data = shift;
my $item;
my $out = "";
my $currline = "";
my $first = 1;
my $prevpreproc = 0;
my $prevcomment = 0;
foreach $item (@{$data}) {
if($item =~ /^\/\*/) {
#Comment
$item =~ s/\n/\n$indent/g;
if($out =~ /\n\s*$/s) {
$out .= $item."\n".$indent;
} else {
$out .= "\n".$indent.$item."\n".$indent;
}
$currline = $indent;
$prevcomment = 1;
next;
}
$item =~ s/^\s+//;
if($item =~ /^#/) {
#Pre-processor directive
if($out =~ /\n\s*$/s) {
$out =~ s/\n\s*$/\n/;
$out .= $item."\n".$indent;
} else {
$out .= "\n".$item."\n".$indent;
}
$currline = $indent;
$prevpreproc = 1;
next;
}
if($first) {
$first = 0;
if($depth != 0) {
$out .= $indent;
$currline = $indent;
}
} else {
if(!$prevpreproc && !$prevcomment) {
$out .= ", ";
$currline .= ", ";
if($depth == 1) {
$out .= "\n";
$currline = "";
}
if($depth == 1) {
$out .= $indent;
$currline .= $indent;
}
}
}
$prevpreproc = 0;
$prevcomment = 0;
if (ref $item eq 'ARRAY') {
if($depth == 0) {
$out .= displayData("$indent ", $depth+1, $item);
} else {
$out .= "{\n".displayData("$indent ", $depth+1, $item)."\n".$indent."}";
$currline = $indent."}";
}
} else {
if(length $currline.$item > 79) {
$currline = $indent;
$out .= "\n$indent";
}
$out .= $item;
$currline .= $item;
}
}
return $out;
}
sub do_output {
my $out = shift;
# Strip any trailing whitespace
$out =~ s/\s+\n/\n/g;
print $out;
}