diff options
-rwxr-xr-x | vchat-ssl.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/vchat-ssl.c b/vchat-ssl.c index 7f0395b..2b41432 100755 --- a/vchat-ssl.c +++ b/vchat-ssl.c | |||
@@ -136,8 +136,24 @@ int vc_connect_ssl( BIO **conn, vc_x509store_t *vc_store ) | |||
136 | BIO_push( ssl_conn, *conn ); | 136 | BIO_push( ssl_conn, *conn ); |
137 | *conn = ssl_conn; | 137 | *conn = ssl_conn; |
138 | fflush(stdout); | 138 | fflush(stdout); |
139 | if( BIO_do_handshake( *conn ) > 0 ) | 139 | if( BIO_do_handshake( *conn ) > 0 ) { |
140 | /* Show information about cipher used */ | ||
141 | const SSL *sslp = NULL; | ||
142 | const SSL_CIPHER * cipher = NULL; | ||
143 | |||
144 | /* Get cipher object */ | ||
145 | BIO_get_ssl(ssl_conn, &sslp); | ||
146 | cipher = SSL_get_current_cipher(sslp); | ||
147 | if (cipher) { | ||
148 | char cipher_desc[TMPSTRSIZE]; | ||
149 | snprintf(tmpstr, TMPSTRSIZE, "[SSL CIPHER] %s", SSL_CIPHER_description(cipher, cipher_desc, TMPSTRSIZE)); | ||
150 | writecf(FS_SERV, tmpstr); | ||
151 | } else { | ||
152 | snprintf(tmpstr, TMPSTRSIZE, "[SSL ERROR] Cipher not known / SSL object can't be queried!"); | ||
153 | writecf(FS_ERR, tmpstr); | ||
154 | } | ||
140 | return 0; | 155 | return 0; |
156 | } | ||
141 | } | 157 | } |
142 | 158 | ||
143 | snprintf(tmpstr, TMPSTRSIZE, "[SSL ERROR] %s", ERR_error_string (ERR_get_error (), NULL)); | 159 | snprintf(tmpstr, TMPSTRSIZE, "[SSL ERROR] %s", ERR_error_string (ERR_get_error (), NULL)); |