File tree 3 files changed +27
-4
lines changed
3 files changed +27
-4
lines changed Original file line number Diff line number Diff line change @@ -593,10 +593,15 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
593
593
< dd >
594
594
< p >
595
595
Support for SSL version 3.0 (SSLv3) < a href ="https://golang.org/issue/32716 ">
596
- is now deprecated and will be removed in Go 1.14</ a > . Note that SSLv3
597
- < a href ="https://tools.ietf.org/html/rfc7568 "> is cryptographically
598
- broken</ a > , is already disabled by default in < code > crypto/tls</ code > ,
599
- and was never supported by Go clients.
596
+ is now deprecated and will be removed in Go 1.14</ a > . Note that SSLv3 is the
597
+ < a href ="https://tools.ietf.org/html/rfc7568 "> cryptographically broken</ a >
598
+ protocol predating TLS.
599
+ </ p >
600
+
601
+ < p >
602
+ SSLv3 was always disabled by default, other than in Go 1.12, when it was
603
+ mistakenly enabled by default server-side. It is now again disabled by
604
+ default. (SSLv3 was never supported client-side.)
600
605
</ p >
601
606
602
607
< p > <!-- CL 177698 -->
Original file line number Diff line number Diff line change @@ -794,6 +794,10 @@ var supportedVersions = []uint16{
794
794
func (c * Config ) supportedVersions (isClient bool ) []uint16 {
795
795
versions := make ([]uint16 , 0 , len (supportedVersions ))
796
796
for _ , v := range supportedVersions {
797
+ // TLS 1.0 is the default minimum version.
798
+ if (c == nil || c .MinVersion == 0 ) && v < VersionTLS10 {
799
+ continue
800
+ }
797
801
if c != nil && c .MinVersion != 0 && v < c .MinVersion {
798
802
continue
799
803
}
Original file line number Diff line number Diff line change @@ -77,6 +77,20 @@ func TestRejectBadProtocolVersion(t *testing.T) {
77
77
}, "unsupported versions" )
78
78
}
79
79
80
+ func TestSSLv3OptIn (t * testing.T ) {
81
+ config := testConfig .Clone ()
82
+ config .MinVersion = 0
83
+ testClientHelloFailure (t , config , & clientHelloMsg {
84
+ vers : VersionSSL30 ,
85
+ random : make ([]byte , 32 ),
86
+ }, "unsupported versions" )
87
+ testClientHelloFailure (t , config , & clientHelloMsg {
88
+ vers : VersionTLS12 ,
89
+ supportedVersions : []uint16 {VersionSSL30 },
90
+ random : make ([]byte , 32 ),
91
+ }, "unsupported versions" )
92
+ }
93
+
80
94
func TestNoSuiteOverlap (t * testing.T ) {
81
95
clientHello := & clientHelloMsg {
82
96
vers : VersionTLS10 ,
You can’t perform that action at this time.
0 commit comments