Skip to content

Commit

Permalink
doc: Document that the OBJ creation functions are now thread safe.
Browse files Browse the repository at this point in the history
With the OBJ_ thread locking in place, these documentation changes are not
required.

This reverts commit 0218bcd.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from #15713)

(cherry picked from commit 06394a6)
Reviewed-by: Hugo Landau <hlandau@openssl.org>
  • Loading branch information
paulidale authored and t8m committed Nov 9, 2022
1 parent 060290e commit a5d27c2
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 8 deletions.
8 changes: 2 additions & 6 deletions doc/man3/OBJ_nid2obj.pod
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ These functions cannot return B<const> because an B<ASN1_OBJECT> can
represent both an internal, constant, OID and a dynamically-created one.
The latter cannot be constant because it needs to be freed after use.

These functions were not thread safe in OpenSSL 3.0 and before.

=head1 RETURN VALUES

OBJ_nid2obj() returns an B<ASN1_OBJECT> structure or B<NULL> is an
Expand Down Expand Up @@ -180,12 +182,6 @@ Create a new object directly:

obj = OBJ_txt2obj("1.2.3.4", 1);

=head1 BUGS

Neither OBJ_create() nor OBJ_add_sigid() do any locking and are thus not
thread safe. Moreover, none of the other functions should be called while
concurrent calls to these two functions are possible.

=head1 SEE ALSO

L<ERR_get_error(3)>
Expand Down
7 changes: 5 additions & 2 deletions doc/man7/provider-base.pod
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,6 @@ It will treat as success the case where the OID already exists (even if the
short name I<sn> or long name I<ln> provided as arguments differ from those
associated with the existing OID, in which case the new names are not
associated).
This function is not thread safe.

The core_obj_add_sigid() function registers a new composite signature algorithm
(I<sign_name>) consisting of an underlying signature algorithm (I<pkey_name>)
Expand All @@ -280,7 +279,6 @@ signature algorithm already exists (even if registered against a different
underlying signature or digest algorithm). For I<digest_name>, NULL or an
empty string is permissible for signature algorithms that do not need a digest
to operate correctly. The function returns 1 on success or 0 on failure.
This function is not thread safe.

CRYPTO_malloc(), CRYPTO_zalloc(), CRYPTO_free(), CRYPTO_clear_free(),
CRYPTO_realloc(), CRYPTO_clear_realloc(), CRYPTO_secure_malloc(),
Expand Down Expand Up @@ -609,6 +607,11 @@ or maximum. A -1 indicates that the group should not be used in that protocol.

=back

=head1 NOTES

The core_obj_create() and core_obj_add_sigid() functions were not thread safe
in OpenSSL 3.0.

=head1 EXAMPLES

This is an example of a simple provider made available as a
Expand Down

0 comments on commit a5d27c2

Please sign in to comment.