# Generate automatically. Do not edit.

commit f9813f90a51761dc75b5dcd8d9766466b8904f5c
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-11-12

    Release 0.26.6
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 NEWS         | 11 +++++++++++
 configure.ac |  4 ++--
 meson.build  |  4 ++--
 3 files changed, 15 insertions(+), 4 deletions(-)

commit 9c72d984b5f27b405e081c1ee8bbe3ebed0f450c
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-11-12

    subprojects/pkcs11-json: Update git submodule
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 subprojects/pkcs11-json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 682079322147d555ad26f4a72dee0e7f6ae33788
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-11-12

    Fix castxml check in configure.ac
    
    AM_MISSING_PROG() cannot be used here: it expands to a multi-word
    command ("$SHELL .../missing castxml"), which cannot be passed as
    a single argument of gen.py's --castxml-program option
    
    castxml is only needed to regenerate subprojects/pkcs11-json's JSON
    file from common/pkcs11.h; when it is not installed the committed one
    is used as is.  Define HAVE_CASTXML so that the generation rule can be
    skipped entirely in that case.
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

 configure.ac | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 8e62e08ea076de2f6b06ee2bcc9b4108db44a2bc
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-11-09

    rpc: make OUT_MECH_PARAM_UPDATE handle errors
    
    Otherwise serializers would overread buffers
    that are too short.
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>
    Assisted-by: Claude Opus 5 <noreply@anthropic.com>

 p11-kit/rpc-mechanism.c    | 40 +++++++++++++++++-----
 p11-kit/rpc-mechanism.h    | 17 ++++++++--
 p11-kit/rpc-server.c       |  7 ++--
 p11-kit/test-rpc-message.c | 84 ++++++++++++++++++++++++++++++++++++++++++----
 4 files changed, 127 insertions(+), 21 deletions(-)

commit 3223a811481e982cbfb4f0df61800a836cf6febe
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-11-04

    Fix memcpy overlap when request and response buffer is the same in p11_rpc_server_handle
    
    p11_rpc_server_handle() may be called with one buffer serving as both
    request and response.  This could cause an overlapping memcpy when the
    parameter update was re-encoded into the request buffer.
    
    Reported-by: Hansaem Wi <https://github.com/wihansaem1991>
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>
    Assisted-by: Claude Opus 5 <noreply@anthropic.com>

 p11-kit/rpc-server.c       | 49 +++++++++++++++++++-----
 p11-kit/test-rpc-message.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 134 insertions(+), 10 deletions(-)

commit af8ecdda94f3284c516cb5be5af3f43b44f408ba
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-11-04

    Fix use-after-free in the RPC client C_DeriveKey2 parameter update
    
    p11_rpc_buffer_get_ibm_kyber_mech_param_update() and
    p11_rpc_buffer_get_ibm_btc_derive_mech_param_update() only copied into
    the caller's buffer when the reply length matched it exactly, and
    otherwise repointed the caller's pCipher / pChainCode into the reply
    buffer.  call_done() frees that buffer before C_DeriveKey2() returns,
    leaving the application with a dangling pointer: a use-after-free when
    it reads the output, an invalid free when it frees it, and a leak of
    the buffer it originally supplied.  No attacker is needed -- a module
    writing fewer bytes than the caller's buffer holds is enough.
    
    Reported-by: Hansaem Wi <https://github.com/wihansaem1991>
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>
    Assisted-by: Claude Opus 5 <noreply@anthropic.com>

 p11-kit/rpc-mechanism.c    |  32 ++++------
 p11-kit/test-rpc-message.c | 151 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 163 insertions(+), 20 deletions(-)

commit 11f5fc4cb93859afeb90acfd031de257d2aaa6c2
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-11-05

    Fix buffer overflow when decoding nested attributes
    
    For an attribute-array value, p11_rpc_message_get_attribute_array_value
    decodes each child into the caller's child.  For a child whose pValue
    is non-NULL, p11_rpc_message_get_attribute_recursive compares the reply's
    length only with the decoded length.  It never compares it with the size
    of the child buffer.
    
    Reported-by: Hansaem Wi <https://github.com/wihansaem1991>
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>
    Co-authored-by: Hansaem Wi <https://github.com/wihansaem1991>
    Assisted-by: Claude Opus 5 <noreply@anthropic.com>

 p11-kit/rpc-attribute.c    |  3 +++
 p11-kit/test-rpc-message.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 61 insertions(+)

