Skip to content

Commit 78d6232

Browse files
committed
gskit: remove
We remove support for building curl with gskit. - This is a niche TLS library, only running on some IBM systems - no regular curl contributors use this backend - no CI builds use or verify this backend - gskit, or the curl adaption for it, lacks many modern TLS features making it an inferior solution - build breakages in this code take weeks or more to get detected - fixing gskit code is mostly done "flying blind" This removal has been advertized in DEPRECATED in Jan 2, 2023 and it has been mentioned on the curl-library mailing list. It could be brought back, this is not a ban. Given proper effort and will, gskit support is welcome back into the curl TLS backend family. Closes curl#11460
1 parent 08b9f24 commit 78d6232

33 files changed

+35
-1995
lines changed

docs/CIPHERS.md

-65
Original file line numberDiff line numberDiff line change
@@ -165,71 +165,6 @@ When specifying multiple cipher names, separate them with colon (`:`).
165165
`TLS_AES_128_CCM_8_SHA256`
166166
`TLS_AES_128_CCM_SHA256`
167167

168-
## GSKit
169-
170-
Ciphers are internally defined as [numeric
171-
codes](https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/apis/gsk_attribute_set_buffer.htm). libcurl
172-
maps them to the following case-insensitive names.
173-
174-
### SSL2 cipher suites (insecure: disabled by default)
175-
176-
`rc2-md5`
177-
`rc4-md5`
178-
`exp-rc2-md5`
179-
`exp-rc4-md5`
180-
`des-cbc-md5`
181-
`des-cbc3-md5`
182-
183-
### SSL3 cipher suites
184-
185-
`null-md5`
186-
`null-sha`
187-
`rc4-md5`
188-
`rc4-sha`
189-
`exp-rc2-cbc-md5`
190-
`exp-rc4-md5`
191-
`exp-des-cbc-sha`
192-
`des-cbc3-sha`
193-
194-
### TLS v1.0 cipher suites
195-
196-
`null-md5`
197-
`null-sha`
198-
`rc4-md5`
199-
`rc4-sha`
200-
`exp-rc2-cbc-md5`
201-
`exp-rc4-md5`
202-
`exp-des-cbc-sha`
203-
`des-cbc3-sha`
204-
`aes128-sha`
205-
`aes256-sha`
206-
207-
### TLS v1.1 cipher suites
208-
209-
`null-md5`
210-
`null-sha`
211-
`rc4-md5`
212-
`rc4-sha`
213-
`exp-des-cbc-sha`
214-
`des-cbc3-sha`
215-
`aes128-sha`
216-
`aes256-sha`
217-
218-
### TLS v1.2 cipher suites
219-
220-
`null-md5`
221-
`null-sha`
222-
`null-sha256`
223-
`rc4-md5`
224-
`rc4-sha`
225-
`des-cbc3-sha`
226-
`aes128-sha`
227-
`aes256-sha`
228-
`aes128-sha256`
229-
`aes256-sha256`
230-
`aes128-gcm-sha256`
231-
`aes256-gcm-sha384`
232-
233168
## WolfSSL
234169

235170
`RC4-SHA`,

docs/DEPRECATE.md

+2-12
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,6 @@ email the
66
as soon as possible and explain to us why this is a problem for you and
77
how your use case cannot be satisfied properly using a workaround.
88

9-
## gskit
10-
11-
We remove support for building curl with the gskit TLS library in August 2023.
12-
13-
- This is a niche TLS library, only running on some IBM systems
14-
- no regular curl contributors use this backend
15-
- no CI builds use or verify this backend
16-
- gskit, or the curl adaption for it, lacks many modern TLS features making it
17-
an inferior solution
18-
- build breakages in this code take weeks or more to get detected
19-
- fixing gskit code is mostly done "flying blind"
20-
219
## mingw v1
2210

2311
We remove support for building curl with the original legacy mingw version 1
@@ -57,3 +45,5 @@ curl will remove the support for space-separated names in July 2024.
5745
- NPN
5846
- Support for systems without 64 bit data types
5947
- NSS
48+
- gskit
49+

docs/FAQ

+3-3
Original file line numberDiff line numberDiff line change
@@ -423,9 +423,9 @@ FAQ
423423

