]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Improve documentation about duplicate algorithm registrations
authorMichael Baentsch <57787676+baentsch@users.noreply.github.com>
Mon, 7 Oct 2024 12:08:56 +0000 (14:08 +0200)
committerTomas Mraz <tomas@openssl.org>
Wed, 23 Oct 2024 13:10:49 +0000 (15:10 +0200)
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25624)

doc/man7/fips_module.pod
doc/man7/provider-base.pod
doc/man7/provider.pod

index fc89f89e007efc9ab559cdbcaf81e11764582356..6e0af8edab31d1d0c6caffbbc2148549f7783659 100644 (file)
@@ -212,7 +212,7 @@ application. If any OpenSSL functions get called that require the use of
 cryptographic functions before this occurs then, if no provider has yet been
 loaded, then the default provider will be automatically loaded. If you then
 later explicitly load the FIPS provider then you will have both the FIPS and the
-default provider loaded at the same time. It is undefined which implementation
+default provider loaded at the same time. It is unspecified which implementation
 of an algorithm will be used if multiple implementations are available and you
 have not explicitly specified via a property query (see below) which one should
 be used.
@@ -244,7 +244,7 @@ standards you can specify the property query C<fips=yes> like this:
     sha256 = EVP_MD_fetch(NULL, "SHA2-256", "fips=yes");
 
 If no property query is specified, or more than one implementation matches the
-property query then it is undefined which implementation of a particular
+property query then it is unspecified which implementation of a particular
 algorithm will be returned.
 
 This example shows an explicit request for an implementation of SHA256 from the
index 5dcbbed221be2e40265deb8881fbb76076bdb22b..a27d948b0855a2d7704dc5e64c85af9c78f67047 100644 (file)
@@ -581,6 +581,11 @@ The name of the group as known by the provider. This could be the same as the
 
 The TLS group id value as given in the IANA TLS Supported Groups registry.
 
+It is possible to register the same group id from within different
+providers. Users should note that if no property query is specified, or
+more than one implementation matches the property query then it is
+unspecified which implementation for a particular group id will be used.
+
 =item "tls-group-alg" (B<OSSL_CAPABILITY_TLS_GROUP_ALG>) <UTF8 string>
 
 The name of a Key Management algorithm that the provider offers and that should
@@ -667,6 +672,11 @@ This value must be supplied.
 The TLS algorithm ID value as given in the IANA TLS SignatureScheme registry.
 This value must be supplied.
 
+It is possible to register the same code point from within different
+providers. Users should note that if no property query is specified, or
+more than one implementation matches the property query then it is
+unspecified which implementation for a particular code point will be used.
+
 =item "sigalg-name" (B<OSSL_CAPABILITY_TLS_SIGALG_NAME>) <UTF8 string>
 
 A name for the full (possibly composite hash-and-signature) signature
index 08ac1d02907ff598e06306bcb1230bf87eaee019..0754a0912b346002c219836098fdf93f5ada7873 100644 (file)
@@ -239,6 +239,15 @@ e.g., when no provider implementing the required functionality has been
 activated. In particular, provider initialization should not depend on other
 providers already having been initialized.
 
+=head3 Note on naming clashes
+
+It is possible to register the same algorithm name from within different
+providers. Users should note that if no property query is specified, or
+more than one implementation matches the property query then it is
+unspecified which implementation of a particular algorithm will be returned.
+Such naming clashes may also occur if algorithms only differ in
+capitalization as L</Algorithm naming> is case insensitive.
+
 =head1 OPENSSL PROVIDERS
 
 OpenSSL provides a number of its own providers. These are the default, base,