diff options
author | Richard Levitte <levitte@openssl.org> | 2001-03-02 10:38:19 +0000 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2001-03-02 10:38:19 +0000 |
commit | 62dc5aad063f50fa75fdae66c4247c925d4b3c5d (patch) | |
tree | dcc37b462bcd4ab9ebf47781115d36a98e1d25cf | |
parent | 45ecfb19731d0190aecdddc911c710571c50bd67 (diff) |
Introduce the possibility to access global variables through
functions on platform were that's the best way to handle exporting
global variables in shared libraries. To enable this functionality,
one must configure with "EXPORT_VAR_AS_FN" or defined the C macro
"OPENSSL_EXPORT_VAR_AS_FUNCTION" in crypto/opensslconf.h (the latter
is normally done by Configure or something similar).
To implement a global variable, use the macro OPENSSL_IMPLEMENT_GLOBAL
in the source file (foo.c) like this:
OPENSSL_IMPLEMENT_GLOBAL(int,foo)=1;
OPENSSL_IMPLEMENT_GLOBAL(double,bar);
To declare a global variable, use the macros OPENSSL_DECLARE_GLOBAL
and OPENSSL_GLOBAL_REF in the header file (foo.h) like this:
OPENSSL_DECLARE_GLOBAL(int,foo);
#define foo OPENSSL_GLOBAL_REF(foo)
OPENSSL_DECLARE_GLOBAL(double,bar);
#define bar OPENSSL_GLOBAL_REF(bar)
The #defines are very important, and therefore so is including the
header file everywere where the defined globals are used.
The macro OPENSSL_EXPORT_VAR_AS_FUNCTION also affects the definition
of ASN.1 items, but that structure is a bt different.
The largest change is in util/mkdef.pl which has been enhanced with
better and easier to understand logic to choose which symbols should
go into the Windows .def files as well as a number of fixes and code
cleanup (among others, algorithm keywords are now sorted
lexicographically to avoid constant rewrites).
-rw-r--r-- | CHANGES | 34 | ||||
-rwxr-xr-x | Configure | 7 | ||||
-rw-r--r-- | crypto/asn1/asn1.h | 2 | ||||
-rw-r--r-- | crypto/asn1/asn1t.h | 6 | ||||
-rw-r--r-- | crypto/des/des.h | 6 | ||||
-rw-r--r-- | crypto/des/enc_read.c | 2 | ||||
-rw-r--r-- | crypto/des/set_key.c | 2 | ||||
-rw-r--r-- | crypto/opensslconf.h.in | 2 | ||||
-rw-r--r-- | e_os2.h | 22 | ||||
-rwxr-xr-x | makevms.com | 5 | ||||
-rwxr-xr-x | util/libeay.num | 357 | ||||
-rwxr-xr-x | util/mkdef.pl | 509 | ||||
-rwxr-xr-x | util/ssleay.num | 6 |
13 files changed, 695 insertions, 265 deletions
@@ -3,6 +3,40 @@ Changes between 0.9.6 and 0.9.7 [xx XXX 2000] + *) Introduce the possibility to access global variables through + functions on platform were that's the best way to handle exporting + global variables in shared libraries. To enable this functionality, + one must configure with "EXPORT_VAR_AS_FN" or defined the C macro + "OPENSSL_EXPORT_VAR_AS_FUNCTION" in crypto/opensslconf.h (the latter + is normally done by Configure or something similar). + + To implement a global variable, use the macro OPENSSL_IMPLEMENT_GLOBAL + in the source file (foo.c) like this: + + OPENSSL_IMPLEMENT_GLOBAL(int,foo)=1; + OPENSSL_IMPLEMENT_GLOBAL(double,bar); + + To declare a global variable, use the macros OPENSSL_DECLARE_GLOBAL + and OPENSSL_GLOBAL_REF in the header file (foo.h) like this: + + OPENSSL_DECLARE_GLOBAL(int,foo); + #define foo OPENSSL_GLOBAL_REF(foo) + OPENSSL_DECLARE_GLOBAL(double,bar); + #define bar OPENSSL_GLOBAL_REF(bar) + + The #defines are very important, and therefore so is including the + header file everywere where the defined globals are used. + + The macro OPENSSL_EXPORT_VAR_AS_FUNCTION also affects the definition + of ASN.1 items, but that structure is a bt different. + + The largest change is in util/mkdef.pl which has been enhanced with + better and easier to understand logic to choose which symbols should + go into the Windows .def files as well as a number of fixes and code + cleanup (among others, algorithm keywords are now sorted + lexicographically to avoid constant rewrites). + [Richard Levitte] + *) In copy_email() check for >= 0 as a return value for X509_NAME_get_index_by_NID() since 0 is a valid index. [Steve Henson reported by Massimiliano Pala <madwolf@opensca.org>] @@ -968,6 +968,7 @@ my $rc4_chunk=0; my $bf_ptr=0; my @type=("char","short","int","long"); my ($b64l,$b64,$b32,$b16,$b8)=(0,0,1,0,0); +my $export_var_as_fn=0; my $des_int; @@ -997,6 +998,7 @@ foreach (sort split(/\s+/,$bn_ops)) ($b64l,$b64,$b32,$b16,$b8)=(0,0,1,0,0) if /THIRTY_TWO_BIT/; ($b64l,$b64,$b32,$b16,$b8)=(0,0,0,1,0) if /SIXTEEN_BIT/; ($b64l,$b64,$b32,$b16,$b8)=(0,0,0,0,1) if /EIGHT_BIT/; + $export_var_as_fn=1 if /EXPORT_VAR_AS_FN/; } open(IN,'<crypto/opensslconf.h.in') || die "unable to read crypto/opensslconf.h.in:$!\n"; @@ -1029,6 +1031,11 @@ while (<IN>) { if (/^#define\s+OPENSSLDIR/) { print OUT "#define OPENSSLDIR \"$openssldir\"\n"; } + elsif (/^#((define)|(undef))\s+OPENSSL_EXPORT_VAR_AS_FUNCTION/) + { printf OUT "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION\n" + if $export_var_as_fn; + printf OUT "#%s OPENSSL_EXPORT_VAR_AS_FUNCTION\n", + ($export_var_as_fn)?"define":"undef"; } elsif (/^#define\s+OPENSSL_UNISTD/) { $unistd = "<unistd.h>" if $unistd eq ""; diff --git a/crypto/asn1/asn1.h b/crypto/asn1/asn1.h index a3b992ff93..ae92ad9954 100644 --- a/crypto/asn1/asn1.h +++ b/crypto/asn1/asn1.h @@ -357,7 +357,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; * */ -#ifndef ASN1_ITEM_FUNCTIONS +#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION /* ASN1_ITEM pointer exported type */ typedef const ASN1_ITEM ASN1_ITEM_EXP; diff --git a/crypto/asn1/asn1t.h b/crypto/asn1/asn1t.h index 7d01df0674..6e1bf87e5c 100644 --- a/crypto/asn1/asn1t.h +++ b/crypto/asn1/asn1t.h @@ -74,7 +74,7 @@ extern "C" { #endif -#ifndef ASN1_ITEM_FUNCTIONS +#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION /* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ #define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr)) @@ -287,7 +287,7 @@ extern "C" { /* Any defined by macros: the field used is in the table itself */ -#ifndef ASN1_ITEM_FUNCTIONS +#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION #define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } #define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } #else @@ -358,7 +358,7 @@ extern "C" { #define ASN1_ADB(name) \ const static ASN1_ADB_TABLE name##_adbtbl[] -#ifndef ASN1_ITEM_FUNCTIONS +#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION #define ASN1_ADB_END(name, flags, field, app_table, def, none) \ ;\ diff --git a/crypto/des/des.h b/crypto/des/des.h index 5fa6aef27b..dc627189b4 100644 --- a/crypto/des/des.h +++ b/crypto/des/des.h @@ -116,8 +116,10 @@ typedef struct des_ks_struct #define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) -OPENSSL_EXTERN int des_check_key; /* defaults to false */ -OPENSSL_EXTERN int des_rw_mode; /* defaults to DES_PCBC_MODE */ +OPENSSL_DECLARE_GLOBAL(int,des_check_key); /* defaults to false */ +#define des_check_key OPENSSL_GLOBAL_REF(des_check_key) +OPENSSL_DECLARE_GLOBAL(int,des_rw_mode); /* defaults to DES_PCBC_MODE */ +#define des_rw_mode OPENSSL_GLOBAL_REF(des_rw_mode) const char *des_options(void); void des_ecb3_encrypt(const_des_cblock *input, des_cblock *output, diff --git a/crypto/des/enc_read.c b/crypto/des/enc_read.c index af2d9177d2..e8a5763abf 100644 --- a/crypto/des/enc_read.c +++ b/crypto/des/enc_read.c @@ -63,7 +63,7 @@ /* This has some uglies in it but it works - even over sockets. */ /*extern int errno;*/ -OPENSSL_GLOBAL int des_rw_mode=DES_PCBC_MODE; +OPENSSL_IMPLEMENT_GLOBAL(int,des_rw_mode)=DES_PCBC_MODE; /* diff --git a/crypto/des/set_key.c b/crypto/des/set_key.c index 6df3ba9a64..0dc79c9461 100644 --- a/crypto/des/set_key.c +++ b/crypto/des/set_key.c @@ -65,7 +65,7 @@ */ #include "des_locl.h" -OPENSSL_GLOBAL int des_check_key=0; +OPENSSL_IMPLEMENT_GLOBAL(int,des_check_key); /* defaults to false */ static const unsigned char odd_parity[256]={ 1, 1, 2, 2, 4, 4, 7, 7, 8, 8, 11, 11, 13, 13, 14, 14, diff --git a/crypto/opensslconf.h.in b/crypto/opensslconf.h.in index 5da5911228..a06861b96e 100644 --- a/crypto/opensslconf.h.in +++ b/crypto/opensslconf.h.in @@ -12,6 +12,8 @@ #undef OPENSSL_UNISTD #define OPENSSL_UNISTD <unistd.h> +#undef OPENSSL_EXPORT_VAR_AS_FUNCTIONS + #if defined(HEADER_IDEA_H) && !defined(IDEA_INT) #define IDEA_INT unsigned int #endif @@ -200,6 +200,28 @@ extern "C" { #endif #define OPENSSL_EXTERN OPENSSL_IMPORT +/* Macros to allow global variables to be reached through function calls when + required (if a shared library version requvres it, for example. + The way it's done allows definitions like this: + + // in foobar.c + OPENSSL_IMPLEMENT_GLOBAL(int,foobar) = 0; + // in foobar.h + OPENSSL_DECLARE_GLOBAL(int,foobar); + #define foobar OPENSSL_GLOBAL_REF(foobar) +*/ +#ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION +# define OPENSSL_IMPLEMENT_GLOBAL(type,name) extern static type _hide_##name; \ + type *_shadow_##name(void) { static type local_var; return &local_var; } \ + static type _hide_##name +# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) +# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) +#else +# define OPENSSL_IMPLEMENT_GLOBAL(type,name) OPENSSL_GLOBAL type _shadow_##name +# define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name +# define OPENSSL_GLOBAL_REF(name) _shadow_##name +#endif + #ifdef __cplusplus } #endif diff --git a/makevms.com b/makevms.com index 194e485732..579fcae5a3 100755 --- a/makevms.com +++ b/makevms.com @@ -285,6 +285,8 @@ $ WRITE H_FILE "#undef THIRTY_TWO_BIT" $ WRITE H_FILE "#undef SIXTEEN_BIT" $ WRITE H_FILE "#undef EIGHT_BIT" $ WRITE H_FILE "#endif" +$ +$ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION" $! $! Else... $! @@ -317,6 +319,9 @@ $ WRITE H_FILE "#define THIRTY_TWO_BIT" $ WRITE H_FILE "#undef SIXTEEN_BIT" $ WRITE H_FILE "#undef EIGHT_BIT" $ WRITE H_FILE "#endif" +$ +$ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION" +$ WRITE H_FILE "#define OPENSSL_EXPORT_VAR_AS_FUNCTION" $! $! End $! diff --git a/util/libeay.num b/util/libeay.num index 6c76287f5f..92de2a8f5f 100755 --- a/util/libeay.num +++ b/util/libeay.num @@ -203,13 +203,13 @@ DSA_generate_key 210 EXIST::FUNCTION:DSA DSA_generate_parameters 211 EXIST::FUNCTION:DSA DSA_is_prime 212 NOEXIST::FUNCTION: DSA_new 213 EXIST::FUNCTION:DSA -DSA_print 214 EXIST::FUNCTION:DSA,BIO +DSA_print 214 EXIST::FUNCTION:BIO,DSA DSA_print_fp 215 EXIST::FUNCTION:DSA,FP_API DSA_sign 216 EXIST::FUNCTION:DSA DSA_sign_setup 217 EXIST::FUNCTION:DSA DSA_size 218 EXIST::FUNCTION:DSA DSA_verify 219 EXIST::FUNCTION:DSA -DSAparams_print 220 EXIST::FUNCTION:DSA,BIO +DSAparams_print 220 EXIST::FUNCTION:BIO,DSA DSAparams_print_fp 221 EXIST::FUNCTION:DSA,FP_API ERR_clear_error 222 EXIST::FUNCTION: ERR_error_string 223 EXIST::FUNCTION: @@ -478,7 +478,7 @@ RSA_generate_key 485 EXIST::FUNCTION:RSA RSA_new 486 EXIST::FUNCTION:RSA RSA_new_method 487 EXIST::FUNCTION:RSA RSA_print 488 EXIST::FUNCTION:BIO,RSA -RSA_print_fp 489 EXIST::FUNCTION:RSA,FP_API +RSA_print_fp 489 EXIST::FUNCTION:FP_API,RSA RSA_private_decrypt 490 EXIST::FUNCTION:RSA RSA_private_encrypt 491 EXIST::FUNCTION:RSA RSA_public_decrypt 492 EXIST::FUNCTION:RSA @@ -489,14 +489,14 @@ RSA_sign_ASN1_OCTET_STRING 496 EXIST::FUNCTION:RSA RSA_size 497 EXIST::FUNCTION:RSA RSA_verify 498 EXIST::FUNCTION:RSA RSA_verify_ASN1_OCTET_STRING 499 EXIST::FUNCTION:RSA -SHA 500 EXIST::FUNCTION:SHA0,SHA +SHA 500 EXIST::FUNCTION:SHA,SHA0 SHA1 501 EXIST::FUNCTION:SHA,SHA1 SHA1_Final 502 EXIST::FUNCTION:SHA,SHA1 SHA1_Init 503 EXIST::FUNCTION:SHA,SHA1 SHA1_Update 504 EXIST::FUNCTION:SHA,SHA1 -SHA_Final 505 EXIST::FUNCTION:SHA0,SHA -SHA_Init 506 EXIST::FUNCTION:SHA0,SHA -SHA_Update 507 EXIST::FUNCTION:SHA0,SHA +SHA_Final 505 EXIST::FUNCTION:SHA,SHA0 +SHA_Init 506 EXIST::FUNCTION:SHA,SHA0 +SHA_Update 507 EXIST::FUNCTION:SHA,SHA0 OpenSSL_add_all_algorithms 508 EXIST::FUNCTION: OpenSSL_add_all_ciphers 509 EXIST::FUNCTION: OpenSSL_add_all_digests 510 EXIST::FUNCTION: @@ -719,7 +719,7 @@ d2i_ASN1_bytes 725 EXIST::FUNCTION: d2i_ASN1_type_bytes 726 EXIST::FUNCTION: d2i_DHparams 727 EXIST::FUNCTION:DH d2i_DSAPrivateKey 728 EXIST::FUNCTION:DSA -d2i_DSAPrivateKey_bio 729 EXIST::FUNCTION:DSA,BIO +d2i_DSAPrivateKey_bio 729 EXIST::FUNCTION:BIO,DSA d2i_DSAPrivateKey_fp 730 EXIST::FUNCTION:DSA,FP_API d2i_DSAPublicKey 731 EXIST::FUNCTION:DSA d2i_DSAparams 732 EXIST::FUNCTION:DSA @@ -742,7 +742,7 @@ d2i_PrivateKey 748 EXIST::FUNCTION: d2i_PublicKey 749 EXIST::FUNCTION: d2i_RSAPrivateKey 750 EXIST::FUNCTION:RSA d2i_RSAPrivateKey_bio 751 EXIST::FUNCTION:BIO,RSA -d2i_RSAPrivateKey_fp 752 EXIST::FUNCTION:RSA,FP_API +d2i_RSAPrivateKey_fp 752 EXIST::FUNCTION:FP_API,RSA d2i_RSAPublicKey 753 EXIST::FUNCTION:RSA d2i_X509 754 EXIST::FUNCTION: d2i_X509_ALGOR 755 EXIST::FUNCTION: @@ -821,7 +821,7 @@ i2d_ASN1_UTCTIME 828 EXIST::FUNCTION: i2d_ASN1_bytes 829 EXIST::FUNCTION: i2d_DHparams 830 EXIST::FUNCTION:DH i2d_DSAPrivateKey 831 EXIST::FUNCTION:DSA -i2d_DSAPrivateKey_bio 832 EXIST::FUNCTION:DSA,BIO +i2d_DSAPrivateKey_bio 832 EXIST::FUNCTION:BIO,DSA i2d_DSAPrivateKey_fp 833 EXIST::FUNCTION:DSA,FP_API i2d_DSAPublicKey 834 EXIST::FUNCTION:DSA i2d_DSAparams 835 EXIST::FUNCTION:DSA @@ -844,7 +844,7 @@ i2d_PrivateKey 851 EXIST::FUNCTION: i2d_PublicKey 852 EXIST::FUNCTION: i2d_RSAPrivateKey 853 EXIST::FUNCTION:RSA i2d_RSAPrivateKey_bio 854 EXIST::FUNCTION:BIO,RSA -i2d_RSAPrivateKey_fp 855 EXIST::FUNCTION:RSA,FP_API +i2d_RSAPrivateKey_fp 855 EXIST::FUNCTION:FP_API,RSA i2d_RSAPublicKey 856 EXIST::FUNCTION:RSA i2d_X509 857 EXIST::FUNCTION: i2d_X509_ALGOR 858 EXIST::FUNCTION: @@ -933,8 +933,8 @@ d2i_RSAPublicKey_bio 945 EXIST::FUNCTION:BIO,RSA i2d_RSAPublicKey_bio 946 EXIST::FUNCTION:BIO,RSA PEM_read_RSAPublicKey 947 EXIST:!WIN16:FUNCTION:RSA PEM_write_RSAPublicKey 949 EXIST:!WIN16:FUNCTION:RSA -d2i_RSAPublicKey_fp 952 EXIST::FUNCTION:RSA,FP_API -i2d_RSAPublicKey_fp 954 EXIST::FUNCTION:RSA,FP_API +d2i_RSAPublicKey_fp 952 EXIST::FUNCTION:FP_API,RSA +i2d_RSAPublicKey_fp 954 EXIST::FUNCTION:FP_API,RSA BIO_copy_next_retry 955 EXIST::FUNCTION: RSA_flags 956 EXIST::FUNCTION:RSA X509_STORE_add_crl 957 EXIST::FUNCTION: @@ -989,7 +989,7 @@ ERR_load_CRYPTOlib_strings 1009 EXIST:WIN16,VMS:FUNCTION: EVP_PKEY_bits 1010 EXIST::FUNCTION: MD5_Transform 1011 EXIST::FUNCTION:MD5 SHA1_Transform 1012 EXIST::FUNCTION:SHA,SHA1 -SHA_Transform 1013 EXIST::FUNCTION:SHA0,SHA +SHA_Transform 1013 EXIST::FUNCTION:SHA,SHA0 X509_STORE_CTX_get_chain 1014 EXIST::FUNCTION: X509_STORE_CTX_get_current_cert 1015 EXIST::FUNCTION: X509_STORE_CTX_get_error 1016 EXIST::FUNCTION: @@ -1216,7 +1216,7 @@ name_cmp 1239 EXIST::FUNCTION: str_dup 1240 NOEXIST::FUNCTION: i2s_ASN1_ENUMERATED 1241 EXIST::FUNCTION: i2s_ASN1_ENUMERATED_TABLE 1242 EXIST::FUNCTION: -BIO_s_log 1243 EXIST:!WIN32,!WIN16,!macintosh:FUNCTION: +BIO_s_log 1243 EXIST:!WIN16,!WIN32,!macintosh:FUNCTION: BIO_f_reliable 1244 EXIST::FUNCTION:BIO PKCS7_dataFinal 1245 EXIST::FUNCTION: PKCS7_dataDecode 1246 EXIST::FUNCTION: @@ -1468,7 +1468,7 @@ RSA_get_method 1847 EXIST::FUNCTION:RSA RSA_get_default_method 1848 NOEXIST::FUNCTION: RSA_check_key 1869 EXIST::FUNCTION:RSA OBJ_obj2txt 1870 EXIST::FUNCTION: -DSA_dup_DH 1871 EXIST::FUNCTION:DSA,DH +DSA_dup_DH 1871 EXIST::FUNCTION:DH,DSA X509_REQ_get_extensions 1872 EXIST::FUNCTION: X509_REQ_set_extension_nids 1873 EXIST::FUNCTION: BIO_nwrite 1874 EXIST::FUNCTION: @@ -1543,7 +1543,7 @@ ASN1_STRING_set_default_mask_asc 1960 EXIST:!VMS:FUNCTION: ASN1_STRING_set_def_mask_asc 1960 EXIST:VMS:FUNCTION: PEM_write_bio_RSA_PUBKEY 1961 EXIST::FUNCTION:RSA ASN1_INTEGER_cmp 1963 EXIST::FUNCTION: -d2i_RSA_PUBKEY_fp 1964 EXIST::FUNCTION:RSA,FP_API +d2i_RSA_PUBKEY_fp 1964 EXIST::FUNCTION:FP_API,RSA X509_trust_set_bit_asc 1967 NOEXIST::FUNCTION: PEM_write_bio_DSA_PUBKEY 1968 EXIST::FUNCTION:DSA X509_STORE_CTX_free 1969 EXIST::FUNCTION: @@ -1576,7 +1576,7 @@ X509_NAME_add_entry_by_OBJ 2008 EXIST::FUNCTION: X509_CRL_get_ext_d2i 2009 EXIST::FUNCTION: X509_PURPOSE_get0_name 2011 EXIST::FUNCTION: PEM_read_PUBKEY 2012 EXIST:!WIN16:FUNCTION: -i2d_DSA_PUBKEY_bio 2014 EXIST::FUNCTION:DSA,BIO +i2d_DSA_PUBKEY_bio 2014 EXIST::FUNCTION:BIO,DSA i2d_OTHERNAME 2015 EXIST::FUNCTION: ASN1_OCTET_STRING_free 2016 EXIST::FUNCTION: ASN1_BIT_STRING_set_asc 2017 EXIST::FUNCTION: @@ -1634,7 +1634,7 @@ PEM_read_bio_DSA_PUBKEY 2088 EXIST::FUNCTION:DSA X509_PURPOSE_add 2090 EXIST::FUNCTION: ASN1_STRING_TABLE_get 2091 EXIST::FUNCTION: ASN1_UTF8STRING_free 2092 EXIST::FUNCTION: -d2i_DSA_PUBKEY_bio 2093 EXIST::FUNCTION:DSA,BIO +d2i_DSA_PUBKEY_bio 2093 EXIST::FUNCTION:BIO,DSA PEM_write_RSA_PUBKEY 2095 EXIST:!WIN16:FUNCTION:RSA d2i_OTHERNAME 2096 EXIST::FUNCTION: X509_reject_set_bit 2098 NOEXIST::FUNCTION: @@ -1646,7 +1646,7 @@ ASN1_BIT_STRING_set 2109 EXIST::FUNCTION: X509_TRUST_get_count 2110 EXIST::FUNCTION: ASN1_INTEGER_free 2111 EXIST::FUNCTION: OTHERNAME_free 2112 EXIST::FUNCTION: -i2d_RSA_PUBKEY_fp 2113 EXIST::FUNCTION:RSA,FP_API +i2d_RSA_PUBKEY_fp 2113 EXIST::FUNCTION:FP_API,RSA ASN1_INTEGER_dup 2114 EXIST::FUNCTION: d2i_X509_CERT_AUX 2115 EXIST::FUNCTION: PEM_write_bio_PUBKEY 2117 EXIST::FUNCTION: @@ -1871,8 +1871,10 @@ X509_time_adj 2453 EXIST::FUNCTION: X509_check_issued 2454 EXIST::FUNCTION: ASN1_UTCTIME_cmp_time_t 2455 EXIST::FUNCTION: des_set_weak_key_flag 2456 NOEXIST::FUNCTION: -des_check_key 2457 EXIST::VARIABLE:DES -des_rw_mode 2458 EXIST::VARIABLE:DES +_shadow_des_check_key 2457 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DES +_shadow_des_check_key 2457 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DES +_shadow_des_rw_mode 2458 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DES +_shadow_des_rw_mode 2458 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DES RSA_PKCS1_RSAref 2459 NOEXIST::FUNCTION: X509_keyid_set1 2460 EXIST::FUNCTION: BIO_next 2461 EXIST::FUNCTION: @@ -2077,95 +2079,141 @@ BN_mod_lshift1_quick 2656 EXIST::FUNCTION: BN_mod_lshift_quick 2657 EXIST::FUNCTION: BN_mod_add_quick 2658 EXIST::FUNCTION: BN_mod_sub 2659 EXIST::FUNCTION: -ASN1_UTF8STRING_it 2660 EXIST::VARIABLE: +ASN1_UTF8STRING_it 2660 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_UTF8STRING_it 2660 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: ASN1_item_ex_i2d 2661 EXIST::FUNCTION: X509V3_add1_i2d 2662 EXIST::FUNCTION: -PKCS7_ENVELOPE_it 2663 EXIST::VARIABLE: +PKCS7_ENVELOPE_it 2663 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_ENVELOPE_it 2663 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_ONEREQ_get1_ext_d2i 2664 EXIST::FUNCTION: -PBKDF2PARAM_it 2665 EXIST::VARIABLE: +PBKDF2PARAM_it 2665 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PBKDF2PARAM_it 2665 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: EXTENDED_KEY_USAGE_new 2666 EXIST::FUNCTION: OCSP_BASICRESP_delete_ext 2667 EXIST::FUNCTION: -X509_CRL_it 2668 EXIST::VARIABLE: +X509_CRL_it 2668 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_CRL_it 2668 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_BASICRESP_add_ext 2669 EXIST::FUNCTION: OCSP_REQUEST_get_ext_by_OBJ 2670 EXIST::FUNCTION: -ASN1_T61STRING_it 2671 EXIST::VARIABLE: +ASN1_T61STRING_it 2671 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_T61STRING_it 2671 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_BASICRESP_get_ext_by_OBJ 2672 EXIST::FUNCTION: OCSP_SINGLERESP_get_ext_count 2673 EXIST::FUNCTION: asn1_do_adb 2674 EXIST::FUNCTION: ASN1_template_i2d 2675 EXIST::FUNCTION: -GENERAL_NAME_it 2676 EXIST::VARIABLE: -ASN1_GENERALIZEDTIME_it 2677 EXIST::VARIABLE: -SXNET_it 2678 EXIST::VARIABLE: -POLICYQUALINFO_it 2679 EXIST::VARIABLE: +GENERAL_NAME_it 2676 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +GENERAL_NAME_it 2676 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ASN1_GENERALIZEDTIME_it 2677 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_GENERALIZEDTIME_it 2677 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +SXNET_it 2678 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +SXNET_it 2678 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +POLICYQUALINFO_it 2679 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +POLICYQUALINFO_it 2679 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: ASN1_item_free 2680 EXIST::FUNCTION: -AUTHORITY_KEYID_it 2681 EXIST::VARIABLE: +AUTHORITY_KEYID_it 2681 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +AUTHORITY_KEYID_it 2681 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: EXTENDED_KEY_USAGE_free 2682 EXIST::FUNCTION: OCSP_REQUEST_get_ext 2683 EXIST::FUNCTION: ENGINE_load_ubsec 2684 EXIST::FUNCTION: -PKEY_USAGE_PERIOD_it 2685 EXIST::VARIABLE: -NETSCAPE_SPKAC_it 2686 EXIST::VARIABLE: -X509_REVOKED_it 2687 EXIST::VARIABLE: +PKEY_USAGE_PERIOD_it 2685 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKEY_USAGE_PERIOD_it 2685 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +NETSCAPE_SPKAC_it 2686 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +NETSCAPE_SPKAC_it 2686 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_REVOKED_it 2687 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_REVOKED_it 2687 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_BASICRESP_get_ext_by_critical 2688 EXIST:!VMS:FUNCTION: OCSP_BASICRESP_get_ext_by_crit 2688 EXIST:VMS:FUNCTION: -PKCS12_it 2689 EXIST::VARIABLE: +PKCS12_it 2689 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS12_it 2689 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_SINGLERESP_get_ext_by_critical 2690 EXIST:!VMS:FUNCTION: OCSP_SINGLERESP_get_ext_by_crit 2690 EXIST:VMS:FUNCTION: ASN1_item_i2d 2691 EXIST::FUNCTION: asn1_ex_i2c 2692 EXIST::FUNCTION: -X509_EXTENSION_it 2693 EXIST::VARIABLE: -SXNETID_it 2694 EXIST::VARIABLE: +X509_EXTENSION_it 2693 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_EXTENSION_it 2693 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +SXNETID_it 2694 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +SXNETID_it 2694 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: EDIPARTYNAME_new 2695 EXIST::FUNCTION: d2i_EXTENDED_KEY_USAGE 2696 EXIST::FUNCTION: -X509_PUBKEY_it 2697 EXIST::VARIABLE: -PKCS7_ENCRYPT_it 2698 EXIST::VARIABLE: +X509_PUBKEY_it 2697 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_PUBKEY_it 2697 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PKCS7_ENCRYPT_it 2698 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_ENCRYPT_it 2698 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: X509_add1_ext_i2d 2699 EXIST::FUNCTION: -PKCS7_SIGNER_INFO_it 2700 EXIST::VARIABLE: -PKCS12_SAFEBAG_it 2701 EXIST::VARIABLE: +PKCS7_SIGNER_INFO_it 2700 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_SIGNER_INFO_it 2700 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PKCS12_SAFEBAG_it 2701 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS12_SAFEBAG_it 2701 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: X509_signature_print 2702 EXIST::FUNCTION:EVP OCSP_REQUEST_add_ext 2703 EXIST::FUNCTION: -X509_ALGOR_it 2704 EXIST::VARIABLE: -ASN1_TIME_it 2705 EXIST::VARIABLE: +X509_ALGOR_it 2704 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_ALGOR_it 2704 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ASN1_TIME_it 2705 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_TIME_it 2705 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_ONEREQ_get_ext_count 2706 EXIST::FUNCTION: -ASN1_IA5STRING_it 2707 EXIST::VARIABLE: -X509_CERT_AUX_it 2708 EXIST::VARIABLE: -CERTIFICATEPOLICIES_it 2709 EXIST::VARIABLE: +ASN1_IA5STRING_it 2707 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_IA5STRING_it 2707 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_CERT_AUX_it 2708 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_CERT_AUX_it 2708 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +CERTIFICATEPOLICIES_it 2709 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +CERTIFICATEPOLICIES_it 2709 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: BN_bntest_rand 2710 EXIST::FUNCTION: -X509_ATTRIBUTE_it 2711 EXIST::VARIABLE: +X509_ATTRIBUTE_it 2711 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_ATTRIBUTE_it 2711 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_ONEREQ_get_ext_by_NID 2712 EXIST::FUNCTION: -OCSP_SERVICELOC_it 2713 EXIST::VARIABLE: -ACCESS_DESCRIPTION_it 2714 EXIST::VARIABLE: -PKCS7_ISSUER_AND_SERIAL_it 2715 EXIST::VARIABLE: -PBE2PARAM_it 2716 EXIST::VARIABLE: -PKCS7_SIGNED_it 2717 EXIST::VARIABLE: -X509_it 2718 EXIST::VARIABLE: -ASN1_BMPSTRING_it 2719 EXIST::VARIABLE: +OCSP_SERVICELOC_it 2713 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +OCSP_SERVICELOC_it 2713 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ACCESS_DESCRIPTION_it 2714 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ACCESS_DESCRIPTION_it 2714 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PKCS7_ISSUER_AND_SERIAL_it 2715 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_ISSUER_AND_SERIAL_it 2715 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PBE2PARAM_it 2716 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PBE2PARAM_it 2716 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PKCS7_SIGNED_it 2717 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_SIGNED_it 2717 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_it 2718 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_it 2718 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +ASN1_BMPSTRING_it 2719 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_BMPSTRING_it 2719 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: ASN1_tag2bit 2720 EXIST::FUNCTION: OCSP_REQUEST_delete_ext 2721 EXIST::FUNCTION: -ASN1_PRINTABLESTRING_it 2722 EXIST::VARIABLE: +ASN1_PRINTABLESTRING_it 2722 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_PRINTABLESTRING_it 2722 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: BN_mod_sqr 2723 EXIST::FUNCTION: -NETSCAPE_CERT_SEQUENCE_it 2724 EXIST::VARIABLE: -GENERAL_NAMES_it 2725 EXIST::VARIABLE: -AUTHORITY_INFO_ACCESS_it 2726 EXIST::VARIABLE: -X509_CINF_it 2727 EXIST::VARIABLE: +NETSCAPE_CERT_SEQUENCE_it 2724 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +NETSCAPE_CERT_SEQUENCE_it 2724 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +GENERAL_NAMES_it 2725 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +GENERAL_NAMES_it 2725 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +AUTHORITY_INFO_ACCESS_it 2726 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +AUTHORITY_INFO_ACCESS_it 2726 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_CINF_it 2727 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_CINF_it 2727 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: d2i_EDIPARTYNAME 2728 EXIST::FUNCTION: -OTHERNAME_it 2729 EXIST::VARIABLE: +OTHERNAME_it 2729 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +OTHERNAME_it 2729 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_SINGLERESP_get_ext_by_NID 2730 EXIST::FUNCTION: OCSP_REQUEST_add1_ext_i2d 2731 EXIST::FUNCTION: -X509_VAL_it 2732 EXIST::VARIABLE: +X509_VAL_it 2732 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_VAL_it 2732 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: X509_CRL_add1_ext_i2d 2733 EXIST::FUNCTION: OCSP_BASICRESP_add1_ext_i2d 2734 EXIST::FUNCTION: -X509_SIG_it 2735 EXIST::VARIABLE: +X509_SIG_it 2735 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_SIG_it 2735 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_ONEREQ_get_ext 2736 EXIST::FUNCTION: OCSP_ONEREQ_get_ext_by_OBJ 2737 EXIST::FUNCTION: ASN1_primitive_new 2738 EXIST::FUNCTION: -ASN1_VISIBLESTRING_it 2739 EXIST::VARIABLE: +ASN1_VISIBLESTRING_it 2739 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_VISIBLESTRING_it 2739 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_SINGLERESP_add1_ext_i2d 2740 EXIST::FUNCTION: -CRL_DIST_POINTS_it 2741 EXIST::VARIABLE: +CRL_DIST_POINTS_it 2741 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +CRL_DIST_POINTS_it 2741 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: GENERAL_NAME_print 2742 EXIST::FUNCTION: OCSP_SINGLERESP_delete_ext 2743 EXIST::FUNCTION: -ASN1_BIT_STRING_it 2744 EXIST::VARIABLE: -X509_REQ_it 2745 EXIST::VARIABLE: -PKCS7_SIGN_ENVELOPE_it 2746 EXIST::VARIABLE: +ASN1_BIT_STRING_it 2744 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_BIT_STRING_it 2744 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +X509_REQ_it 2745 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_REQ_it 2745 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +PKCS7_SIGN_ENVELOPE_it 2746 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS7_SIGN_ENVELOPE_it 2746 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: EDIPARTYNAME_free 2747 EXIST::FUNCTION: OCSP_REQUEST_get1_ext_d2i 2748 EXIST::FUNCTION: asn1_ex_c2i 2749 EXIST::FUNCTION: @@ -2173,68 +2221,98 @@ asn1_enc_restore 2750 EXIST::FUNCTION: OCSP_SINGLERESP_get_ext 2751 EXIST::FUNCTION: OCSP_BASICRESP_get1_ext_d2i 2752 EXIST::FUNCTION: i2d_EDIPARTYNAME 2753 EXIST::FUNCTION: -ASN1_INTEGER_it 2754 EXIST::VARIABLE: +ASN1_INTEGER_it 2754 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +ASN1_INTEGER_it 2754 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_ONEREQ_get_ext_by_critical 2755 EXIST::FUNCTION: -BASIC_CONSTRAINTS_it 2756 EXIST::VARIABLE: +BASIC_CONSTRAINTS_it 2756 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +BASIC_CONSTRAINTS_it 2756 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_SINGLERESP_get1_ext_d2i 2757 EXIST::FUNCTION: -X509_NAME_ENTRY_it 2758 EXIST::VARIABLE: +X509_NAME_ENTRY_it 2758 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +X509_NAME_ENTRY_it 2758 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: OCSP_ONEREQ_add_ext 2759 EXIST::FUNCTION: -DIST_POINT_it 2760 EXIST::VARIABLE: -OCSP_SINGLERESP_it 2761 EXIST::VARIABLE: +DIST_POINT_it 2760 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +DIST_POINT_it 2760 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: +OCSP_SINGLERESP_it 2761 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +OCSP_SINGLERESP_it 2761 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: ASN1_item_ex_d2i 2762 EXIST::FUNCTION: BN_mod_sqrt 2763 EXIST::FUNCTION: OCSP_SINGLERESP_get_ext_by_OBJ 2764 EXIST::FUNCTION: -PKCS12_BAGS_it 2765 EXIST::VARIABLE: +PKCS12_BAGS_it 2765 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: +PKCS12_BAGS_it 2765 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: ASN1_template_free 2766 EXIST::FUNCTION: OCSP_SINGLERESP_add_ext 2767 EXIST::FUNCTION: |