Alternative TLS implementation in Go
Go to file
Joël Stemmer c32a7dcd6d crypto/tls: return correct hash function when using client certificates in handshake
Commit f1d669aee994b28e1afcfe974680565932d25b70 added support for
AES_256_GCM_SHA384 cipher suites as specified in RFC5289. However, it
did not take the arbitrary hash function into account in the TLS client
handshake when using client certificates.

The hashForClientCertificate method always returned SHA256 as its
hashing function, even if it actually used a different one to calculate
its digest. Setting up the connection would eventually fail with the
error "tls: failed to sign handshake with client certificate:
crypto/rsa: input must be hashed message".

Included is an additional test for this specific situation that uses the
SHA384 hash.

Fixes #9808

Change-Id: Iccbf4ab225633471ef897907c208ad31f92855a3
Reviewed-on: https://go-review.googlesource.com/7040
Reviewed-by: Adam Langley <agl@golang.org>
Run-TryBot: Adam Langley <agl@golang.org>
2015-03-16 23:38:51 +00:00
testdata crypto/tls: return correct hash function when using client certificates in handshake 2015-03-16 23:38:51 +00:00
alert.go crypto/tls: support TLS_FALLBACK_SCSV as a server. 2014-10-15 17:54:04 -07:00
cipher_suites.go crypto/tls: add support for AES_256_GCM_SHA384 cipher suites specified in RFC5289 2015-02-04 00:18:14 +00:00
common.go crypto/tls: return correct hash function when using client certificates in handshake 2015-03-16 23:38:51 +00:00
conn_test.go crypto/tls: Added dynamic alternative to NameToCertificate map for SNI 2014-08-06 11:22:00 -07:00
conn.go crypto/tls: allow larger initial records. 2015-02-24 19:39:36 +00:00
example_test.go crypto/x509: add example of using a custom root list. 2014-02-19 11:18:35 -05:00
generate_cert.go crypto/tls: Support ECDSA keys in generate_cert.go 2014-07-28 14:46:34 -07:00
handshake_client_test.go crypto/tls: return correct hash function when using client certificates in handshake 2015-03-16 23:38:51 +00:00
handshake_client.go crypto/tls: add support for AES_256_GCM_SHA384 cipher suites specified in RFC5289 2015-02-04 00:18:14 +00:00
handshake_messages_test.go crypto/tls: add ALPN support. 2014-08-05 11:36:20 -07:00
handshake_messages.go crypto/tls: fix renegotiation extension. 2015-01-06 19:50:07 +00:00
handshake_server_test.go crypto/tls: fix typo in tls handshake error 2015-03-06 18:18:40 +00:00
handshake_server.go crypto/tls: fix typo in tls handshake error 2015-03-06 18:18:40 +00:00
handshake_test.go crypto/tls: rework reference tests. 2013-12-20 11:37:05 -05:00
key_agreement.go crypto/tls: check curve equation in ECDHE. 2014-07-28 15:46:27 -07:00
prf_test.go crypto/tls: add support for AES_256_GCM_SHA384 cipher suites specified in RFC5289 2015-02-04 00:18:14 +00:00
prf.go crypto/tls: return correct hash function when using client certificates in handshake 2015-03-16 23:38:51 +00:00
ticket.go crypto/tls: ensure that we don't resume when tickets are disabled. 2014-09-26 11:02:09 +10:00
tls_test.go crypto/tls: implement tls-unique channel binding (RFC 5929 section 3). 2014-08-11 16:40:42 -07:00
tls.go crypto/tls: remove return parameter stutter 2015-01-13 21:35:11 +00:00