<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openssl/crypto/core_algorithm.c, branch openssl-3.3.1</title>
<subtitle>TLS/SSL and crypto library.</subtitle>
<id>http://git.bktus.com/gpgfrontend/openssl/atom?h=openssl-3.3.1</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/openssl/atom?h=openssl-3.3.1'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/'/>
<updated>2022-10-05T12:02:03Z</updated>
<entry>
<title>Stop raising ERR_R_MALLOC_FAILURE in most places</title>
<updated>2022-10-05T12:02:03Z</updated>
<author>
<name>Richard Levitte</name>
<email>levitte@openssl.org</email>
</author>
<published>2022-09-29T11:57:34Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=e077455e9e57ed4ee4676996b4a9aa11df6327a6'/>
<id>urn:sha1:e077455e9e57ed4ee4676996b4a9aa11df6327a6</id>
<content type='text'>
Since OPENSSL_malloc() and friends report ERR_R_MALLOC_FAILURE, and
at least handle the file name and line number they are called from,
there's no need to report ERR_R_MALLOC_FAILURE where they are called
directly, or when SSLfatal() and RLAYERfatal() is used, the reason
`ERR_R_MALLOC_FAILURE` is changed to `ERR_R_CRYPTO_LIB`.

There were a number of places where `ERR_R_MALLOC_FAILURE` was reported
even though it was a function from a different sub-system that was
called.  Those places are changed to report ERR_R_{lib}_LIB, where
{lib} is the name of that sub-system.
Some of them are tricky to get right, as we have a lot of functions
that belong in the ASN1 sub-system, and all the `sk_` calls or from
the CRYPTO sub-system.

Some extra adaptation was necessary where there were custom OPENSSL_malloc()
wrappers, and some bugs are fixed alongside these changes.

Reviewed-by: Tomas Mraz &lt;tomas@openssl.org&gt;
Reviewed-by: Hugo Landau &lt;hlandau@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/19301)
</content>
</entry>
<entry>
<title>"Reserve" the method store when constructing methods</title>
<updated>2022-07-20T06:28:17Z</updated>
<author>
<name>Richard Levitte</name>
<email>levitte@openssl.org</email>
</author>
<published>2022-04-14T15:52:12Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=e1eafe8c87612a94552e9ad5df56c489cb6f0ff2'/>
<id>urn:sha1:e1eafe8c87612a94552e9ad5df56c489cb6f0ff2</id>
<content type='text'>
Introducing the concept of reserving the store where a number of
provided operation methods are to be stored.

This avoids racing when constructing provided methods, which is
especially pertinent when multiple threads are trying to fetch the
same method, or even any implementation for the same given operation
type.

This introduces a |biglock| in OSSL_METHOD_STORE, which is separate
from the |lock| which is used for more internal and finer grained
locking.

Fixes #18152

Reviewed-by: Hugo Landau &lt;hlandau@openssl.org&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/18153)
</content>
</entry>
<entry>
<title>Refactor method construction pre- and post-condition</title>
<updated>2022-05-05T13:05:54Z</updated>
<author>
<name>Richard Levitte</name>
<email>levitte@openssl.org</email>
</author>
<published>2022-04-20T16:34:09Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=10937d5867039afbf869c8514245ed7599b61307'/>
<id>urn:sha1:10937d5867039afbf869c8514245ed7599b61307</id>
<content type='text'>
The existing pre- and post-condition functions are supposed to check if
methods have already been created and stored, using provider operation
bits.  This is supposed to only be done for "permanent" method stores.

However, the way the pre-condition was called, it could not know if the
set of implementations to be stored is likely to end up in a "permanent"
or a temporary store.  It needs access to the |no_store| flag returned
by the provider's operation query function, because that call was done
after the pre-condition was called.

This requires a bit of refactoring, primarly of |algorithm_do_this()|,
but also of |ossl_method_construct_precondition()|.

Fixes #18150

Reviewed-by: Tomas Mraz &lt;tomas@openssl.org&gt;
Reviewed-by: Matt Caswell &lt;matt@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/18151)
</content>
</entry>
<entry>
<title>CORE: add a provider argument to ossl_method_construct()</title>
<updated>2021-10-27T10:41:10Z</updated>
<author>
<name>Richard Levitte</name>
<email>levitte@openssl.org</email>
</author>
<published>2021-09-30T07:32:57Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=cfce50f791511c8fee7dec90c57f02d9410d039f'/>
<id>urn:sha1:cfce50f791511c8fee7dec90c57f02d9410d039f</id>
<content type='text'>
This makes it possible to limit the search of methods to that
particular provider.  This uses already available possibilities in
ossl_algorithm_do_all().

