Add certificate callback. If set this is called whenever a certificate
[openssl.git] / ssl / s3_clnt.c
index c51f3d0b0f48f9fad52f0eb71a248deeb0c68073..8d7bcfef39e287ffc08aea9966e96ecdee7a83a8 100644 (file)
@@ -3180,6 +3180,13 @@ int ssl3_send_client_certificate(SSL *s)
 
        if (s->state == SSL3_ST_CW_CERT_A)
                {
+               /* Let cert callback update client certificates if required */
+               if (s->cert->cert_cb
+                       && s->cert->cert_cb(s, s->cert->cert_cb_arg) <= 0)
+                       {
+                       ssl3_send_alert(s,SSL3_AL_FATAL,SSL_AD_INTERNAL_ERROR);
+                       return 0;
+                       }
                if (ssl3_check_client_certificate(s))
                        s->state=SSL3_ST_CW_CERT_C;
                else