<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openssl/providers/implementations/keymgmt, branch dependabot/github_actions/actions/setup-python-7</title>
<subtitle>TLS/SSL and crypto library.</subtitle>
<id>http://git.bktus.com/gpgfrontend/openssl/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/openssl/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/'/>
<updated>2026-07-20T11:13:57Z</updated>
<entry>
<title>Make sure we always check return of CRYPTO_UP_REF which can fail.</title>
<updated>2026-07-20T11:13:57Z</updated>
<author>
<name>Frederik Wedel-Heinen</name>
<email>frederik.wedel-heinen@dencrypt.dk</email>
</author>
<published>2026-06-27T05:11:14Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=437e09afb1f3dd8d8f888ecca9aaf7cb53ae7c60'/>
<id>urn:sha1:437e09afb1f3dd8d8f888ecca9aaf7cb53ae7c60</id>
<content type='text'>
Reviewed-by: Kurt Roeckx &lt;kurt@roeckx.be&gt;
Reviewed-by: Paul Dale &lt;paul.dale@oracle.com&gt;
MergeDate: Mon Jul 20 11:13:58 2026
(Merged from https://github.com/openssl/openssl/pull/31753)
</content>
</entry>
<entry>
<title>FIPS: EC keygen - remove unnecessary self tests.</title>
<updated>2026-07-13T14:46:54Z</updated>
<author>
<name>slontis</name>
<email>shane.lontis@oracle.com</email>
</author>
<published>2026-06-28T23:50:07Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=79373ca3bd4c26e9a4896e4c198828909cc6deec'/>
<id>urn:sha1:79373ca3bd4c26e9a4896e4c198828909cc6deec</id>
<content type='text'>
In FIPS mode EC keygen was doing 3 self tests.
ec_generate_key() was calling both ecdsa_keygen_pairwise_test() and
ecdsa_keygen_knownanswer_test(). The KAT did a key recomputation and
comparison with the generated key, as per Sp80056Ar3 section 5.6.2.1.4.
These tests covered both Keygen PCT for Key Agreement and Signatures.
ossl_ec_key_pairwise_check() was also being called from within ec_gen().
The advice from Atsec (lab) is that the sign/verify test within
ecdsa_keygen_pairwise_test() is sufficient according to the updated
rules in FIPS 140-3 IG 10.3.A Additional comment 1, Since the usage of
the generated key is unknown at the time of key generation.

Detected during testing of Jipher by Roshith Alankandy (Oracle).

Reviewed-by: Paul Dale &lt;paul.dale@oracle.com&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
MergeDate: Mon Jul 13 14:47:00 2026
(Merged from https://github.com/openssl/openssl/pull/31761)
</content>
</entry>
<entry>
<title>EC: make the group the single source of the point conversion form</title>
<updated>2026-07-10T09:21:28Z</updated>
<author>
<name>Viktor Dukhovni</name>
<email>viktor@openssl.org</email>
</author>
<published>2026-04-25T18:05:02Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=d172868e5337563ecc0431e52ccb612951a6c576'/>
<id>urn:sha1:d172868e5337563ecc0431e52ccb612951a6c576</id>
<content type='text'>
The point conversion form (compressed, uncompressed, or hybrid)
was kept both on the key and on the group, and the two could
disagree -- a key imported as compressed could re-encode as
uncompressed. The group is now the single source of truth:
encoding, parameter output, and the legacy lookup all read it from
the group, and decoding (PEM, DER, or raw parameters) records it
there, so the form round-trips faithfully.

Generated keys are always uncompressed; the point-format option at
key generation is now a documented no-op (it had had no effect for
several releases), and the unused form field on the keygen context
is dropped.  Imported keys still keep their form, and the
deprecated EC_KEY_get_conv_form()/EC_KEY_set_conv_form() still
work.

EVP_PKEY_fromdata() and openssl pkey -text now report the form a
loaded EC key actually has, and re-encoding via PEM or DER
preserves it.

Docs drop a stale note about a compile-time macro for compressed
points on binary curves, and the EC tests now exercise both the
affine and the compressed/hybrid binary formats unconditionally
(fixing a latent bug in the compressed/hybrid form tests that were
never exercised by CI).

Reviewed-by: Neil Horman &lt;nhorman@openssl.org&gt;
Reviewed-by: Matt Caswell &lt;matt@openssl.foundation&gt;
MergeDate: Fri Jul 10 09:21:29 2026
(Merged from https://github.com/openssl/openssl/pull/30940)
</content>
</entry>
<entry>
<title>Once initialised, ML-DSA keys should be immutable</title>
<updated>2026-06-25T02:03:26Z</updated>
<author>
<name>Viktor Dukhovni</name>
<email>openssl-users@dukhovni.org</email>
</author>
<published>2026-03-14T09:47:06Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=2fabd5d2741a577e2c26c74baf4f50405ece6814'/>
<id>urn:sha1:2fabd5d2741a577e2c26c74baf4f50405ece6814</id>
<content type='text'>
ML-DSA keys should become immutable once key material has been added.
This is already the case for at least ML-KEM keys, and should generally
be the case across all key types.

- Added the requisite check in the key management provider ml_dsa_import()
  function.
- Also, consolidated the ML-KEM checks in ml_kem_import().  These were
  previously partly in ml_kem_key_fromdata().

Reviewed-by: Shane Lontis &lt;shane.lontis@oracle.com&gt;
Reviewed-by: Paul Dale &lt;paul.dale@oracle.com&gt;
MergeDate: Thu Jun 25 02:03:35 2026
(Merged from https://github.com/openssl/openssl/pull/30421)
</content>
</entry>
<entry>
<title>FIPS: Make keygen PCT failures recoverable</title>
<updated>2026-06-11T16:01:55Z</updated>
<author>
<name>slontis</name>
<email>shane.lontis@oracle.com</email>
</author>
<published>2026-06-02T01:21:54Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=ee9d1e532cb603615174bb2178e856b16255f38e'/>
<id>urn:sha1:ee9d1e532cb603615174bb2178e856b16255f38e</id>
<content type='text'>
Key generation pairwise consistency tests (PCT) no longer cause the
FIPS provider to enter a non recoverable error state.

Originally I considered that the pairwise tests should never fail, so a
failure was considered as a fatal error. Unfortunately this is not true,
since the RSA pairwise test was changed to call
rsa_ossl_public_encrypt(). This function can return -1 based on the
values of n and e, resulting in a DOS for bad inputs.
Under NIST FIPS 186-5, the public exponent (e) must be an odd positive
integer greater than (e &gt; 65536) and less than 2^256. The OpenSSL code
however returns an error if e &gt; 2^64 when n &gt; 3072.
(This check was added to prevent a CVE DOS).

While FIPS 140-3 mandates that a module must transition into an error
state upon self-test failures, a PCT is classified as a conditional
self-test, not a pre-operational self-test
(like an integrity test or a Known Answer Test)
The cryptographic module is only required to immediately discard the
faulty key pair and output a local error. The module is allowed to
immediately attempt generating a new key pair using fresh entropy,
without needing a full system reboot or module reset.

Detected by Oracle during Jipher testing.

Reviewed-by: Simo Sorce &lt;simo@redhat.com&gt;
Reviewed-by: Paul Dale &lt;paul.dale@oracle.com&gt;
MergeDate: Thu Jun 11 16:03:42 2026
(Merged from https://github.com/openssl/openssl/pull/31359)
</content>
</entry>
<entry>
<title>Fix missing dependency on ml_kem_keymgmt.c</title>
<updated>2026-06-09T17:49:22Z</updated>
<author>
<name>Neil Horman</name>
<email>nhorman@openssl.org</email>
</author>
<published>2026-06-04T13:29:31Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=15abb53c06db66284520d61b7c09cc3c9eb3ca77'/>
<id>urn:sha1:15abb53c06db66284520d61b7c09cc3c9eb3ca77</id>
<content type='text'>
ml_kem_keymgmt.c includes der_wrap.h, which is a generated file, but
doesn't include a depdency in its build.info file, meaning that if the
dependencies aren't run in the right order, ml_kem_keymgmt.c gets
compiled before der_wrap.h is generated, leading to a build break.

Fix it by including the needed dependency.

Fixes #31379

Reviewed-by: Alicja Kario &lt;hkario@redhat.com&gt;
Reviewed-by: Eugene Syromiatnikov &lt;esyr@openssl.org&gt;
Reviewed-by: Bob Beck &lt;beck@openssl.org&gt;
Reviewed-by: Paul Dale &lt;paul.dale@oracle.com&gt;
MergeDate: Tue Jun  9 17:49:28 2026
(Merged from https://github.com/openssl/openssl/pull/31385)
</content>
</entry>
<entry>
<title>Fix broken hex data by reformatting</title>
<updated>2026-06-03T07:46:03Z</updated>
<author>
<name>Norbert Pocs</name>
<email>norbertp@openssl.org</email>
</author>
<published>2026-05-29T07:49:16Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=d23670f3af91b34a279303e05d614b07753771a9'/>
<id>urn:sha1:d23670f3af91b34a279303e05d614b07753771a9</id>
<content type='text'>
The clang format broke some data in hexadecimal format.  To make the tool
obedient, the trailing comma needs to be removed, then it interpretes
the data differently and therefore does not reformat it.  The format can
then be changed to the correct form.

Fixes: https://github.com/openssl/project/issues/1959

Signed-off-by: Norbert Pocs &lt;norbertp@openssl.org&gt;

Reviewed-by: Milan Broz &lt;mbroz@openssl.org&gt;
Reviewed-by: Eugene Syromiatnikov &lt;esyr@openssl.org&gt;
MergeDate: Wed Jun  3 07:46:14 2026
(Merged from https://github.com/openssl/openssl/pull/31350)
</content>
</entry>
<entry>
<title>Fix function pointer type mismatch when freeing ECX keys</title>
<updated>2026-05-14T09:31:27Z</updated>
<author>
<name>007bsd</name>
<email>22483432+007bsd@users.noreply.github.com</email>
</author>
<published>2026-05-04T17:07:29Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=012cc567d00ab6e899cf3dc7c2845ec4cd68c1ff'/>
<id>urn:sha1:012cc567d00ab6e899cf3dc7c2845ec4cd68c1ff</id>
<content type='text'>
ossl_ecx_key_free is declared as void(ECX_KEY *) but registered
directly in the X25519/X448/Ed25519/Ed448 keymgmt OSSL_DISPATCH
tables for OSSL_FUNC_KEYMGMT_FREE, which is invoked through a
void(*)(void *) pointer in evp_keymgmt_freedata. Calling a function
through a pointer to an incompatible function type is undefined
behavior and is reported by UndefinedBehaviorSanitizer on every
ECX key free:

    crypto/evp/keymgmt_meth.c:392:5: runtime error: call to function
      ossl_ecx_key_free through pointer to incorrect function type
      'void (*)(void *)'
    crypto/ec/ecx_key.c:65: note: ossl_ecx_key_free defined here

All four algorithms share the same MAKE_KEYMGMT_FUNCTIONS dispatch
macro, so they hit the same UB; UBSan just deduplicates the report
on the first call.

Mirror the wrapper pattern used by ml_kem_free_key, ml_dsa_free_key,
slh_dsa_free_key, dsa_freedata, ec_freedata, and lms_free_key: add
a small static ecx_free_key with the correct OSSL_FUNC_keymgmt_free_fn
signature that forwards to ossl_ecx_key_free, and register the
wrapper in the dispatch macro. The existing direct callers of
ossl_ecx_key_free in ecx_kmgmt.c are unchanged since they pass a
typed ECX_KEY *.

CLA: trivial

Reviewed-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;
Reviewed-by: Paul Yang &lt;paulyang.inf@gmail.com&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
MergeDate: Thu May 14 09:31:58 2026
(Merged from https://github.com/openssl/openssl/pull/31078)
</content>
</entry>
<entry>
<title>Fix function pointer type mismatch when freeing ML-KEM keys</title>
<updated>2026-05-14T09:31:27Z</updated>
<author>
<name>007bsd</name>
<email>22483432+007bsd@users.noreply.github.com</email>
</author>
<published>2026-05-04T17:07:29Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=1a1f5687989fbdea5be55132df09fab7145dd072'/>
<id>urn:sha1:1a1f5687989fbdea5be55132df09fab7145dd072</id>
<content type='text'>
ossl_ml_kem_key_free is declared as void(ML_KEM_KEY *) but registered
directly in the ML-KEM keymgmt OSSL_DISPATCH table for
OSSL_FUNC_KEYMGMT_FREE, which is invoked through a void(*)(void *)
pointer in evp_keymgmt_freedata. Calling a function through a pointer
to an incompatible function type is undefined behavior and is
reported by UndefinedBehaviorSanitizer on every ML-KEM key free:

    crypto/evp/keymgmt_meth.c:392:5: runtime error: call to function
      ossl_ml_kem_key_free through pointer to incorrect function type
      'void (*)(void *)'
    crypto/ml_kem/ml_kem.c:1751: note: ossl_ml_kem_key_free defined here

Mirror the wrapper pattern used by ml_dsa_free_key, slh_dsa_free_key,
dsa_freedata, ec_freedata, and lms_free_key: add a small static
ml_kem_free_key with the correct OSSL_FUNC_keymgmt_free_fn signature
that forwards to ossl_ml_kem_key_free, and register the wrapper in
the dispatch table. The existing direct callers of
ossl_ml_kem_key_free in ml_kem_kmgmt.c are unchanged since they pass
a typed ML_KEM_KEY *.

CLA: trivial

Reviewed-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;
Reviewed-by: Paul Yang &lt;paulyang.inf@gmail.com&gt;
Reviewed-by: Tomas Mraz &lt;tomas@openssl.foundation&gt;
MergeDate: Thu May 14 09:31:57 2026
(Merged from https://github.com/openssl/openssl/pull/31078)
</content>
</entry>
<entry>
<title>Move *_arch.h to include/arch</title>
<updated>2026-05-10T09:53:33Z</updated>
<author>
<name>Norbert Pocs</name>
<email>norbertp@openssl.org</email>
</author>
<published>2026-04-09T11:38:07Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/openssl/commit/?id=4124d150697e7e4114015c2b35b2323be0b2bc89'/>
<id>urn:sha1:4124d150697e7e4114015c2b35b2323be0b2bc89</id>
<content type='text'>
Move all the architecture specific header files under a single directory
in include/

Signed-off-by: Norbert Pocs &lt;norbertp@openssl.org&gt;

Reviewed-by: Nikola Pajkovsky &lt;nikolap@openssl.org&gt;
Reviewed-by: Eugene Syromiatnikov &lt;esyr@openssl.org&gt;
MergeDate: Sun May 10 09:53:34 2026
(Merged from https://github.com/openssl/openssl/pull/30751)
</content>
</entry>
</feed>