Reviewed-by: Tomas Mraz &lt;tomas@openssl.org&gt;
Reviewed-by: Matt Caswell &lt;matt@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/16725)
</content>
</entry>
<entry>
<title>Fix pointer passed to provider_unquery_operation</title>
<updated>2021-05-17T00:22:27Z</updated>
<author>
<name>Petr Gotthard</name>
<email>petr.gotthard@centrum.cz</email>
</author>
<published>2021-05-15T21:29:34Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=d7970dd963134534340ad00fa62cb1180daf5cb0'/>
<id>urn:sha1:d7970dd963134534340ad00fa62cb1180daf5cb0</id>
<content type='text'>
Walking through the `map` modifies the pointer passed to the `unquery`
operation.

Reviewed-by: Matt Caswell &lt;matt@openssl.org&gt;
Reviewed-by: Paul Dale &lt;pauli@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/15295)
</content>
</entry>
<entry>
<title>Add type_name member to provided methods and use it</title>
<updated>2021-04-26T10:05:05Z</updated>
<author>
<name>Tomas Mraz</name>
<email>tomas@openssl.org</email>
</author>
<published>2021-04-16T14:22:03Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=6c9bc258d2e9e7b500236a1c696da1f384f0b907'/>
<id>urn:sha1:6c9bc258d2e9e7b500236a1c696da1f384f0b907</id>
<content type='text'>
Fixes #14701

Reviewed-by: Richard Levitte &lt;levitte@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/14898)
</content>
</entry>
<entry>
<title>rename ossl_provider_forall_loaded to ossl_provider_doall_activated</title>
<updated>2021-03-11T23:14:00Z</updated>
<author>
<name>Pauli</name>
<email>ppzgs1@gmail.com</email>
</author>
<published>2021-03-10T09:37:02Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=8f08957674c2015fad72ea240bbff4564b83d518'/>
<id>urn:sha1:8f08957674c2015fad72ea240bbff4564b83d518</id>
<content type='text'>
Reviewed-by: Shane Lontis &lt;shane.lontis@oracle.com&gt;
(Merged from https://github.com/openssl/openssl/pull/14489)
</content>
</entry>
<entry>
<title>Update copyright year</title>
<updated>2021-03-11T13:27:36Z</updated>
<author>
<name>Matt Caswell</name>
<email>matt@openssl.org</email>
</author>
<published>2021-03-11T13:27:36Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=8020d79b4033400d0ef659a361c05b6902944042'/>
<id>urn:sha1:8020d79b4033400d0ef659a361c05b6902944042</id>
<content type='text'>
Reviewed-by: Richard Levitte &lt;levitte@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/14512)
</content>
</entry>
<entry>
<title>provider: add an unquery function to allow providers to clean up.</title>
<updated>2021-02-24T11:24:36Z</updated>
<author>
<name>Pauli</name>
<email>paul.dale@oracle.com</email>
</author>
<published>2020-09-25T00:19:19Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=b0001d0cf2539b9309712e3e04f407dcbb04352c'/>
<id>urn:sha1:b0001d0cf2539b9309712e3e04f407dcbb04352c</id>
<content type='text'>
Without this, a provider  has no way to know that an application
has finished with the array it returned earlier.  A non-caching provider
requires this information.

Fixes #12974

Reviewed-by: Shane Lontis &lt;shane.lontis@oracle.com&gt;
(Merged from https://github.com/openssl/openssl/pull/12974)
</content>
</entry>
<entry>
<title>Rename OPENSSL_CTX prefix to OSSL_LIB_CTX</title>
<updated>2020-10-15T10:59:53Z</updated>
<author>
<name>Dr. Matthias St. Pierre</name>
<email>matthias.st.pierre@ncp-e.com</email>
</author>
<published>2020-10-15T09:55:50Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=b425001010044adbdbcd98f8682694b30b73bbf4'/>
<id>urn:sha1:b425001010044adbdbcd98f8682694b30b73bbf4</id>
<content type='text'>
Many of the new types introduced by OpenSSL 3.0 have an OSSL_ prefix,
e.g., OSSL_CALLBACK, OSSL_PARAM, OSSL_ALGORITHM, OSSL_SERIALIZER.

The OPENSSL_CTX type stands out a little by using a different prefix.
For consistency reasons, this type is renamed to OSSL_LIB_CTX.

Reviewed-by: Paul Dale &lt;paul.dale@oracle.com&gt;
Reviewed-by: Matt Caswell &lt;matt@openssl.org&gt;
(Merged from https://github.com/openssl/openssl/pull/12621)
</content>
</entry>
</feed>