commit e5ee541ae14ec2e3324fdf393cb069163ee9666b
Author: Naveed <naveed@bugqore.com>
Date:   2026-11-02

    import-object: convert RSA subjectPublicKey bit length to bytes
    
    add_attrs_pubkey_rsa() reads subjectPublicKey with p11_asn1_read(),
    which for a BIT STRING reports the length in bits and over-allocates
    that many bytes. The RSA path then passes that bit count straight to
    p11_asn1_tlv_length() and p11_asn1_decode() as if it were a byte
    length. A crafted RSA public key whose inner RSAPublicKey DER declares
    element lengths larger than the real payload makes libtasn1 parse up to
    eight times past the payload, into uninitialized bytes still inside the
    over-sized allocation, and those bytes end up stored as CKA_MODULUS and
    CKA_PUBLIC_EXPONENT and later exported.
    
    Divide the length by 8 before bounding the parse, matching what the EC
    and PQC import paths already do, so the inner DER is bounded by the real
    payload and malformed keys are rejected.
    
    Signed-off-by: Naveed <naveed@bugqore.com>

 p11-kit/import-object.c       |  8 ++++++++
 p11-kit/test-import-public.sh | 22 +++++++++++++++++++++-
 2 files changed, 29 insertions(+), 1 deletion(-)

commit 67e5aaeb77c2182e956938bcb492b5932cbf2e07
Author: Roy-Magne Mo <rmo@sunnmore.net>
Date:   2026-09-25

    Update Norwegian bokmål translation

 po/nb.po | 1415 +++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 937 insertions(+), 478 deletions(-)

commit 3ea906ddea4fb0e2657df76ae0307a8ef3a67aaf
Author: Roy-Magne Mo <rmo@sunnmore.net>
Date:   2026-09-25

    Update Norwegian Nynorsk translation

 po/nn.po | 1412 +++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 935 insertions(+), 477 deletions(-)

commit 77917b2028e225b3c662a394041e17f28bce6f9f
Author: Naveed <naveed@bugqore.com>
Date:   2026-11-03

    rpc: NUL terminate function name in C_Async* calls
    
    C_AsyncComplete, C_AsyncGetID and C_AsyncJoin take the function name
    as a NUL terminated string, but it was sent as a byte array of its
    strlen() bytes and the server passed the module a pointer into the
    request buffer, where the name is followed by the next argument or the
    end of the message.
    
    Use the "z" wire type for the function name instead, so that
    proto_read_null_string on the server copies the bytes out and
    terminates them. These calls have not been released, so the format
    can change.
    
    p11_rpc_message_write_zero_string asserts on NULL, so make the client
    side IN_ZERO_STRING return CKR_ARGUMENTS_BAD as IN_BYTE_ARRAY does. A
    NULL name now fails in the client whatever the module version, so
    test_pkcs11_3_not_supported passes a real name to reach the module.
    
    Signed-off-by: Naveed <naveed@bugqore.com>

 p11-kit/rpc-client.c  |  8 +++++---
 p11-kit/rpc-message.h |  6 +++---
 p11-kit/rpc-server.c  |  9 +++------
 p11-kit/test-mock.c   |  6 +++---
 p11-kit/test-rpc.c    | 40 ++++++++++++++++++++++++++++++++++++++++
 5 files changed, 54 insertions(+), 15 deletions(-)

commit 4559b6041e02029e023771095b6c7d1b5bab1ea3
Author: Naveed <naveed@bugqore.com>
Date:   2026-10-29

    x509: don't truncate directory strings at an embedded NUL
    
    p11_x509_parse_directory_string() returned the string types it
    normalizes with strndup() but reported the full DER octet length in
    *string_len. p11_utf8_validate() accepts NUL bytes, so a subject
    attribute such as UTF8String "A\0BBBB..." produced a buffer sized
    by strnlen() alongside the longer length.
    
    p11_openssl_canon_string_der() then canonicalized and re-encoded
    that many bytes, reading and writing past the end of the allocation
    when computing the subject hash link for the openssl-directory and
    pem-directory-hash extract formats.
    
    Copy all the octets and NUL terminate them instead, so the buffer
    always matches the reported length. This also keeps the NUL in the
    canonical form, as OpenSSL does when computing the subject hash.
    
    Signed-off-by: Naveed <naveed@bugqore.com>

 trust/test-openssl.c | 5 +++++
 trust/x509.c         | 8 +++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

