Commit 40c509b9f0501dfc6c517a04e4546dce4918e0ec
1 parent
ecc33412
Exists in
master
and in
3 other branches
Updating windows crl downloader.
Showing
2 changed files
with
25 additions
and
36 deletions
Show diff stats
src/lib3270/ssl/linux/getcrl.c
| @@ -242,13 +242,13 @@ int lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -242,13 +242,13 @@ int lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 242 | message->error = hSession->ssl.error = 0; | 242 | message->error = hSession->ssl.error = 0; |
| 243 | message->title = N_( "Security error" ); | 243 | message->title = N_( "Security error" ); |
| 244 | message->text = N_( "Can't open CRL File" ); | 244 | message->text = N_( "Can't open CRL File" ); |
| 245 | - message->description = strerror(errno); | ||
| 246 | - lib3270_write_log(hSession,"ssl","Can't open %s: %s",consturl,message->description); | 245 | + message->description = strerror(err); |
| 246 | + trace_ssl(hSession,"Can't open %s: %s\n",consturl,message->description); | ||
| 247 | return err; | 247 | return err; |
| 248 | 248 | ||
| 249 | } | 249 | } |
| 250 | 250 | ||
| 251 | - lib3270_write_log(hSession,"ssl","Loading CRL from %s",consturl+7); | 251 | + trace_ssl(hSession,"Loading CRL from %s\n",consturl+7); |
| 252 | d2i_X509_CRL_fp(hCRL, &hSession->ssl.crl.cert); | 252 | d2i_X509_CRL_fp(hCRL, &hSession->ssl.crl.cert); |
| 253 | 253 | ||
| 254 | } | 254 | } |
src/lib3270/ssl/windows/getcrl.c
| @@ -181,9 +181,8 @@ static int internal_curl_trace_callback(CURL *handle unused, curl_infotype type, | @@ -181,9 +181,8 @@ static int internal_curl_trace_callback(CURL *handle unused, curl_infotype type, | ||
| 181 | #endif // HAVE_LIBCURL | 181 | #endif // HAVE_LIBCURL |
| 182 | 182 | ||
| 183 | 183 | ||
| 184 | -X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | 184 | +int lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) |
| 185 | { | 185 | { |
| 186 | - X509_CRL * crl = NULL; | ||
| 187 | const char * consturl = lib3270_get_crl_url(hSession); | 186 | const char * consturl = lib3270_get_crl_url(hSession); |
| 188 | 187 | ||
| 189 | if(!(consturl && *consturl)) | 188 | if(!(consturl && *consturl)) |
| @@ -192,7 +191,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -192,7 +191,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 192 | message->title = N_( "Security error" ); | 191 | message->title = N_( "Security error" ); |
| 193 | message->text = N_( "Can't open CRL File" ); | 192 | message->text = N_( "Can't open CRL File" ); |
| 194 | message->description = N_("The URL for the CRL is undefined or empty"); | 193 | message->description = N_("The URL for the CRL is undefined or empty"); |
| 195 | - return NULL; | 194 | + return errno = ENOENT; |
| 196 | } | 195 | } |
| 197 | 196 | ||
| 198 | trace_ssl(hSession, "crl=%s\n",consturl); | 197 | trace_ssl(hSession, "crl=%s\n",consturl); |
| @@ -204,17 +203,19 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -204,17 +203,19 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 204 | if(!hCRL) | 203 | if(!hCRL) |
| 205 | { | 204 | { |
| 206 | // Can't open CRL File. | 205 | // Can't open CRL File. |
| 206 | + int err = errno; | ||
| 207 | + | ||
| 207 | message->error = hSession->ssl.error = 0; | 208 | message->error = hSession->ssl.error = 0; |
| 208 | message->title = N_( "Security error" ); | 209 | message->title = N_( "Security error" ); |
| 209 | message->text = N_( "Can't open CRL File" ); | 210 | message->text = N_( "Can't open CRL File" ); |
| 210 | - message->description = strerror(errno); | ||
| 211 | - lib3270_write_log(hSession,"ssl","Can't open %s: %s",consturl,message->description); | ||
| 212 | - return NULL; | 211 | + message->description = strerror(err); |
| 212 | + trace_ssl(hSession,"Can't open %s: %s\n",consturl,message->description); | ||
| 213 | + return err; | ||
| 213 | 214 | ||
| 214 | } | 215 | } |
| 215 | 216 | ||
| 216 | - lib3270_write_log(hSession,"ssl","Loading CRL from %s",consturl+7); | ||
| 217 | - d2i_X509_CRL_fp(hCRL, &crl); | 217 | + trace_ssl(hSession,"Loading CRL from %s\n",consturl+7); |
| 218 | + d2i_X509_CRL_fp(hCRL, &hSession->ssl.crl.cert); | ||
| 218 | 219 | ||
| 219 | } | 220 | } |
| 220 | else | 221 | else |
| @@ -237,7 +238,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -237,7 +238,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 237 | message->title = N_( "Security error" ); | 238 | message->title = N_( "Security error" ); |
| 238 | message->text = N_( "Can't initialize curl" ); | 239 | message->text = N_( "Can't initialize curl" ); |
| 239 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text); | 240 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text); |
| 240 | - return NULL; | 241 | + return -1; |
| 241 | } | 242 | } |
| 242 | 243 | ||
| 243 | CURLcode res; | 244 | CURLcode res; |
| @@ -278,7 +279,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -278,7 +279,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 278 | } | 279 | } |
| 279 | 280 | ||
| 280 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description); | 281 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description); |
| 281 | - return NULL; | 282 | + return -1; |
| 282 | } | 283 | } |
| 283 | 284 | ||
| 284 | debug("Tamanho da resposta: %u", (unsigned int) crl_data->length); | 285 | debug("Tamanho da resposta: %u", (unsigned int) crl_data->length); |
| @@ -293,21 +294,8 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -293,21 +294,8 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 293 | message->text = N_( "Error loading CRL" ); | 294 | message->text = N_( "Error loading CRL" ); |
| 294 | message->description = curl_easy_strerror(res); | 295 | message->description = curl_easy_strerror(res); |
| 295 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description); | 296 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description); |
| 296 | - return NULL; | ||
| 297 | - } | ||
| 298 | - | ||
| 299 | - /* | ||
| 300 | - if(lib3270_get_toggle(data->hSession,LIB3270_TOGGLE_SSL_TRACE)) | ||
| 301 | - { | ||
| 302 | - lib3270_autoptr(msg) = lib3270_vsprintf("CRL Data received with content-type \"%s\"", (ct ? ct : "undefined")); | ||
| 303 | - lib3270_trace_data( | ||
| 304 | - data->hSession, | ||
| 305 | - msg, | ||
| 306 | - (const char *) crl_data->contents, | ||
| 307 | - crl_data->length | ||
| 308 | - ); | 297 | + return -1; |
| 309 | } | 298 | } |
| 310 | - */ | ||
| 311 | 299 | ||
| 312 | if(ct) | 300 | if(ct) |
| 313 | { | 301 | { |
| @@ -318,13 +306,13 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -318,13 +306,13 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 318 | if(strcasecmp(ct,"application/pkix-crl") == 0) | 306 | if(strcasecmp(ct,"application/pkix-crl") == 0) |
| 319 | { | 307 | { |
| 320 | // CRL File, convert it | 308 | // CRL File, convert it |
| 321 | - if(!d2i_X509_CRL(&crl, &data, crl_data->length)) | 309 | + if(!d2i_X509_CRL(&hSession->ssl.crl.cert, &data, crl_data->length)) |
| 322 | { | 310 | { |
| 323 | message->error = hSession->ssl.error = ERR_get_error(); | 311 | message->error = hSession->ssl.error = ERR_get_error(); |
| 324 | message->title = N_( "Security error" ); | 312 | message->title = N_( "Security error" ); |
| 325 | message->text = N_( "Got an invalid CRL from server" ); | 313 | message->text = N_( "Got an invalid CRL from server" ); |
| 326 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text); | 314 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text); |
| 327 | - return NULL; | 315 | + return -1; |
| 328 | } | 316 | } |
| 329 | } | 317 | } |
| 330 | else | 318 | else |
| @@ -333,7 +321,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -333,7 +321,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 333 | message->title = N_( "Security error" ); | 321 | message->title = N_( "Security error" ); |
| 334 | message->text = N_( "Got an invalid CRL from server" ); | 322 | message->text = N_( "Got an invalid CRL from server" ); |
| 335 | lib3270_write_log(hSession,"ssl","%s: content-type unexpected: \"%s\"",consturl, ct); | 323 | lib3270_write_log(hSession,"ssl","%s: content-type unexpected: \"%s\"",consturl, ct); |
| 336 | - return NULL; | 324 | + return -1; |
| 337 | } | 325 | } |
| 338 | } | 326 | } |
| 339 | else if(strncasecmp(consturl,"ldap://",7) == 0) | 327 | else if(strncasecmp(consturl,"ldap://",7) == 0) |
| @@ -345,7 +333,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -345,7 +333,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 345 | message->error = hSession->ssl.error = 0; | 333 | message->error = hSession->ssl.error = 0; |
| 346 | message->title = N_( "Security error" ); | 334 | message->title = N_( "Security error" ); |
| 347 | message->text = N_( "No attribute in LDAP search URL" ); | 335 | message->text = N_( "No attribute in LDAP search URL" ); |
| 348 | - return NULL; | 336 | + return errno = ENOENT; |
| 349 | } | 337 | } |
| 350 | 338 | ||
| 351 | attr++; | 339 | attr++; |
| @@ -370,7 +358,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -370,7 +358,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 370 | message->error = hSession->ssl.error = 0; | 358 | message->error = hSession->ssl.error = 0; |
| 371 | message->title = N_( "Security error" ); | 359 | message->title = N_( "Security error" ); |
| 372 | message->text = N_( "Can't find attribute in LDAP response" ); | 360 | message->text = N_( "Can't find attribute in LDAP response" ); |
| 373 | - return NULL; | 361 | + return errno = ENOENT; |
| 374 | } | 362 | } |
| 375 | 363 | ||
| 376 | ptr += strlen(key); | 364 | ptr += strlen(key); |
| @@ -390,7 +378,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -390,7 +378,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 390 | message->error = hSession->ssl.error = 0; | 378 | message->error = hSession->ssl.error = 0; |
| 391 | message->title = N_( "Security error" ); | 379 | message->title = N_( "Security error" ); |
| 392 | message->text = N_( "Can't find attribute end in LDAP response" ); | 380 | message->text = N_( "Can't find attribute end in LDAP response" ); |
| 393 | - return NULL; | 381 | + return errno = ENOENT; |
| 394 | } | 382 | } |
| 395 | 383 | ||
| 396 | length = ix; | 384 | length = ix; |
| @@ -405,12 +393,13 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -405,12 +393,13 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 405 | ); | 393 | ); |
| 406 | } | 394 | } |
| 407 | 395 | ||
| 408 | - if(!d2i_X509_CRL(&crl, (const unsigned char **) &ptr, length)) | 396 | + if(!d2i_X509_CRL(&hSession->ssl.crl.cert, (const unsigned char **) &ptr, length)) |
| 409 | { | 397 | { |
| 410 | message->error = hSession->ssl.error = ERR_get_error(); | 398 | message->error = hSession->ssl.error = ERR_get_error(); |
| 411 | message->title = N_( "Security error" ); | 399 | message->title = N_( "Security error" ); |
| 412 | message->text = N_( "Can't get CRL from LDAP Search" ); | 400 | message->text = N_( "Can't get CRL from LDAP Search" ); |
| 413 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text); | 401 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text); |
| 402 | + return -1; | ||
| 414 | } | 403 | } |
| 415 | 404 | ||
| 416 | } | 405 | } |
| @@ -422,12 +411,12 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -422,12 +411,12 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
| 422 | message->text = N_( "Unexpected or invalid CRL URL" ); | 411 | message->text = N_( "Unexpected or invalid CRL URL" ); |
| 423 | message->description = N_("The URL scheme is unknown"); | 412 | message->description = N_("The URL scheme is unknown"); |
| 424 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description); | 413 | lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description); |
| 425 | - return NULL; | 414 | + return errno= EINVAL; |
| 426 | #endif // HAVE_LIBCURL | 415 | #endif // HAVE_LIBCURL |
| 427 | 416 | ||
| 428 | } | 417 | } |
| 429 | 418 | ||
| 430 | - return crl; | 419 | + return hSession->ssl.crl.cert == NULL ? -1 : 0; |
| 431 | 420 | ||
| 432 | } | 421 | } |
| 433 | 422 |