Skip to content

Commit baede6c

Browse files
TheJokrkornelski
authored andcommitted
Remove INVALID_CALL from mid-handshake error message
Mid-handshake errors that occur before certificate verification currently look like this: ``` TLS handshake failed: cert verification failed - Invalid certificate verification context [WRONG_VERSION_NUMBER] ``` Despite no certificate even being received yet, the error complains about a failed verification. The cause here is that `cert verification failed` is only omitted if the verification result is `OK`. The default in BoringSSL before verification runs is `INVALID_CALL`, however. `INVALID_CALL` is set/returned in these places: - https://github.com/google/boringssl/blob/44b3df6f03d85c901767250329c571db405122d5/src/ssl/internal.h#L3904 - https://github.com/google/boringssl/blob/44b3df6f03d85c901767250329c571db405122d5/src/ssl/ssl_session.cc#L396 - https://github.com/google/boringssl/blob/44b3df6f03d85c901767250329c571db405122d5/src/ssl/ssl_x509.cc#L713 It is not used anywhere else as a verification result code. To improve the error message, this commit adds `INVALID_CALL` as a verification result for which no additional error is dislayed.
1 parent 33b5113 commit baede6c

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

boring/src/ssl/error.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use crate::ffi;
2+
use crate::x509::X509VerifyError;
23
use libc::c_int;
34
use std::error;
45
use std::error::Error as StdError;
@@ -206,7 +207,9 @@ fn fmt_mid_handshake_error(
206207
}
207208

208209
match s.ssl().verify_result() {
209-
Ok(()) => write!(f, "{}", prefix)?,
210+
// INVALID_CALL is returned if no verification took place,
211+
// such as before a cert is sent.
212+
Ok(()) | Err(X509VerifyError::INVALID_CALL) => write!(f, "{}", prefix)?,
210213
Err(verify) => write!(f, "{}: cert verification failed - {}", prefix, verify)?,
211214
}
212215

0 commit comments

Comments
 (0)