commit 2791a0af7f534c09be695b43179bf0d6ba61879c
Author: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Date:   2026-10-11

    Update Kazakh (kk) translation

 po/kk.po | 985 +++++++++++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 746 insertions(+), 239 deletions(-)

commit 0efdd4922567d672f87eaee941c49a11e85f2390
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-10-20

    Add missing RPC serializers
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 common/pkcs11.h            |    4 +-
 p11-kit/rpc-mechanism.c    | 2835 +++++++++++++++++++++++++++++++++++++-------
 p11-kit/rpc-mechanism.h    |  244 +---
 p11-kit/test-rpc-message.c |  115 ++
 p11-kit/test-rpc.c         |  147 +++
 5 files changed, 2704 insertions(+), 641 deletions(-)

commit d00dbf59ba7b1cd26460fff3edfdf293e6ab9e22
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-10-16

    rpc-message: split into rpc-attribute and rpc-mechanism
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 p11-kit/Makefile.am        |    2 +
 p11-kit/meson.build        |    2 +
 p11-kit/rpc-attribute.c    |  709 +++++++++++++++
 p11-kit/rpc-attribute.h    |  111 +++
 p11-kit/rpc-client.c       |    2 +
 p11-kit/rpc-mechanism.c    | 1556 +++++++++++++++++++++++++++++++
 p11-kit/rpc-mechanism.h    |  243 +++++
 p11-kit/rpc-message.c      | 2174 +-------------------------------------------
 p11-kit/rpc-message.h      |  272 ------
 p11-kit/rpc-server.c       |    2 +
 p11-kit/test-rpc-message.c |    2 +
 11 files changed, 2630 insertions(+), 2445 deletions(-)

commit 7b24bd57a9fe789e053734e9223b0d4322e6484e
Author: Fiona Klute <fiona.klute@gmx.de>
Date:   2026-10-17

    meson: do not warn about missing bash-completion if disabled
    
    If the bash-completion feature is disabled, there is no need to warn
    about its dependency being unavailable, instead the unnecessary
    warning might distract from relevant messages.
    
    Signed-off-by: Fiona Klute <fiona.klute@gmx.de>

 bash-completion/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b4bc169c8320433d37b92fca99ad4693356e289e
Author: Fiona Klute <fiona.klute@gmx.de>
Date:   2026-10-17

    meson: allow setting systemduserunitdir to break dependency loop
    
    The dependency on systemd is only used to retrieve systemduserunitdir,
    not otherwise needed during build. However, p11-kit is also an
    (optional) dependency of systemd, creating a dependency loop.
    
    This patch allows setting systemduserunitdir directly to break the
    dependency loop. If set, the given value is used unconditionally
    without checking for systemd, otherwise systemd is detected as before.
    
    Signed-off-by: Fiona Klute <fiona.klute@gmx.de>

 meson.build       | 11 ++++++++---
 meson_options.txt |  4 ++++
 2 files changed, 12 insertions(+), 3 deletions(-)

commit b4e0b5ac1c3f47932ce5c00bd7f55b6d5c3eb4e2
Author: filmsi <miles@filmsi.net>
Date:   2026-09-21

    Update sl.po
    
    Updated Slovenian l10n

 po/sl.po | 193 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 119 insertions(+), 74 deletions(-)

commit cc7289114455568546c75918318928da982a0587
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-09-11

    Add serializers for EDDSA and SLH-DSA
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 p11-kit/rpc-message.c      | 213 +++++++++++++++++++++++++++++++----
 p11-kit/rpc-message.h      |  33 ++++++
 p11-kit/test-rpc-message.c | 270 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 492 insertions(+), 24 deletions(-)

commit 9f2df4828233a95f3fd80ada6c857ddf5e1e7c84
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-09-10

    Add mock tests for PKCS11 3.2 functions
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 common/mock.c                 | 227 ++++++++++++++++++++++++++++++++++--
 common/mock.h                 |   6 +
 p11-kit/rpc-client.c          |   3 +-
 p11-kit/test-mock.c           | 264 +++++++++++++++++++++++++++++++++++++-----
 p11-kit/test-rpc.c            |   1 +
 p11-kit/test-transport-base.c |   1 +
 6 files changed, 463 insertions(+), 39 deletions(-)

