patch-src_verify_c 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. --- stunnel-5.31.orig/src/verify.c 2016-02-19 20:18:43.000000000 +0100
  2. +++ stunnel-5.31/src/verify.c 2016-03-13 13:30:11.000000000 +0100
  3. @@ -51,9 +51,6 @@ NOEXPORT int add_dir_lookup(X509_STORE *
  4. NOEXPORT int verify_callback(int, X509_STORE_CTX *);
  5. NOEXPORT int verify_checks(CLI *, int, X509_STORE_CTX *);
  6. NOEXPORT int cert_check(CLI *, X509_STORE_CTX *, int);
  7. -#if OPENSSL_VERSION_NUMBER>=0x10002000L
  8. -NOEXPORT int cert_check_subject(CLI *, X509_STORE_CTX *);
  9. -#endif /* OPENSSL_VERSION_NUMBER>=0x10002000L */
  10. NOEXPORT int cert_check_local(X509_STORE_CTX *);
  11. NOEXPORT int compare_pubkeys(X509 *, X509 *);
  12. #ifndef OPENSSL_NO_OCSP
  13. @@ -274,10 +271,6 @@ NOEXPORT int cert_check(CLI *c, X509_STO
  14. }
  15. if(depth==0) { /* additional peer certificate checks */
  16. -#if OPENSSL_VERSION_NUMBER>=0x10002000L
  17. - if(!cert_check_subject(c, callback_ctx))
  18. - return 0; /* reject */
  19. -#endif /* OPENSSL_VERSION_NUMBER>=0x10002000L */
  20. if(c->opt->verify_level>=3 && !cert_check_local(callback_ctx))
  21. return 0; /* reject */
  22. }
  23. @@ -285,51 +278,6 @@ NOEXPORT int cert_check(CLI *c, X509_STO
  24. return 1; /* accept */
  25. }
  26. -#if OPENSSL_VERSION_NUMBER>=0x10002000L
  27. -NOEXPORT int cert_check_subject(CLI *c, X509_STORE_CTX *callback_ctx) {
  28. - X509 *cert=X509_STORE_CTX_get_current_cert(callback_ctx);
  29. - NAME_LIST *ptr;
  30. - char *peername=NULL;
  31. -
  32. - if(c->opt->check_host) {
  33. - for(ptr=c->opt->check_host; ptr; ptr=ptr->next)
  34. - if(X509_check_host(cert, ptr->name, 0, 0, &peername)>0)
  35. - break;
  36. - if(!ptr) {
  37. - s_log(LOG_WARNING, "CERT: No matching host name found");
  38. - return 0; /* reject */
  39. - }
  40. - s_log(LOG_INFO, "CERT: Host name \"%s\" matched with \"%s\"",
  41. - ptr->name, peername);
  42. - OPENSSL_free(peername);
  43. - }
  44. -
  45. - if(c->opt->check_email) {
  46. - for(ptr=c->opt->check_email; ptr; ptr=ptr->next)
  47. - if(X509_check_email(cert, ptr->name, 0, 0)>0)
  48. - break;
  49. - if(!ptr) {
  50. - s_log(LOG_WARNING, "CERT: No matching email address found");
  51. - return 0; /* reject */
  52. - }
  53. - s_log(LOG_INFO, "CERT: Email address \"%s\" matched", ptr->name);
  54. - }
  55. -
  56. - if(c->opt->check_ip) {
  57. - for(ptr=c->opt->check_ip; ptr; ptr=ptr->next)
  58. - if(X509_check_ip_asc(cert, ptr->name, 0)>0)
  59. - break;
  60. - if(!ptr) {
  61. - s_log(LOG_WARNING, "CERT: No matching IP address found");
  62. - return 0; /* reject */
  63. - }
  64. - s_log(LOG_INFO, "CERT: IP address \"%s\" matched", ptr->name);
  65. - }
  66. -
  67. - return 1; /* accept */
  68. -}
  69. -#endif /* OPENSSL_VERSION_NUMBER>=0x10002000L */
  70. -
  71. NOEXPORT int cert_check_local(X509_STORE_CTX *callback_ctx) {
  72. X509 *cert;
  73. X509_NAME *subject;