Closed
Bug 1119983
Opened 10 years ago
Closed 10 years ago
NSS TLS 1.2 server fails to interoperate with LibreSSL client
Categories
(NSS :: Libraries, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
3.17.4
People
(Reporter: chris.newman, Assigned: chris.newman)
References
Details
Attachments
(1 file)
2.05 KB,
patch
|
agl
:
review+
|
Details | Diff | Splinter Review |
When NSS is used as a TLS 1.2 server, it does not interoperate with the LibreSSL client due to two bugs in NSS TLS 1.2 implementation of the signature_algorithms extension. First, the matching for signature_algorithms uses the wrong number space as the SSL3SignatureAndHashAlgorithm structure uses a SECOidTag and the hashPreference array is using TLS hash identifier namespace in ssl3con.c. Second, the parser for signature_algorithms in ssl3_ServerHandleSigAlgsXtn handles the SEC_OID_UNKNOWN case incorrectly leaving uninitialized variables in the list.
Because SEC_OID_SHA1 is 4 and tls_hash_sha256 is also 4, the first bug is usually not noticed, but LibreSSL uses a private-use hash identifier and puts SHA1 at the end, so the second bug causes the first bug to manifest and no matching hash algorithm is found. This results in a bogus SSL_ERROR_UNSUPPORTED_HASH_ALGORITHM error from NSS server.
Assignee | ||
Comment 1•10 years ago
|
||
Attachment #8546891 -
Flags: review?
Assignee | ||
Updated•10 years ago
|
Attachment #8546891 -
Flags: review? → review?(agl)
Updated•10 years ago
|
Attachment #8546891 -
Flags: review?(agl) → review+
Assignee | ||
Updated•10 years ago
|
Assignee: nobody → chris.newman
Assignee | ||
Comment 3•10 years ago
|
||
Kai, can you help get this fix landed? This is my first time trying to fix a bug in NSS so feel free to point me to RTFM if I did something wrong. Thanks!
Flags: needinfo?(kaie)
Updated•10 years ago
|
Flags: needinfo?(kaie)
Comment 4•10 years ago
|
||
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → 3.18
Updated•10 years ago
|
Keywords: checkin-needed
You need to log in
before you can comment on or make changes to this bug.
Description
•