Skip to content

Commit 99e8814

Browse files
committed
gtls: Add P12 format support
This change adds P12 format support for GnuTLS backend.
1 parent dff6619 commit 99e8814

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

lib/vtls/gtls.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -936,7 +936,19 @@ static CURLcode gtls_client_init(struct Curl_cfilter *cf,
936936
if(result)
937937
return result;
938938
}
939-
if(ssl_config->key_passwd) {
939+
if(ssl_config->cert_type && strcasecompare(ssl_config->cert_type, "P12")) {
940+
rc = gnutls_certificate_set_x509_simple_pkcs12_file(
941+
gtls->shared_creds->creds, config->clientcert, GNUTLS_X509_FMT_DER,
942+
ssl_config->key_passwd ? ssl_config->key_passwd : "");
943+
if(rc != GNUTLS_E_SUCCESS) {
944+
failf(data,
945+
"error reading X.509 potentially-encrypted key or certificate "
946+
"file: %s",
947+
gnutls_strerror(rc));
948+
return CURLE_SSL_CONNECT_ERROR;
949+
}
950+
}
951+
else if(ssl_config->key_passwd) {
940952
const unsigned int supported_key_encryption_algorithms =
941953
GNUTLS_PKCS_USE_PKCS12_3DES | GNUTLS_PKCS_USE_PKCS12_ARCFOUR |
942954
GNUTLS_PKCS_USE_PKCS12_RC2_40 | GNUTLS_PKCS_USE_PBES2_3DES |

0 commit comments

Comments
 (0)