424424
curl can be built to use one of the following SSL alternatives: OpenSSL,
425425
libressl, BoringSSL, AWS-LC, GnuTLS, wolfSSL, mbedTLS, Secure Transport
426-
(native iOS/OS X), Schannel (native Windows), GSKit (native IBM i), BearSSL,
427-
or Rustls. They all have their pros and cons, and we try to maintain a
428-
comparison of them here: https://curl.se/docs/ssl-compared.html
426+
(native iOS/OS X), Schannel (native Windows), BearSSL or Rustls. They all
427+
have their pros and cons, and we try to maintain a comparison of them here:
428+
https://curl.se/docs/ssl-compared.html
429429

430430
2.4 Does curl support SOCKS (RFC 1928) ?
431431

docs/INTERNALS.md

-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ versions of libs and build tools.
2727
- wolfSSL 2.0.0
2828
- OpenLDAP 2.0
2929
- MIT Kerberos 1.2.4
30-
- GSKit V5R3M0
3130
- Heimdal ?
3231
- nghttp2 1.15.0
3332
- WinSock 2.2 (on Windows 95+ and Windows CE .NET 4.1+)

docs/cmdline-opts/page-footer

+2-3
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,8 @@ the case insensitive name of the particular backend to use when curl is
6060
invoked. Setting a name that is not a built-in alternative will make curl
6161
stay with the default.
6262

63-
SSL backend names (case-insensitive): **bearssl**, **gnutls**, **gskit**,
64-
**mbedtls**, **openssl**, **rustls**, **schannel**, **secure-transport**,
65-
**wolfssl**
63+
SSL backend names (case-insensitive): **bearssl**, **gnutls**, **mbedtls**,
64+
**openssl**, **rustls**, **schannel**, **secure-transport**, **wolfssl**
6665
.IP "HOME <dir>"
6766
If set, this is used to find the home directory when that is needed. Like when
6867
looking for the default .curlrc. *CURL_HOME* and *XDG_CONFIG_HOME*

docs/cmdline-opts/pinnedpubkey.d

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ abort the connection before sending or receiving any data.
2323

2424
PEM/DER support:
2525

26-
7.39.0: OpenSSL, GnuTLS and GSKit
26+
7.39.0: OpenSSL and GnuTLS
2727

2828
7.43.0: wolfSSL
2929