commit 5a2749ed7b7dda5e9af7f3c29e52ca39532930cb
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-09-10

    Fix C_DecapsulateKey function signature
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 common/mock.c           | 6 +++---
 common/mock.h           | 6 +++---
 common/pkcs11.h         | 2 +-
 common/pkcs11i.h        | 2 +-
 p11-kit/log.c           | 4 ++--
 p11-kit/rpc-client.c    | 4 ++--
 p11-kit/rpc-server.c    | 2 +-
 p11-kit/test-mock.c     | 4 ++--
 subprojects/pkcs11-json | 2 +-
 9 files changed, 16 insertions(+), 16 deletions(-)

commit 49929c5e3ea8139de668fae529cbd9a581db44c6
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-09-09

    Fix typo in generate-keypair
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 p11-kit/generate-keypair.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bfa437e14715a1c8fffe90f4f11657a42cfe16a6
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-09-04

    Add PKCS#11 3.2 support to RPC
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 p11-kit/rpc-client.c  | 233 ++++++++++++++++++++++++++++++++++++++++++++-
 p11-kit/rpc-message.h |  27 ++++++
 p11-kit/rpc-server.c  | 259 ++++++++++++++++++++++++++++++++++++++++++++++++++
 p11-kit/test-mock.c   | 199 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 715 insertions(+), 3 deletions(-)

commit b10a48d2c8167922d6f2d1e1c9baf923d01463de
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-09-04

    Add PKCS#11 3.2 support to log
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 p11-kit/log.c | 224 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 223 insertions(+), 1 deletion(-)

commit 7a0232859e14a0fa526e749c9fc0fbb45cbb4af3
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-09-04

    Add PKCS#11 3.2 support to virtual dispatch
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 p11-kit/virtual.c | 208 ++++++++++++++++++++++++++++--------------------------
 1 file changed, 108 insertions(+), 100 deletions(-)

commit e27fa5e73e903e0851f579779f348747a479f8f5
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-09-04

    Improve template version checking
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 p11-kit/gen-wrappers.py             | 42 +++++++++++++++++-----------
 p11-kit/templates/base-wrappers.py  |  5 ++--
 p11-kit/templates/proxy-wrappers.py | 56 ++-----------------------------------
 3 files changed, 30 insertions(+), 73 deletions(-)

commit 1eab6df70cd5f40f08c1cbde53d29370db2e81c4
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-09-04

    Add missing CKM_KEA_DERIVE mechanism
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 common/constants.c | 1 +
 common/pkcs11.h    | 1 +
 2 files changed, 2 insertions(+)

commit 5a6828746d63b0812f19f9bf263140c9064ee197
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-09-16

    Fix list-objects garbage print via RPC
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 p11-kit/list-objects.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit b42e7da5e13c51b55f8b14d63d43eb4d6f3c6103
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-09-01

    Expand SECURITY.md policies
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 SECURITY.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 49 insertions(+), 4 deletions(-)

commit 63c7bc4f1cfd4a3f568401d3cd4b8c7756017b80
Author: Denis Mingulov <denis@mingulov.com>
Date:   2026-03-10

    test: add PQC post-install integration tests
    
    Add integration tests for PQC key operations using real tokens:
    
    test-kryoptic.sh: ML-DSA, SLH-DSA, and ML-KEM key pair generation,
    export, import roundtrip, and RPC forwarding tests with kryoptic.
    
    test-nss-softokn.sh: ML-KEM and ML-DSA key pair generation and
    export with NSS softokn. Probes PQC support at runtime and handles
    ASan builds. Includes RPC forwarding tests.
    
    Register test scripts in meson.build; enable env_override_paths in CI.

 .github/actions/basic-meson/action.yaml |   2 +-
 common/test-external-helpers.sh         | 199 +++++++++++++++++++++++++++
 p11-kit/meson.build                     |  12 ++
 p11-kit/test-kryoptic.sh                | 237 ++++++++++++++++++++++++++++++++
 p11-kit/test-nss-softokn.sh             | 179 ++++++++++++++++++++++++
 5 files changed, 628 insertions(+), 1 deletion(-)

