From: Benjamin Kaduk Date: Wed, 14 Jun 2017 16:47:02 +0000 (-0500) Subject: Improve BN_CTX documentation X-Git-Tag: OpenSSL_1_1_1-pre1~1112 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=7b5b2c461475ad2c810fec093dd9c2927876ec25;p=oweals%2Fopenssl.git Improve BN_CTX documentation Since BN_CTX_init() is gone, all calls use BN_CTX_new(). Also, essentially all consumers will use BN_CTX_start()/BN_CTX_end(), so make that more clear from the BN_CTX_new() man page. Document the thread-unsafety of individual BN_CTX objects. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/3682) --- diff --git a/doc/man3/BN_CTX_new.pod b/doc/man3/BN_CTX_new.pod index 4cf3634e9b..7fba72e108 100644 --- a/doc/man3/BN_CTX_new.pod +++ b/doc/man3/BN_CTX_new.pod @@ -26,12 +26,14 @@ BN_CTX_secure_new() allocates and initializes a B structure but uses the secure heap (see L) to hold the Bs. -BN_CTX_free() frees the components of the B, and if it was -created by BN_CTX_new(), also the structure itself. -If L has been used on the B, -L must be called before the B -may be freed by BN_CTX_free(). -If B is NULL, nothing is done. +BN_CTX_free() frees the components of the B and the structure itself. +Since BN_CTX_start() is required in order to obtain Bs from the +B, in most cases BN_CTX_end() must be called before the B may +be freed by BN_CTX_free(). If B is NULL, nothing is done. + +A given B must only be used by a single thread of execution. No +locking is performed, and the internal pool allocator will not properly handle +multiple threads of execution. =head1 RETURN VALUES