Loading CHANGES +0 −65 Original line number Original line Diff line number Diff line Loading @@ -20,63 +20,6 @@ STACK, TXT_DB, bsearch, qsort. STACK, TXT_DB, bsearch, qsort. [Ben Laurie] [Ben Laurie] *) Not all of this is true any longer. Will have to be updated to reflect all subsequent changes to cryptlib.c. --bodo To support arbitrarily-typed thread IDs, deprecate the existing type-specific APIs for a general purpose CRYPTO_THREADID interface. Applications can choose the thread ID callback type it wishes to register, as before; void CRYPTO_set_id_callback(unsigned long (*func)(void)); void CRYPTO_set_idptr_callback(void *(*func)(void)); but retrieval, copies, and comparisons of thread IDs are via type-independent interfaces; void CRYPTO_THREADID_set(CRYPTO_THREADID *id); void CRYPTO_THREADID_cmp(const CRYPTO_THREADID *id1, const CRYPTO_THREADID *id2); void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dst, const CRYPTO_THREADID *src); Also, for code that needs a thread ID "value" for use in hash-tables or logging, a "hash" is available by; unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id); This hash value is likely to be the thread ID anyway, but otherwise it will be unique if possible or as collision-free as possible if uniqueness can't be guaranteed on the target architecture. The following functions are deprecated; unsigned long (*CRYPTO_get_id_callback(void))(void); unsigned long CRYPTO_thread_id(void); As a consequence of the above, there are similar deprecations of BN_BLINDING functions in favour of CRYPTO_THREADID-based alternatives; #ifndef OPENSSL_NO_DEPRECATED unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); #endif void BN_BLINDING_set_thread(BN_BLINDING *); int BN_BLINDING_cmp_thread(const BN_BLINDING *, const CRYPTO_THREADID *); Also, the ERR_remove_state(int pid) API has been deprecated; #ifndef OPENSSL_NO_DEPRECATED void ERR_remove_state(unsigned long pid) #endif void ERR_remove_thread_state(CRYPTO_THREADID *tid); [Geoff Thorpe] *) Initial support for Cryptographic Message Syntax (aka CMS) based *) Initial support for Cryptographic Message Syntax (aka CMS) based on RFC3850, RFC3851 and RFC3852. New cms directory and cms utility, on RFC3850, RFC3851 and RFC3852. New cms directory and cms utility, support for data, signedData, compressedData, digestedData and support for data, signedData, compressedData, digestedData and Loading Loading @@ -383,14 +326,6 @@ callback is &errno. callback is &errno. [Bodo Moeller] [Bodo Moeller] -- NOTE -- this change has been reverted and replaced with a type-independent wrapper (ie. applications do not have to check two type-specific thread ID representations as implied in this change note). However, the "idptr" callback form described here can still be registered. Please see the more recent CHANGES note regarding CRYPTO_THREADID. [Geoff Thorpe] -- NOTE -- *) Change the array representation of binary polynomials: the list *) Change the array representation of binary polynomials: the list of degrees of non-zero coefficients is now terminated with -1. of degrees of non-zero coefficients is now terminated with -1. Previously it was terminated with 0, which was also part of the Previously it was terminated with 0, which was also part of the Loading apps/apps.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -181,7 +181,7 @@ extern BIO *bio_err; # define apps_shutdown() \ # define apps_shutdown() \ do { CONF_modules_unload(1); destroy_ui_method(); \ do { CONF_modules_unload(1); destroy_ui_method(); \ OBJ_cleanup(); EVP_cleanup(); ENGINE_cleanup(); \ OBJ_cleanup(); EVP_cleanup(); ENGINE_cleanup(); \ CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \ CRYPTO_cleanup_all_ex_data(); ERR_remove_state(0); \ ERR_free_strings(); COMP_zlib_cleanup();} while(0) ERR_free_strings(); COMP_zlib_cleanup();} while(0) # else # else # define apps_startup() \ # define apps_startup() \ Loading @@ -191,7 +191,7 @@ extern BIO *bio_err; # define apps_shutdown() \ # define apps_shutdown() \ do { CONF_modules_unload(1); destroy_ui_method(); \ do { CONF_modules_unload(1); destroy_ui_method(); \ OBJ_cleanup(); EVP_cleanup(); \ OBJ_cleanup(); EVP_cleanup(); \ CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \ CRYPTO_cleanup_all_ex_data(); ERR_remove_state(0); \ ERR_free_strings(); } while(0) ERR_free_strings(); } while(0) # endif # endif #endif #endif Loading crypto/bn/bn.h +2 −5 Original line number Original line Diff line number Diff line Loading @@ -129,7 +129,6 @@ #ifndef OPENSSL_NO_FP_API #ifndef OPENSSL_NO_FP_API #include <stdio.h> /* FILE */ #include <stdio.h> /* FILE */ #endif #endif #include <openssl/crypto.h> #include <openssl/ossl_typ.h> #include <openssl/ossl_typ.h> #ifdef __cplusplus #ifdef __cplusplus Loading Loading @@ -565,12 +564,10 @@ int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, BN_CTX *); int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, BN_CTX *); #ifndef OPENSSL_NO_DEPRECATED unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); #endif void *BN_BLINDING_get_thread_idptr(const BN_BLINDING *); void BN_BLINDING_set_thread(BN_BLINDING *); void BN_BLINDING_set_thread_idptr(BN_BLINDING *, void *); int BN_BLINDING_cmp_thread(const BN_BLINDING *, const CRYPTO_THREADID *); unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, Loading crypto/bn/bn_blind.c +6 −11 Original line number Original line Diff line number Diff line Loading @@ -121,13 +121,10 @@ struct bn_blinding_st BIGNUM *Ai; BIGNUM *Ai; BIGNUM *e; BIGNUM *e; BIGNUM *mod; /* just a reference */ BIGNUM *mod; /* just a reference */ /* FIXME: should really try to remove these, but the deprecated APIs that are * using them would need to be fudged somehow. */ #ifndef OPENSSL_NO_DEPRECATED unsigned long thread_id; /* added in OpenSSL 0.9.6j and 0.9.7b; unsigned long thread_id; /* added in OpenSSL 0.9.6j and 0.9.7b; * used only by crypto/rsa/rsa_eay.c, rsa_lib.c */ * used only by crypto/rsa/rsa_eay.c, rsa_lib.c */ #endif void *thread_idptr; /* added in OpenSSL 0.9.9; CRYPTO_THREADID tid; * used only by crypto/rsa/rsa_eay.c, rsa_lib.c */ unsigned int counter; unsigned int counter; unsigned long flags; unsigned long flags; BN_MONT_CTX *m_ctx; BN_MONT_CTX *m_ctx; Loading Loading @@ -268,7 +265,6 @@ int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, BN_CTX *ct return(ret); return(ret); } } #ifndef OPENSSL_NO_DEPRECATED unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *b) unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *b) { { return b->thread_id; return b->thread_id; Loading @@ -278,16 +274,15 @@ void BN_BLINDING_set_thread_id(BN_BLINDING *b, unsigned long n) { { b->thread_id = n; b->thread_id = n; } } #endif void BN_BLINDING_set_thread(BN_BLINDING *b) void *BN_BLINDING_get_thread_idptr(const BN_BLINDING *b) { { CRYPTO_THREADID_set(&b->tid); return b->thread_idptr; } } int BN_BLINDING_cmp_thread(const BN_BLINDING *b, const CRYPTO_THREADID *tid) void BN_BLINDING_set_thread_idptr(BN_BLINDING *b, void *p) { { return CRYPTO_THREADID_cmp(&b->tid, tid); b->thread_idptr = p; } } unsigned long BN_BLINDING_get_flags(const BN_BLINDING *b) unsigned long BN_BLINDING_get_flags(const BN_BLINDING *b) Loading crypto/bn/exptest.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -187,7 +187,7 @@ int main(int argc, char *argv[]) BN_free(b); BN_free(b); BN_free(m); BN_free(m); BN_CTX_free(ctx); BN_CTX_free(ctx); ERR_remove_thread_state(NULL); ERR_remove_state(0); CRYPTO_mem_leaks(out); CRYPTO_mem_leaks(out); BIO_free(out); BIO_free(out); printf(" done\n"); printf(" done\n"); Loading Loading
CHANGES +0 −65 Original line number Original line Diff line number Diff line Loading @@ -20,63 +20,6 @@ STACK, TXT_DB, bsearch, qsort. STACK, TXT_DB, bsearch, qsort. [Ben Laurie] [Ben Laurie] *) Not all of this is true any longer. Will have to be updated to reflect all subsequent changes to cryptlib.c. --bodo To support arbitrarily-typed thread IDs, deprecate the existing type-specific APIs for a general purpose CRYPTO_THREADID interface. Applications can choose the thread ID callback type it wishes to register, as before; void CRYPTO_set_id_callback(unsigned long (*func)(void)); void CRYPTO_set_idptr_callback(void *(*func)(void)); but retrieval, copies, and comparisons of thread IDs are via type-independent interfaces; void CRYPTO_THREADID_set(CRYPTO_THREADID *id); void CRYPTO_THREADID_cmp(const CRYPTO_THREADID *id1, const CRYPTO_THREADID *id2); void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dst, const CRYPTO_THREADID *src); Also, for code that needs a thread ID "value" for use in hash-tables or logging, a "hash" is available by; unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id); This hash value is likely to be the thread ID anyway, but otherwise it will be unique if possible or as collision-free as possible if uniqueness can't be guaranteed on the target architecture. The following functions are deprecated; unsigned long (*CRYPTO_get_id_callback(void))(void); unsigned long CRYPTO_thread_id(void); As a consequence of the above, there are similar deprecations of BN_BLINDING functions in favour of CRYPTO_THREADID-based alternatives; #ifndef OPENSSL_NO_DEPRECATED unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); #endif void BN_BLINDING_set_thread(BN_BLINDING *); int BN_BLINDING_cmp_thread(const BN_BLINDING *, const CRYPTO_THREADID *); Also, the ERR_remove_state(int pid) API has been deprecated; #ifndef OPENSSL_NO_DEPRECATED void ERR_remove_state(unsigned long pid) #endif void ERR_remove_thread_state(CRYPTO_THREADID *tid); [Geoff Thorpe] *) Initial support for Cryptographic Message Syntax (aka CMS) based *) Initial support for Cryptographic Message Syntax (aka CMS) based on RFC3850, RFC3851 and RFC3852. New cms directory and cms utility, on RFC3850, RFC3851 and RFC3852. New cms directory and cms utility, support for data, signedData, compressedData, digestedData and support for data, signedData, compressedData, digestedData and Loading Loading @@ -383,14 +326,6 @@ callback is &errno. callback is &errno. [Bodo Moeller] [Bodo Moeller] -- NOTE -- this change has been reverted and replaced with a type-independent wrapper (ie. applications do not have to check two type-specific thread ID representations as implied in this change note). However, the "idptr" callback form described here can still be registered. Please see the more recent CHANGES note regarding CRYPTO_THREADID. [Geoff Thorpe] -- NOTE -- *) Change the array representation of binary polynomials: the list *) Change the array representation of binary polynomials: the list of degrees of non-zero coefficients is now terminated with -1. of degrees of non-zero coefficients is now terminated with -1. Previously it was terminated with 0, which was also part of the Previously it was terminated with 0, which was also part of the Loading
apps/apps.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -181,7 +181,7 @@ extern BIO *bio_err; # define apps_shutdown() \ # define apps_shutdown() \ do { CONF_modules_unload(1); destroy_ui_method(); \ do { CONF_modules_unload(1); destroy_ui_method(); \ OBJ_cleanup(); EVP_cleanup(); ENGINE_cleanup(); \ OBJ_cleanup(); EVP_cleanup(); ENGINE_cleanup(); \ CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \ CRYPTO_cleanup_all_ex_data(); ERR_remove_state(0); \ ERR_free_strings(); COMP_zlib_cleanup();} while(0) ERR_free_strings(); COMP_zlib_cleanup();} while(0) # else # else # define apps_startup() \ # define apps_startup() \ Loading @@ -191,7 +191,7 @@ extern BIO *bio_err; # define apps_shutdown() \ # define apps_shutdown() \ do { CONF_modules_unload(1); destroy_ui_method(); \ do { CONF_modules_unload(1); destroy_ui_method(); \ OBJ_cleanup(); EVP_cleanup(); \ OBJ_cleanup(); EVP_cleanup(); \ CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \ CRYPTO_cleanup_all_ex_data(); ERR_remove_state(0); \ ERR_free_strings(); } while(0) ERR_free_strings(); } while(0) # endif # endif #endif #endif Loading
crypto/bn/bn.h +2 −5 Original line number Original line Diff line number Diff line Loading @@ -129,7 +129,6 @@ #ifndef OPENSSL_NO_FP_API #ifndef OPENSSL_NO_FP_API #include <stdio.h> /* FILE */ #include <stdio.h> /* FILE */ #endif #endif #include <openssl/crypto.h> #include <openssl/ossl_typ.h> #include <openssl/ossl_typ.h> #ifdef __cplusplus #ifdef __cplusplus Loading Loading @@ -565,12 +564,10 @@ int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, BN_CTX *); int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, BN_CTX *); #ifndef OPENSSL_NO_DEPRECATED unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); #endif void *BN_BLINDING_get_thread_idptr(const BN_BLINDING *); void BN_BLINDING_set_thread(BN_BLINDING *); void BN_BLINDING_set_thread_idptr(BN_BLINDING *, void *); int BN_BLINDING_cmp_thread(const BN_BLINDING *, const CRYPTO_THREADID *); unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, Loading
crypto/bn/bn_blind.c +6 −11 Original line number Original line Diff line number Diff line Loading @@ -121,13 +121,10 @@ struct bn_blinding_st BIGNUM *Ai; BIGNUM *Ai; BIGNUM *e; BIGNUM *e; BIGNUM *mod; /* just a reference */ BIGNUM *mod; /* just a reference */ /* FIXME: should really try to remove these, but the deprecated APIs that are * using them would need to be fudged somehow. */ #ifndef OPENSSL_NO_DEPRECATED unsigned long thread_id; /* added in OpenSSL 0.9.6j and 0.9.7b; unsigned long thread_id; /* added in OpenSSL 0.9.6j and 0.9.7b; * used only by crypto/rsa/rsa_eay.c, rsa_lib.c */ * used only by crypto/rsa/rsa_eay.c, rsa_lib.c */ #endif void *thread_idptr; /* added in OpenSSL 0.9.9; CRYPTO_THREADID tid; * used only by crypto/rsa/rsa_eay.c, rsa_lib.c */ unsigned int counter; unsigned int counter; unsigned long flags; unsigned long flags; BN_MONT_CTX *m_ctx; BN_MONT_CTX *m_ctx; Loading Loading @@ -268,7 +265,6 @@ int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, BN_CTX *ct return(ret); return(ret); } } #ifndef OPENSSL_NO_DEPRECATED unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *b) unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *b) { { return b->thread_id; return b->thread_id; Loading @@ -278,16 +274,15 @@ void BN_BLINDING_set_thread_id(BN_BLINDING *b, unsigned long n) { { b->thread_id = n; b->thread_id = n; } } #endif void BN_BLINDING_set_thread(BN_BLINDING *b) void *BN_BLINDING_get_thread_idptr(const BN_BLINDING *b) { { CRYPTO_THREADID_set(&b->tid); return b->thread_idptr; } } int BN_BLINDING_cmp_thread(const BN_BLINDING *b, const CRYPTO_THREADID *tid) void BN_BLINDING_set_thread_idptr(BN_BLINDING *b, void *p) { { return CRYPTO_THREADID_cmp(&b->tid, tid); b->thread_idptr = p; } } unsigned long BN_BLINDING_get_flags(const BN_BLINDING *b) unsigned long BN_BLINDING_get_flags(const BN_BLINDING *b) Loading
crypto/bn/exptest.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -187,7 +187,7 @@ int main(int argc, char *argv[]) BN_free(b); BN_free(b); BN_free(m); BN_free(m); BN_CTX_free(ctx); BN_CTX_free(ctx); ERR_remove_thread_state(NULL); ERR_remove_state(0); CRYPTO_mem_leaks(out); CRYPTO_mem_leaks(out); BIO_free(out); BIO_free(out); printf(" done\n"); printf(" done\n"); Loading