[openssl/openssl] 95dcb1: Allow SSL_set_retry_verify() on server session

"'Tomas Weinfurt' via openssl-commits" <[email protected]>
Newsgroups gmane.comp.encryption.openssl.cvs
Message-ID <openssl/openssl/push/refs/heads/master/[email protected]>
  Branch: refs/heads/master
  Home:   https://github.com/openssl/openssl
  Commit: 95dcb1b719a1c94ab0a8389c94c323fb2ec1d371
      https://github.com/openssl/openssl/commit/95dcb1b719a1c94ab0a8389c94c323fb2ec1d371
  Author: wfurt <[email protected]>
  Date:   2026-08-27 (Thu, 27 Aug 2026)

  Changed paths:
    M doc/man3/SSL_CTX_set_cert_verify_callback.pod
    M doc/man3/SSL_set_retry_verify.pod
    M ssl/statem/statem_local.h
    M ssl/statem/statem_srvr.c
    M test/sslapitest.c

  Log Message:
  -----------
  Allow SSL_set_retry_verify() on server session

Split server-side client-certificate processing into a parse phase
(tls_process_client_certificate) and a post-process verification phase
(tls_post_process_client_certificate), mirroring the existing
client-side tls_process_server_certificate /
tls_post_process_server_certificate split.

Split tls_process_client_rpk() into a parse phase and a new post-process
phase (tls_post_process_client_rpk), mirroring the client-side RPK split.
tls_post_process_client_certificate() now dispatches to the RPK helper
based on client_cert_type, so an application verify callback can call
SSL_set_retry_verify() during server-side RPK verification and
SSL_accept()/SSL_do_handshake() returns SSL_ERROR_WANT_RETRY_VERIFY.

This lets an application's verify callback call SSL_set_retry_verify()
during server-side client-cert verification: the post-process step now
returns WORK_MORE_A so SSL_accept()/SSL_do_handshake() returns
SSL_ERROR_WANT_RETRY_VERIFY, and re-entry resumes verification once the
application has supplied a verdict. Until now SSL_set_retry_verify was
documented as supported but only worked on the client.

A new regression test (test_server_cert_verify_cb in test/sslapitest.c)
exercises the server-side retry-verify path end-to-end.

Update SSL_set_retry_verify and SSL_CTX_set_cert_verify_callback
documentation to describe client and server retry-verify flow.

Fixes https://github.com/openssl/openssl/issues/30068

Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Andrew Dinh <[email protected]>
Merge-date: Thu Aug 27 13:35:46 2026
Merged-from: https://github.com/openssl/openssl/pull/31485



To unsubscribe from these emails, change your notification settings at https://github.com/openssl/openssl/settings/notifications

-- 
You received this message because you are subscribed to the Google Groups "openssl-commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion visit https://groups.google.com/a/openssl.org/d/msgid/openssl-commits/openssl/openssl/push/refs/heads/master/dadf86-95dcb1%40github.com.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.