docs/cmdline-opts/write-out.d

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ The variables available are:
4949
.TP 15
5050
**certs**
5151
Output the certificate chain with details. Supported only by the OpenSSL,
52-
GnuTLS, Schannel, GSKit and Secure Transport backends. (Added in 7.88.0)
52+
GnuTLS, Schannel and Secure Transport backends. (Added in 7.88.0)
5353
.TP
5454
**content_type**
5555
The Content-Type of the requested document, if there was any.
@@ -105,7 +105,7 @@ The http method used in the most recent HTTP request. (Added in 7.72.0)
105105
.TP
106106
**num_certs**
107107
Number of server certificates received in the TLS handshake. Supported only by
108-
the OpenSSL, GnuTLS, Schannel, GSKit and Secure Transport backends. (Added
108+
the OpenSSL, GnuTLS, Schannel and Secure Transport backends. (Added
109109
in 7.88.0)
110110
.TP
111111
**num_connects**

docs/libcurl/curl_global_sslset.3

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ typedef enum {
3838
CURLSSLBACKEND_OPENSSL = 1, /* or one of its forks */
3939
CURLSSLBACKEND_GNUTLS = 2,
4040
CURLSSLBACKEND_NSS = 3,
41-
CURLSSLBACKEND_GSKIT = 5,
41+
CURLSSLBACKEND_GSKIT = 5, /* deprecated */
4242
CURLSSLBACKEND_POLARSSL = 6, /* deprecated */
4343
CURLSSLBACKEND_WOLFSSL = 7,
4444
CURLSSLBACKEND_SCHANNEL = 8,

docs/libcurl/libcurl-env.3

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ specific backend at first use. If no selection is done by the program using
5050
libcurl, this variable's selection will be used. Setting a name that is not a
5151
built-in alternative will make libcurl stay with the default.
5252

53-
SSL backend names (case-insensitive): BearSSL, GnuTLS, gskit, mbedTLS,
53+
SSL backend names (case-insensitive): BearSSL, GnuTLS, mbedTLS,
5454
nss, OpenSSL, rustls, Schannel, Secure-Transport, wolfSSL
5555
.IP HOME
5656
When the netrc feature is used (\fICURLOPT_NETRC(3)\fP), this variable is

docs/libcurl/opts/CURLINFO_CERTINFO.3

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ if(curl) {
7575
}
7676
.fi
7777
.SH AVAILABILITY
78-
This option is only working in libcurl built with OpenSSL, Schannel, GSKit or
78+
This option is only working in libcurl built with OpenSSL, Schannel or
7979
Secure Transport support. Schannel support added in 7.50.0. Secure Transport
8080
support added in 7.79.0.
8181

docs/libcurl/opts/CURLINFO_TLS_SESSION.3

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ if(curl) {
6363
}
6464
.fi
6565
.SH AVAILABILITY
66-
Added in 7.34.0. Deprecated since 7.48.0 and supported OpenSSL, GnuTLS,
67-
NSS and gskit only up until this version was released.
66+
Added in 7.34.0. Deprecated since 7.48.0 and supported OpenSSL, GnuTLS, and
67+
NSS only up until this version was released.
6868
.SH RETURN VALUE
6969
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
7070
.SH "SEE ALSO"

docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3

+3-6
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,15 @@ struct curl_tlssessioninfo {
5757
The \fIbackend\fP struct member is one of the defines in the CURLSSLBACKEND_*
5858
series: CURLSSLBACKEND_NONE (when built without TLS support),
5959
CURLSSLBACKEND_WOLFSSL, CURLSSLBACKEND_SECURETRANSPORT, CURLSSLBACKEND_GNUTLS,
60-
CURLSSLBACKEND_GSKIT, CURLSSLBACKEND_MBEDTLS, CURLSSLBACKEND_NSS,
61-
CURLSSLBACKEND_OPENSSL, CURLSSLBACKEND_SCHANNEL or
62-
CURLSSLBACKEND_MESALINK. (Note that the OpenSSL forks are all reported as just
63-
OpenSSL here.)
60+
CURLSSLBACKEND_MBEDTLS, CURLSSLBACKEND_NSS, CURLSSLBACKEND_OPENSSL,
61+
CURLSSLBACKEND_SCHANNEL or CURLSSLBACKEND_MESALINK. (Note that the OpenSSL
62+
forks are all reported as just OpenSSL here.)
6463

6564
The \fIinternals\fP struct member will point to a TLS library specific pointer
6665
for the active ("in use") SSL connection, with the following underlying types:
6766
.RS
6867
.IP GnuTLS
6968
\fBgnutls_session_t\fP
70-
.IP gskit
71-
\fBgsk_handle\fP
7269
.IP NSS
7370
\fBPRFileDesc *\fP
7471
.IP OpenSSL

docs/libcurl/opts/CURLOPT_CERTINFO.3

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ if(curl) {
7474
}
7575
.fi
7676
.SH AVAILABILITY
77-
This option is supported by the OpenSSL, GnuTLS, Schannel, GSKit and Secure
77+
This option is supported by the OpenSSL, GnuTLS, Schannel and Secure
7878
Transport backends. Schannel support added in 7.50.0. Secure Transport support
7979
added in 7.79.0.
8080
.SH RETURN VALUE

docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY.3

-2
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,6 @@ PEM/DER support:
102102

103103
7.39.0: OpenSSL, GnuTLS
104104

105-
7.39.0-7.48.0,7.58.1+: GSKit
106-
107105
7.43.0: wolfSSL
108106

109107
7.47.0: mbedTLS

docs/libcurl/opts/CURLOPT_PROXY_PINNEDPUBLICKEY.3

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ footer:
9898
.SH AVAILABILITY
9999
PEM/DER support:
100100

101-
7.52.0: GSKit, GnuTLS, OpenSSL, mbedTLS, wolfSSL
101+
7.52.0: GnuTLS, OpenSSL, mbedTLS, wolfSSL
102102

103103
sha256 support:
104104

include/curl/curl.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ typedef enum {
161161
CURLSSLBACKEND_GNUTLS = 2,
162162
CURLSSLBACKEND_NSS = 3,
163163
CURLSSLBACKEND_OBSOLETE4 = 4, /* Was QSOSSL. */
164-
CURLSSLBACKEND_GSKIT = 5,
164+
CURLSSLBACKEND_GSKIT CURL_DEPRECATED(8.3.0, "") = 5,
165165
CURLSSLBACKEND_POLARSSL CURL_DEPRECATED(7.69.0, "") = 6,
166166
CURLSSLBACKEND_WOLFSSL = 7,
167167
CURLSSLBACKEND_SCHANNEL = 8,
@@ -2824,8 +2824,8 @@ CURL_EXTERN void curl_slist_free_all(struct curl_slist *list);
28242824
*/
28252825
CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused);
28262826

2827-
/* info about the certificate chain, only for OpenSSL, GnuTLS, Schannel, NSS
2828-
and GSKit builds. Asked for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */
2827+
/* info about the certificate chain, only for OpenSSL, GnuTLS, Schannel and
2828+
NSS builds. Asked for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */
28292829
struct curl_certinfo {
28302830
int num_of_certs; /* number of certificates with information */
28312831
struct curl_slist **certinfo; /* for each index in this array, there's a

lib/Makefile.inc

-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ LIB_VAUTH_HFILES = \
4444

4545
LIB_VTLS_CFILES = \
4646
vtls/bearssl.c \
47-
vtls/gskit.c \
4847
vtls/gtls.c \
4948
vtls/hostcheck.c \
5049
vtls/keylog.c \
@@ -61,7 +60,6 @@ LIB_VTLS_CFILES = \
6160

6261
LIB_VTLS_HFILES = \
6362
vtls/bearssl.h \
64-
vtls/gskit.h \
6563
vtls/gtls.h \
6664
vtls/hostcheck.h \
6765
vtls/keylog.h \

lib/config-os400.h

-3
Original file line numberDiff line numberDiff line change
@@ -338,9 +338,6 @@
338338
/* Define to the function return type for send. */
339339
#define SEND_TYPE_RETV int
340340

341-
/* Define to use the GSKit package. */
342-
#define USE_GSKIT
343-
344341
/* Define to use the OS/400 crypto library. */
345342
#define USE_OS400CRYPTO
346343

lib/curl_setup.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,7 @@
647647

648648
#if defined(USE_GNUTLS) || defined(USE_OPENSSL) || defined(USE_MBEDTLS) || \
649649
defined(USE_WOLFSSL) || defined(USE_SCHANNEL) || defined(USE_SECTRANSP) || \
650-
defined(USE_GSKIT) || defined(USE_BEARSSL) || defined(USE_RUSTLS)
650+
defined(USE_BEARSSL) || defined(USE_RUSTLS)
651651
#define USE_SSL /* SSL support has been enabled */
652652
#endif
653653

lib/rand.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ static CURLcode randit(struct Curl_easy *data, unsigned int *rnd)
188188
* 'rnd' points to.
189189
*
190190
* If libcurl is built without TLS support or with a TLS backend that lacks a
191-
* proper random API (rustls, Gskit or mbedTLS), this function will use "weak"
191+
* proper random API (rustls or mbedTLS), this function will use "weak"
192192
* random.
193193
*
194194
* When built *with* TLS support and a backend that offers strong random, it

lib/rand.h

-14
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,6 @@
2424
*
2525
***************************************************************************/
2626

27-
/*
28-
* Curl_rand() stores 'num' number of random unsigned characters in the buffer
29-
* 'rnd' points to.
30-
*
31-
* If libcurl is built without TLS support or with a TLS backend that lacks a
32-
* proper random API (Gskit or mbedTLS), this function will use "weak" random.
33-
*
34-
* When built *with* TLS support and a backend that offers strong random, it
35-
* will return error if it cannot provide strong random values.
36-
*
37-
* NOTE: 'data' may be passed in as NULL when coming from external API without
38-
* easy handle!
39-
*
40-
*/
4127
CURLcode Curl_rand(struct Curl_easy *data, unsigned char *rnd, size_t num);
4228

4329
/*

0 commit comments

Comments
 (0)