Commit 907126a
David Cooper
Fix extract_calist()
When a server supports client authentication, extract_calist() extracts the list of supported certification authorities sent by the server. extract_calist() uses different code to extract the list from a TLS 1.3 response than from a TLS 1.2 or earlier response, since the CertificateRequest message was changed for TLS 1.3.
For TLS 1.2 and earlier, extract_calist() assumes that the CertificateRequest message is a sequence of certificate types, signature algorithms, and certification authorities. However, the signature algorithms field was added in TLS 1.2 and does not appear in TLS 1.1 and earlier. So, the current code does not work unless the server supports TLS 1.2 or TLS 1.3.
This commit fixes the problem by checking whether the response is a TLS 1.2 response, and skipping over the extraction of the signature algorithms field if the response is neither TLS 1.2 nor TLS 1.3.1 parent a466608 commit 907126a
1 file changed
Lines changed: 15 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21299 | 21299 | | |
21300 | 21300 | | |
21301 | 21301 | | |
21302 | | - | |
| 21302 | + | |
21303 | 21303 | | |
21304 | 21304 | | |
21305 | 21305 | | |
21306 | 21306 | | |
21307 | | - | |
21308 | | - | |
21309 | | - | |
| 21307 | + | |
| 21308 | + | |
| 21309 | + | |
| 21310 | + | |
| 21311 | + | |
| 21312 | + | |
| 21313 | + | |
| 21314 | + | |
21310 | 21315 | | |
21311 | 21316 | | |
21312 | 21317 | | |
| |||
21342 | 21347 | | |
21343 | 21348 | | |
21344 | 21349 | | |
21345 | | - | |
| 21350 | + | |
21346 | 21351 | | |
21347 | 21352 | | |
21348 | 21353 | | |
21349 | 21354 | | |
21350 | 21355 | | |
21351 | | - | |
21352 | | - | |
21353 | | - | |
| 21356 | + | |
| 21357 | + | |
| 21358 | + | |
| 21359 | + | |
| 21360 | + | |
21354 | 21361 | | |
21355 | 21362 | | |
21356 | 21363 | | |
| |||
0 commit comments