algorithm and the other representing a digest algorithm to be used in
conjunction with it. I<signid> represents the NID for the composite "Signature
Algorithm", I<dig_id> is the NID for the digest algorithm and I<pkey_id> is the
-NID for the underlying signature algorithm.
+NID for the underlying signature algorithm. As there are signature algorithms
+that do not require a digest, NID_undef is a valid I<dig_id>.
OBJ_cleanup() releases any resources allocated by creating new objects.
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
OBJ_add_sigid() returns 1 on success or 0 on error.
+OBJ_obj2txt() returns the number of bytes written to I<buf> if I<buf_len> is big enough.
+Otherwise, the result is truncated and the total amount of space required is returned.
+It also returns -1 on error.
+
=head1 EXAMPLES
Create an object for B<commonName>:
be set to a positive value. A buffer length of 80 should be more
than enough to handle any OID encountered in practice.
-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)>