commit f620271de6565e8e50054d6d4ebbccec56bd5c09
Author: Denis Mingulov <denis@mingulov.com>
Date:   2026-03-10

    test: add PQC unit tests and mock support
    
    Add CKM_ML_KEM to the no-parameter mechanism whitelist to support
    encapsulate and decapsulate through the RPC proxy.
    
    Extend the mock module to accept PQC key pair generation mechanisms
    so PQC operations can be tested through the RPC proxy path.
    
    Reject invalid option combinations in generate-keypair: --bits and
    --curve are rejected for PQC types; --parameter-set is rejected for
    non-PQC types.
    
    Tests added:
    - PQC mechanism and attribute serialization (test-rpc-message)
    - PQC key pair generation through RPC proxy layers (test-mock)
    - CLI parameter set validation and option rejection (test-generate-keypair.sh)

 common/mock.c                    |  16 ++--
 p11-kit/generate-keypair.c       |  38 +++++++++
 p11-kit/test-generate-keypair.sh |  64 ++++++++++++++-
 p11-kit/test-mock.c              | 167 +++++++++++++++++++++++++++++++++++++++
 p11-kit/test-rpc-message.c       | 102 ++++++++++++++++++++++++
 5 files changed, 381 insertions(+), 6 deletions(-)

commit 727fa440a8bd6e20dcef7e862405a20d5c47535d
Author: Denis Mingulov <denis@mingulov.com>
Date:   2026-03-10

    import/export: add PQC public key support
    
    Add import and export of post-quantum public keys (ML-DSA, ML-KEM,
    SLH-DSA) using standard X.509 algorithm OIDs.
    
    Import: parse SubjectPublicKeyInfo, map PQC OIDs to the matching
    CKK_* key type and CKA_PARAMETER_SET, and validate key size against
    the expected fixed size for each parameter set. ML-KEM keys get
    CKA_ENCAPSULATE set and CKA_VERIFY cleared.
    
    Export: build SubjectPublicKeyInfo from CKA_VALUE and
    CKA_PARAMETER_SET when CKA_PUBLIC_KEY_INFO is not available,
    choosing the algorithm OID from the (key type, parameter set) pair.

 common/oid.h            |  36 +++++++++++
 p11-kit/export-object.c | 131 +++++++++++++++++++++++++++++++++++++++
 p11-kit/import-object.c | 161 ++++++++++++++++++++++++++++++++++++++++++++++--
 3 files changed, 323 insertions(+), 5 deletions(-)

commit 70c401f9538ac95b36bef230b1e1533cff3ea75e
Author: Denis Mingulov <denis@mingulov.com>
Date:   2026-03-10

    generate-keypair: add PQC key type support
    
    Add post-quantum key pair generation to the generate-keypair CLI,
    supporting PKCS#11 3.2 algorithms:
    
      --type=ml-dsa  --parameter-set={44,65,87}
      --type=ml-kem  --parameter-set={512,768,1024}
      --type=slh-dsa --parameter-set={sha2,shake}-{128,192,256}{s,f}
    
    CKA_PARAMETER_SET is set on both public and private key templates.
    For KEM types, CKA_ENCAPSULATE and CKA_DECAPSULATE are used instead
    of CKA_VERIFY and CKA_SIGN.

 doc/manual/p11-kit.xml     |  13 +++-
 p11-kit/generate-keypair.c | 145 ++++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 146 insertions(+), 12 deletions(-)

