gnutls: Report actual GnuTLS error message for certificate errors
If GnuTLS fails to read the certificate then include whatever reason it provides in the failure message reported to the client. Signed-off-by: Mike Crowe <mac@mcrowe.com>
This commit is contained in:
parent
684bf30802
commit
5f87906e0e
@ -663,17 +663,18 @@ gtls_connect_step1(struct connectdata *conn,
|
|||||||
GNUTLS_PKCS_USE_PKCS12_RC2_40 | GNUTLS_PKCS_USE_PBES2_3DES |
|
GNUTLS_PKCS_USE_PKCS12_RC2_40 | GNUTLS_PKCS_USE_PBES2_3DES |
|
||||||
GNUTLS_PKCS_USE_PBES2_AES_128 | GNUTLS_PKCS_USE_PBES2_AES_192 |
|
GNUTLS_PKCS_USE_PBES2_AES_128 | GNUTLS_PKCS_USE_PBES2_AES_192 |
|
||||||
GNUTLS_PKCS_USE_PBES2_AES_256;
|
GNUTLS_PKCS_USE_PBES2_AES_256;
|
||||||
if(gnutls_certificate_set_x509_key_file2(
|
rc = gnutls_certificate_set_x509_key_file2(
|
||||||
conn->ssl[sockindex].cred,
|
conn->ssl[sockindex].cred,
|
||||||
data->set.str[STRING_CERT],
|
data->set.str[STRING_CERT],
|
||||||
data->set.str[STRING_KEY] ?
|
data->set.str[STRING_KEY] ?
|
||||||
data->set.str[STRING_KEY] : data->set.str[STRING_CERT],
|
data->set.str[STRING_KEY] : data->set.str[STRING_CERT],
|
||||||
do_file_type(data->set.str[STRING_CERT_TYPE]),
|
do_file_type(data->set.str[STRING_CERT_TYPE]),
|
||||||
data->set.str[STRING_KEY_PASSWD],
|
data->set.str[STRING_KEY_PASSWD],
|
||||||
supported_key_encryption_algorithms) !=
|
supported_key_encryption_algorithms);
|
||||||
GNUTLS_E_SUCCESS) {
|
if(rc != GNUTLS_E_SUCCESS) {
|
||||||
failf(data,
|
failf(data,
|
||||||
"error reading X.509 potentially-encrypted key file");
|
"error reading X.509 potentially-encrypted key file: %s",
|
||||||
|
gnutls_strerror(rc));
|
||||||
return CURLE_SSL_CONNECT_ERROR;
|
return CURLE_SSL_CONNECT_ERROR;
|
||||||
#else
|
#else
|
||||||
failf(data, "gnutls lacks support for encrypted key files");
|
failf(data, "gnutls lacks support for encrypted key files");
|
||||||
@ -682,14 +683,15 @@ gtls_connect_step1(struct connectdata *conn,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(gnutls_certificate_set_x509_key_file(
|
rc = gnutls_certificate_set_x509_key_file(
|
||||||
conn->ssl[sockindex].cred,
|
conn->ssl[sockindex].cred,
|
||||||
data->set.str[STRING_CERT],
|
data->set.str[STRING_CERT],
|
||||||
data->set.str[STRING_KEY] ?
|
data->set.str[STRING_KEY] ?
|
||||||
data->set.str[STRING_KEY] : data->set.str[STRING_CERT],
|
data->set.str[STRING_KEY] : data->set.str[STRING_CERT],
|
||||||
do_file_type(data->set.str[STRING_CERT_TYPE]) ) !=
|
do_file_type(data->set.str[STRING_CERT_TYPE]) );
|
||||||
GNUTLS_E_SUCCESS) {
|
if(rc != GNUTLS_E_SUCCESS) {
|
||||||
failf(data, "error reading X.509 key or certificate file");
|
failf(data, "error reading X.509 key or certificate file: %s",
|
||||||
|
gnutls_strerror(rc));
|
||||||
return CURLE_SSL_CONNECT_ERROR;
|
return CURLE_SSL_CONNECT_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user