aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorGeoff Thorpe <geoff@openssl.org>2008-07-03 19:59:25 +0000
committerGeoff Thorpe <geoff@openssl.org>2008-07-03 19:59:25 +0000
commit5f834ab123af6444b7cffe21849e434ad6479f8a (patch)
tree0cc48f4fc085f781606cb118b715781651487cb3 /doc
parent8528128b2a740d34d3ae1d43c525d7e6ea6d7f37 (diff)
downloadopenssl-5f834ab123af6444b7cffe21849e434ad6479f8a.tar.gz
Revert my earlier CRYPTO_THREADID commit, I will commit a reworked
version some time soon.
Diffstat (limited to 'doc')
-rw-r--r--doc/crypto/BN_BLINDING_new.pod31
-rw-r--r--doc/crypto/bn.pod6
-rw-r--r--doc/crypto/threads.pod8
3 files changed, 14 insertions, 31 deletions
diff --git a/doc/crypto/BN_BLINDING_new.pod b/doc/crypto/BN_BLINDING_new.pod
index fbb5be770e..7b087f7288 100644
--- a/doc/crypto/BN_BLINDING_new.pod
+++ b/doc/crypto/BN_BLINDING_new.pod
@@ -4,7 +4,7 @@
BN_BLINDING_new, BN_BLINDING_free, BN_BLINDING_update, BN_BLINDING_convert,
BN_BLINDING_invert, BN_BLINDING_convert_ex, BN_BLINDING_invert_ex,
-BN_BLINDING_set_thread, BN_BLINDING_cmp_thread, BN_BLINDING_get_flags,
+BN_BLINDING_get_thread_id, BN_BLINDING_set_thread_id, BN_BLINDING_get_flags,
BN_BLINDING_set_flags, BN_BLINDING_create_param - blinding related BIGNUM
functions.
@@ -22,10 +22,8 @@ functions.
BN_CTX *ctx);
int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b,
BN_CTX *ctx);
-
- void BN_BLINDING_set_thread(BN_BLINDING *);
- int BN_BLINDING_cmp_thread(const BN_BLINDING *,
- const CRYPTO_THREADID *);
+ unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *);
+ void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long);
unsigned long BN_BLINDING_get_flags(const BN_BLINDING *);
void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long);
BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b,
@@ -56,10 +54,11 @@ BN_BLINDING_convert() and BN_BLINDING_invert() are wrapper
functions for BN_BLINDING_convert_ex() and BN_BLINDING_invert_ex()
with B<r> set to NULL.
-BN_BLINDING_set_thread() and BN_BLINDING_cmp_thread()
-set and compare the "thread id" of the B<BN_BLINDING> structure,
-allowing users of the B<BN_BLINDING> structure to
-provide proper locking if needed for multi-threaded use.
+BN_BLINDING_set_thread_id() and BN_BLINDING_get_thread_id()
+set and get the "thread id" value of the B<BN_BLINDING> structure,
+a field provided to users of B<BN_BLINDING> structure to help them
+provide proper locking if needed for multi-threaded use. The
+"thread id" of a newly allocated B<BN_BLINDING> structure is zero.
BN_BLINDING_get_flags() returns the BN_BLINDING flags. Currently
there are two supported flags: B<BN_BLINDING_NO_UPDATE> and
@@ -86,12 +85,6 @@ success and 0 if an error occured.
BN_BLINDING_get_thread_id() returns the thread id (a B<unsigned long>
value) or 0 if not set.
-BN_BLINDING_cmp_thread() returns 0 if the thread id associated with the
-B<BN_BLINDING> structure equals the provided thread id (which can be
-obtained by CRYPTO_THREADID_set()), otherwise it returns -1 or +1
-to indicate the thread ids are different (if the target architecture
-supports ordering of thread ids, this follows the traditional "cmp"
-semantics of memcmp() or strcmp()).
BN_BLINDING_get_flags() returns the currently set B<BN_BLINDING> flags
(a B<unsigned long> value).
@@ -109,14 +102,6 @@ BN_BLINDING_convert_ex, BN_BLINDIND_invert_ex, BN_BLINDING_get_thread_id,
BN_BLINDING_set_thread_id, BN_BLINDING_set_flags, BN_BLINDING_get_flags
and BN_BLINDING_create_param were first introduced in OpenSSL 0.9.8
-BN_BLINDING_get_thread_idptr, BN_BLINDING_set_thread_idptr were first
-introduced in OpenSSL 0.9.9
-
-BN_BLINDING_get_thread_id, BN_BLINDING_set_thread_id,
-BN_BLINDING_get_thread_idptr, BN_BLINDING_set_thread_idptr were all
-deprecated in favour of BN_BLINDING_set_thread, BN_BLINDING_cmp_thread
-which were introduced in OpenSSL 0.9.9
-
=head1 AUTHOR
Nils Larsch for the OpenSSL project (http://www.openssl.org).
diff --git a/doc/crypto/bn.pod b/doc/crypto/bn.pod
index 213cba1c41..cd2f8e50c6 100644
--- a/doc/crypto/bn.pod
+++ b/doc/crypto/bn.pod
@@ -131,10 +131,8 @@ bn - multiprecision integer arithmetics
BN_CTX *ctx);
int BN_BLINDING_invert_ex(BIGNUM *n,const BIGNUM *r,BN_BLINDING *b,
BN_CTX *ctx);
- void BN_BLINDING_set_thread(BN_BLINDING *);
- int BN_BLINDING_cmp_thread(const BN_BLINDING *,
- const CRYPTO_THREADID *);
-
+ unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *);
+ void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long);
unsigned long BN_BLINDING_get_flags(const BN_BLINDING *);
void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long);
BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b,
diff --git a/doc/crypto/threads.pod b/doc/crypto/threads.pod
index 76bd10c500..230cbe890b 100644
--- a/doc/crypto/threads.pod
+++ b/doc/crypto/threads.pod
@@ -76,7 +76,9 @@ below).
idptr_function(void) is a function that similarly returns a thread ID,
but of type void *. This is not needed on platforms where &errno is
-different for each thread.
+different for each thread. OpenSSL assumes that it is in the same
+thread iff both the numerical and the pointer thread ID agree, so it
+suffices to define one of these two callback functions appropriately.
Additionally, OpenSSL supports dynamic locks, and sometimes, some parts
of OpenSSL need it for better performance. To enable this, the following
@@ -164,9 +166,7 @@ There is still the issue of platforms where pthread_self() returns
something other than an integer. It is for cases like this that
CRYPTO_set_idptr_callback() comes in handy. (E.g., call malloc(1)
once in each thread, and have idptr_function() return a pointer to
-this object.) Note that if neither id_function() or idptr_function()
-are provided, OpenSSL will use (&errno) as a fallback (as this
-usually returns a unique address for each thread).
+this object.)
=head1 EXAMPLES