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)); |
