Suppress CT callback as appropriate
authorViktor Dukhovni <openssl-users@dukhovni.org>
Thu, 7 Apr 2016 18:17:37 +0000 (14:17 -0400)
committerViktor Dukhovni <openssl-users@dukhovni.org>
Thu, 7 Apr 2016 18:41:34 +0000 (14:41 -0400)
commit43341433a88a6a2cd38c35359f48653e809b10cd
tree37b70a38d94f8f9bfa18f633b35df2647d13273a
parentc636c1c470fd2b4b0cb546e6ee85971375e42ec1
Suppress CT callback as appropriate

Suppress CT callbacks with aNULL or PSK ciphersuites that involve
no certificates.  Ditto when the certificate chain is validated via
DANE-TA(2) or DANE-EE(3) TLSA records.  Also skip SCT processing
when the chain is fails verification.

Move and consolidate CT callbacks from libcrypto to libssl.  We
also simplify the interface to SSL_{,CTX_}_enable_ct() which can
specify either a permissive mode that just collects information or
a strict mode that requires at least one valid SCT or else asks to
abort the connection.

Simplified SCT processing and options in s_client(1) which now has
just a simple pair of "-noct" vs. "-ct" options, the latter enables
the permissive callback so that we can complete the handshake and
report all relevant information.  When printing SCTs, print the
validation status if set and not valid.

Signed-off-by: Rob Percival <robpercival@google.com>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
17 files changed:
apps/s_client.c
crypto/ct/ct_oct.c
crypto/ct/ct_prn.c
crypto/ct/ct_sct.c
crypto/ct/ct_vfy.c
doc/apps/s_client.pod
doc/ssl/SSL_CTX_set_ct_validation_callback.pod
doc/ssl/SSL_CTX_set_ctlog_list_file.pod
include/openssl/ct.h
include/openssl/ssl.h
ssl/ssl_lib.c
ssl/ssl_locl.h
ssl/statem/statem_clnt.c
ssl/t1_ext.c
test/ct_test.c
test/recipes/80-test_ssl_old.t
test/ssltest_old.c