commit 66b71343b3eb410aef95e0d37948f6ae7850a6aa
Author: Denis Mingulov <denis@mingulov.com>
Date:   2026-03-10

    rpc: add PQC support to RPC layer
    
    Add PKCS#11 3.2 PQC mechanisms to the no-parameter whitelist and
    map new PQC attribute types to the correct value types for RPC
    serialization.
    
    The RPC layer filters out unknown mechanisms from C_GetMechanismList
    and rejects them in C_*Init calls. Without this, PQC-capable tokens
    behind the proxy appear to have no PQC support.
    
    Added mechanisms (all no-parameter, PKCS#11 3.2):
    - CKM_ML_KEM_*, CKM_ML_DSA_*, CKM_HASH_ML_DSA_*
    - CKM_SLH_DSA_*, CKM_HASH_SLH_DSA_*
    - CKM_HSS_*, CKM_XMSS_*, CKM_XMSSMT_*
    
    Attribute value types mapped:
    - CKA_PARAMETER_SET, CKA_HSS_LEVELS, CKA_HSS_LMS_TYPE,
      CKA_HSS_LMOTS_TYPE, CKA_HSS_KEYS_REMAINING (CK_ULONG)
    - CKA_ENCAPSULATE, CKA_DECAPSULATE (CK_BBOOL)
    - CKA_ENCAPSULATE_TEMPLATE, CKA_DECAPSULATE_TEMPLATE (attr arrays)
    
    Extend IS_ATTRIBUTE_ARRAY to cover the new template attributes so the
    fA (attribute-buffer) RPC path handles them correctly; add a round-trip
    test (test_get_encapsulate_template). Note the underscore in the
    "decapsulate_template" string name in constants.c (inconsistency with
    other template attrs; kept for compatibility).

 common/attrs.h        |  8 +++++---
 common/constants.c    |  2 +-
 common/mock.c         |  4 ++++
 p11-kit/rpc-message.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 p11-kit/test-mock.c   | 43 +++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 97 insertions(+), 4 deletions(-)

commit 120050e353e8f43d7c40bbcc047f667f903f4de5
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-08-06

    Release 0.26.5
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 NEWS         | 3 +++
 configure.ac | 4 ++--
 meson.build  | 4 ++--
 3 files changed, 7 insertions(+), 4 deletions(-)

commit 3e64244e538550c6a7fcf826fa8c50a4604416dc
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-08-06

    rpc: guard against overflow when decoding nested attributes (CVE-2026-18938)
    
    A local attacker, or one with equivalent access to a reachable RPC channel,
    could exploit an integer overflow vulnerability. By sending specially crafted
    messages, the attacker can cause the system to miscalculate memory allocation
    for nested attributes. This leads to a memory corruption issue, specifically
    a heap out-of-bounds write, which can crash the p11-kit RPC parsing process,
    resulting in a Denial of Service (DoS). This vulnerability is only exploitable
    on 32 bit systems.
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 p11-kit/rpc-message.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit a14788849d1ef44422d679534a13821eab5bb5f4
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-07-10

    Release 0.26.4
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 NEWS         | 4 ++++
 configure.ac | 4 ++--
 meson.build  | 4 ++--
 3 files changed, 8 insertions(+), 4 deletions(-)

commit 7864e5344d63a37eb55e615c3dd8ce4f0f278583
Author: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Date:   2026-03-01

    Update Kazakh translation.

 po/kk.po | 938 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 446 insertions(+), 492 deletions(-)

commit 353692b67b3874331be6646d34e0ac684d42a9a7
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-07-10

    fuzz: build persist fuzzer with AutoMake
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 fuzz/Makefile.am | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

commit fdbf7aa00ca559b0ce7de54492f4f21080b82f41
Author: filmsi <miles@filmsi.net>
Date:   2026-07-10

    Update sl.po
    
    Updated Slovenia translation, because a new string was added.

 po/sl.po | 136 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 70 insertions(+), 66 deletions(-)

commit 8992b1fc2e66777e74ce91f2e78687341d33a3bc
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-07-09

    Release 0.26.3
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 NEWS         | 7 +++++++
 configure.ac | 4 ++--
 meson.build  | 4 ++--
 3 files changed, 11 insertions(+), 4 deletions(-)

commit e909c6524d195b0eeb19d979bcfef5bdb45b0b26
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-07-09

    trust: fix error message when trying to store an existing cert
    
    Previously when trying to store a certificate that was already
    present in trust store produced a confusing error message:
    "couldn't create object: The field is read-only"
    now the error message has been changed to:
    "anchor exists but can't be modified: The field is read-only"
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 trust/anchor.c | 47 ++++++++++++++++++-----------------------------
 1 file changed, 18 insertions(+), 29 deletions(-)

commit ea6480b4b52e23b6efff9db559b4ddc12b404478
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-07-02

    parser: fix memory leak in build_openssl_extensions
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 fuzz/persist.in/attrs_build_memleak4.pem | 42 ++++++++++++++++++++++++++++++++
 trust/parser.c                           | 22 +++++++++++------
 2 files changed, 57 insertions(+), 7 deletions(-)

commit 0eedd4ddd7c924f9cbb4ac496b3fda699435c3cf
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-07-02

    rpc: add recursion depth limit into RPC attribute parsing (CVE-2026-13757)
    
    A DoS was possible when client sent request to a server with deeply
    nested attributes causing stack exhaustion on the server.
    This patch adds a recursion limit on all server entry points to
    prevent such attacks.
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 p11-kit/rpc-message.c      | 62 +++++++++++++++++++++++++++++++++++-----------
 p11-kit/rpc-message.h      |  4 ++-
 p11-kit/rpc-server.c       | 12 ++++++---
 p11-kit/test-rpc-message.c | 38 ++++++++++++++++++++++++++++
 p11-kit/test-rpc.c         | 27 ++++++++++++++++++++
 5 files changed, 124 insertions(+), 19 deletions(-)

commit 5e81ed3eb3860ed668bc05ae49a8dd813f52efd6
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-06-15

    Free previously allocated objects when parsing .p11-kit file fails
    
    * added destructor when calling p11_array_new() in
      p11_parser_format_persist(). This way the array is
      properly freed when error occurs during parsing.
    * added fuzzer testcase
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 fuzz/persist.in/attrs_build_memleak3.p11-kit | Bin 0 -> 3693 bytes
 trust/parser.c                               |   8 ++++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

commit 6d4a82edd3901a67c829e6d9e0910b368cfa6668
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-06-12

    Reject numerical attribute type that matches CKA_INVALID
    
    * fixes a memory leak when later on attrs_build did not
      free the memory because type was CKA_INVALID
    * added new fuzzer testcase
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 common/persist.c                               | 4 ++++
 fuzz/persist.in/numerical_invalid_type.p11-kit | 2 ++
 2 files changed, 6 insertions(+)

commit 27a401259308a4cb5d73d572515f3ffc29d6d5dc
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-06-12

    trust/parser.c: memory management hardening
    
    * fixes several memory leaks
    * added new fuzzer tests
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 common/debug.h                               |   2 +-
 fuzz/persist.in/asn1_memleak.p11-kit         |   1 +
 fuzz/persist.in/attrs_build_memleak2.p11-kit | Bin 0 -> 274499 bytes
 trust/parser.c                               | 237 ++++++++++++++++++++-------
 4 files changed, 184 insertions(+), 56 deletions(-)

commit ece2a676c67b7d8d599ccce3051b0463404027f6
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-06-09

    p11-kit/uri.c: memory management hardening
    
    * added new fuzzer tests (timeout, uri_parse_int_overflow)
    * fixed integer overflow in static function atoin
    * fixed bunch of memory leaks
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 fuzz/uri.in/timeout.uri                |  1 +
 fuzz/uri.in/uri_parse_int_overflow.uri |  1 +
 p11-kit/uri.c                          | 71 +++++++++++++++++++++++++++++-----
 3 files changed, 64 insertions(+), 9 deletions(-)

commit 4ecb01d7833561341f35f82f85fc168a89cabcc6
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-06-09

    Add extra fuzzer test values
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 fuzz/conf.in/dash.conf                             |   1 +
 fuzz/persist.in/attrs_build_memleak1.p11-kit       |   2 ++
 fuzz/persist.in/attrs_merge_memleak.p11-kit        | Bin 0 -> 1838 bytes
 fuzz/persist.in/attrs_take_memleak.p11-kit         |  23 +++++++++++++++++++++
 fuzz/persist.in/lexer_next_buffer_overflow.p11-kit |   2 ++
 fuzz/persist.in/single-quote-value.p11-kit         |   2 ++
 6 files changed, 30 insertions(+)

commit 2e6578326beff948f21323e19499d023f290a583
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-05-26

    persist: fix parse_string corner-case
    
    Function parse_string incorrectly interpreted the
    value (") as string, which triggered the
    assert (value <= end) in function p11_url_parse
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 common/persist.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 802b820e75aa5e760a3fb940d92b80cbd0a79180
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-05-22

    common/persist.c: memory management hardening
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 common/persist.c | 57 +++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 40 insertions(+), 17 deletions(-)

commit e208a1f62364beeaddaa50b344406ebb5c9f5033
Author: Daiki Ueno <ueno@gnu.org>
Date:   2026-05-25

    trust: Pacify cppcheck warnings
    
    cppcheck 2.20 produces a warning if we don't check the result of
    fopen. This adds an assert for each invocation to suppress it.
    
    Signed-off-by: Daiki Ueno <ueno@gnu.org>

 trust/test-module.c | 3 +++
 1 file changed, 3 insertions(+)

commit 381f771031d0c6d2559fd57c4788fdc4be172959
Author: Daiki Ueno <ueno@gnu.org>
Date:   2026-05-22

    common: Suppress -Wdiscarded-qualifiers warnings
    
    Signed-off-by: Daiki Ueno <ueno@gnu.org>

 common/base64.c | 2 +-
 common/url.c    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 119aea2fee269a1231d6e29f1985d1baeddd6d3b
Author: Andreas Metzler <ametzler@bebt.de>
Date:   2026-05-25

    Fix autoreconf error with gettext 1.0
    
    Use quoting to avoid autopoint error ("found more than one invocation")
    Fixes: #759
    
    Signed-off-by: Andreas Metzler <ametzler@bebt.de>

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c5d5130c6610760151e61df9fede4826f765e7ef
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-05-21

    common/lexer.c: memory management hardening
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 common/lexer.c | 81 +++++++++++++++++++++++++++++-----------------------------
 common/lexer.h |  2 +-
 2 files changed, 41 insertions(+), 42 deletions(-)

commit 2341b9ddf712ec4f0f8f5b2071eb4536ecb71a85
Author: Daiki Ueno <ueno@gnu.org>
Date:   2026-05-21

    ci: Update CI image to Fedora 44
    
    Signed-off-by: Daiki Ueno <ueno@gnu.org>

 ci/Dockerfile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c42442f776ffe0fb1d8dae4dbe4d4b934928d9f9
Author: Daiki Ueno <ueno@gnu.org>
Date:   2026-05-21

    ci: Fix coverage reporting
    
    This updates the coveralls action to 2.3.6, which supports the
    cobertura format.
    
    Signed-off-by: Daiki Ueno <ueno@gnu.org>

 .github/actions/basic-meson/action.yaml |  4 ++--
 .github/workflows/test.yaml             | 13 ++++++++-----
 build/run-wrapper.sh                    |  4 +++-
 3 files changed, 13 insertions(+), 8 deletions(-)

commit a46432823528992bf81c77ca99831075a6a10b8f
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-05-21

    common/attrs.c: memory management hardening
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 common/attrs.c | 77 ++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 45 insertions(+), 32 deletions(-)

commit 3822b6b2de2e606809afeaffae7ffdc682447261
Author: Zoltan Fridrich <zfridric@redhat.com>
Date:   2026-05-20

    common/asn1.c: memory management hardening
    
    Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>

 common/asn1.c | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

commit 72d69f11eab305c86377620435be7934f0e97379
Author: Daiki Ueno <ueno@gnu.org>
Date:   2026-05-20

    fuzz: build conf, uri, and persist fuzzers with meson
    
    Signed-off-by: Daiki Ueno <ueno@gnu.org>

 fuzz/meson.build | 13 +++++++++++--
 meson.build      |  2 +-
 2 files changed, 12 insertions(+), 3 deletions(-)

commit 989aecd9084454892f41232991cbbda54376d621
Author: Shiz01 <shiz2048@gmail.com>
Date:   2026-05-19

        trust: fix memory leaks in p11_x509_parse_extended_key_usage
    
        In p11_x509_parse_extended_key_usage() some paths returned early
        without releasing allocated memory. This fix added cleanup.
    
        Signed-off-by: Shiz01 shiz2048@gmail.com

 trust/x509.c | 32 ++++++++++++++++++++++++--------
 1 file changed, 24 insertions(+), 8 deletions(-)

commit 24151187c977bd10b30fffedc47033b438a15c87
Author: David Korczynski <david@adalogics.com>
Date:   2026-05-12

    adjust copyright
    
    Signed-off-by: David Korczynski <david@adalogics.com>

 fuzz/conf_fuzzer.c    | 2 +-
 fuzz/persist_fuzzer.c | 2 +-
 fuzz/uri_fuzzer.c     | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit c6bf6d6d88140f43f4c8f9367cad7b72f79e1105
Author: David Korczynski <david@adalogics.com>
Date:   2026-03-27

    fuzz: add three new harnesses
    
    Signed-off-by: David Korczynski <david@adalogics.com>

 fuzz/Makefile.am                                 |  21 ++++-
 fuzz/conf.in/basic.conf                          |   5 ++
 fuzz/conf.in/basic_src.conf                      |   5 ++
 fuzz/conf.in/multiline.conf                      |   7 ++
 fuzz/conf.in/multiline_src.conf                  |   7 ++
 fuzz/conf.in/pem_block.conf                      |   4 +
 fuzz/conf.in/pem_block_src.conf                  |   4 +
 fuzz/conf.in/section.conf                        |   5 ++
