diff options
Diffstat (limited to 'src/lib/libssl/ssl_lib.c')
-rw-r--r-- | src/lib/libssl/ssl_lib.c | 103 |
1 files changed, 60 insertions, 43 deletions
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index ee9a82d586..631229558f 100644 --- a/src/lib/libssl/ssl_lib.c +++ b/src/lib/libssl/ssl_lib.c | |||
@@ -121,6 +121,7 @@ | |||
121 | #include <openssl/objects.h> | 121 | #include <openssl/objects.h> |
122 | #include <openssl/lhash.h> | 122 | #include <openssl/lhash.h> |
123 | #include <openssl/x509v3.h> | 123 | #include <openssl/x509v3.h> |
124 | #include <openssl/fips.h> | ||
124 | 125 | ||
125 | const char *SSL_version_str=OPENSSL_VERSION_TEXT; | 126 | const char *SSL_version_str=OPENSSL_VERSION_TEXT; |
126 | 127 | ||
@@ -500,18 +501,18 @@ void SSL_set_bio(SSL *s,BIO *rbio,BIO *wbio) | |||
500 | s->wbio=wbio; | 501 | s->wbio=wbio; |
501 | } | 502 | } |
502 | 503 | ||
503 | BIO *SSL_get_rbio(SSL *s) | 504 | BIO *SSL_get_rbio(const SSL *s) |
504 | { return(s->rbio); } | 505 | { return(s->rbio); } |
505 | 506 | ||
506 | BIO *SSL_get_wbio(SSL *s) | 507 | BIO *SSL_get_wbio(const SSL *s) |
507 | { return(s->wbio); } | 508 | { return(s->wbio); } |
508 | 509 | ||
509 | int SSL_get_fd(SSL *s) | 510 | int SSL_get_fd(const SSL *s) |
510 | { | 511 | { |
511 | return(SSL_get_rfd(s)); | 512 | return(SSL_get_rfd(s)); |
512 | } | 513 | } |
513 | 514 | ||
514 | int SSL_get_rfd(SSL *s) | 515 | int SSL_get_rfd(const SSL *s) |
515 | { | 516 | { |
516 | int ret= -1; | 517 | int ret= -1; |
517 | BIO *b,*r; | 518 | BIO *b,*r; |
@@ -523,7 +524,7 @@ int SSL_get_rfd(SSL *s) | |||
523 | return(ret); | 524 | return(ret); |
524 | } | 525 | } |
525 | 526 | ||
526 | int SSL_get_wfd(SSL *s) | 527 | int SSL_get_wfd(const SSL *s) |
527 | { | 528 | { |
528 | int ret= -1; | 529 | int ret= -1; |
529 | BIO *b,*r; | 530 | BIO *b,*r; |
@@ -605,7 +606,7 @@ err: | |||
605 | 606 | ||
606 | 607 | ||
607 | /* return length of latest Finished message we sent, copy to 'buf' */ | 608 | /* return length of latest Finished message we sent, copy to 'buf' */ |
608 | size_t SSL_get_finished(SSL *s, void *buf, size_t count) | 609 | size_t SSL_get_finished(const SSL *s, void *buf, size_t count) |
609 | { | 610 | { |
610 | size_t ret = 0; | 611 | size_t ret = 0; |
611 | 612 | ||
@@ -620,7 +621,7 @@ size_t SSL_get_finished(SSL *s, void *buf, size_t count) | |||
620 | } | 621 | } |
621 | 622 | ||
622 | /* return length of latest Finished message we expected, copy to 'buf' */ | 623 | /* return length of latest Finished message we expected, copy to 'buf' */ |
623 | size_t SSL_get_peer_finished(SSL *s, void *buf, size_t count) | 624 | size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count) |
624 | { | 625 | { |
625 | size_t ret = 0; | 626 | size_t ret = 0; |
626 | 627 | ||
@@ -635,32 +636,32 @@ size_t SSL_get_peer_finished(SSL *s, void *buf, size_t count) | |||
635 | } | 636 | } |
636 | 637 | ||
637 | 638 | ||
638 | int SSL_get_verify_mode(SSL *s) | 639 | int SSL_get_verify_mode(const SSL *s) |
639 | { | 640 | { |
640 | return(s->verify_mode); | 641 | return(s->verify_mode); |
641 | } | 642 | } |
642 | 643 | ||
643 | int SSL_get_verify_depth(SSL *s) | 644 | int SSL_get_verify_depth(const SSL *s) |
644 | { | 645 | { |
645 | return(s->verify_depth); | 646 | return(s->verify_depth); |
646 | } | 647 | } |
647 | 648 | ||
648 | int (*SSL_get_verify_callback(SSL *s))(int,X509_STORE_CTX *) | 649 | int (*SSL_get_verify_callback(const SSL *s))(int,X509_STORE_CTX *) |
649 | { | 650 | { |
650 | return(s->verify_callback); | 651 | return(s->verify_callback); |
651 | } | 652 | } |
652 | 653 | ||
653 | int SSL_CTX_get_verify_mode(SSL_CTX *ctx) | 654 | int SSL_CTX_get_verify_mode(const SSL_CTX *ctx) |
654 | { | 655 | { |
655 | return(ctx->verify_mode); | 656 | return(ctx->verify_mode); |
656 | } | 657 | } |
657 | 658 | ||
658 | int SSL_CTX_get_verify_depth(SSL_CTX *ctx) | 659 | int SSL_CTX_get_verify_depth(const SSL_CTX *ctx) |
659 | { | 660 | { |
660 | return(ctx->verify_depth); | 661 | return(ctx->verify_depth); |
661 | } | 662 | } |
662 | 663 | ||
663 | int (*SSL_CTX_get_verify_callback(SSL_CTX *ctx))(int,X509_STORE_CTX *) | 664 | int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int,X509_STORE_CTX *) |
664 | { | 665 | { |
665 | return(ctx->default_verify_callback); | 666 | return(ctx->default_verify_callback); |
666 | } | 667 | } |
@@ -683,12 +684,12 @@ void SSL_set_read_ahead(SSL *s,int yes) | |||
683 | s->read_ahead=yes; | 684 | s->read_ahead=yes; |
684 | } | 685 | } |
685 | 686 | ||
686 | int SSL_get_read_ahead(SSL *s) | 687 | int SSL_get_read_ahead(const SSL *s) |
687 | { | 688 | { |
688 | return(s->read_ahead); | 689 | return(s->read_ahead); |
689 | } | 690 | } |
690 | 691 | ||
691 | int SSL_pending(SSL *s) | 692 | int SSL_pending(const SSL *s) |
692 | { | 693 | { |
693 | /* SSL_pending cannot work properly if read-ahead is enabled | 694 | /* SSL_pending cannot work properly if read-ahead is enabled |
694 | * (SSL_[CTX_]ctrl(..., SSL_CTRL_SET_READ_AHEAD, 1, NULL)), | 695 | * (SSL_[CTX_]ctrl(..., SSL_CTRL_SET_READ_AHEAD, 1, NULL)), |
@@ -700,7 +701,7 @@ int SSL_pending(SSL *s) | |||
700 | return(s->method->ssl_pending(s)); | 701 | return(s->method->ssl_pending(s)); |
701 | } | 702 | } |
702 | 703 | ||
703 | X509 *SSL_get_peer_certificate(SSL *s) | 704 | X509 *SSL_get_peer_certificate(const SSL *s) |
704 | { | 705 | { |
705 | X509 *r; | 706 | X509 *r; |
706 | 707 | ||
@@ -716,7 +717,7 @@ X509 *SSL_get_peer_certificate(SSL *s) | |||
716 | return(r); | 717 | return(r); |
717 | } | 718 | } |
718 | 719 | ||
719 | STACK_OF(X509) *SSL_get_peer_cert_chain(SSL *s) | 720 | STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s) |
720 | { | 721 | { |
721 | STACK_OF(X509) *r; | 722 | STACK_OF(X509) *r; |
722 | 723 | ||
@@ -733,7 +734,7 @@ STACK_OF(X509) *SSL_get_peer_cert_chain(SSL *s) | |||
733 | 734 | ||
734 | /* Now in theory, since the calling process own 't' it should be safe to | 735 | /* Now in theory, since the calling process own 't' it should be safe to |
735 | * modify. We need to be able to read f without being hassled */ | 736 | * modify. We need to be able to read f without being hassled */ |
736 | void SSL_copy_session_id(SSL *t,SSL *f) | 737 | void SSL_copy_session_id(SSL *t,const SSL *f) |
737 | { | 738 | { |
738 | CERT *tmp; | 739 | CERT *tmp; |
739 | 740 | ||
@@ -762,7 +763,7 @@ void SSL_copy_session_id(SSL *t,SSL *f) | |||
762 | } | 763 | } |
763 | 764 | ||
764 | /* Fix this so it checks all the valid key/cert options */ | 765 | /* Fix this so it checks all the valid key/cert options */ |
765 | int SSL_CTX_check_private_key(SSL_CTX *ctx) | 766 | int SSL_CTX_check_private_key(const SSL_CTX *ctx) |
766 | { | 767 | { |
767 | if ( (ctx == NULL) || | 768 | if ( (ctx == NULL) || |
768 | (ctx->cert == NULL) || | 769 | (ctx->cert == NULL) || |
@@ -780,7 +781,7 @@ int SSL_CTX_check_private_key(SSL_CTX *ctx) | |||
780 | } | 781 | } |
781 | 782 | ||
782 | /* Fix this function so that it takes an optional type parameter */ | 783 | /* Fix this function so that it takes an optional type parameter */ |
783 | int SSL_check_private_key(SSL *ssl) | 784 | int SSL_check_private_key(const SSL *ssl) |
784 | { | 785 | { |
785 | if (ssl == NULL) | 786 | if (ssl == NULL) |
786 | { | 787 | { |
@@ -824,7 +825,7 @@ int SSL_connect(SSL *s) | |||
824 | return(s->method->ssl_connect(s)); | 825 | return(s->method->ssl_connect(s)); |
825 | } | 826 | } |
826 | 827 | ||
827 | long SSL_get_default_timeout(SSL *s) | 828 | long SSL_get_default_timeout(const SSL *s) |
828 | { | 829 | { |
829 | return(s->method->get_timeout()); | 830 | return(s->method->get_timeout()); |
830 | } | 831 | } |
@@ -1071,7 +1072,7 @@ int ssl_cipher_ptr_id_cmp(const SSL_CIPHER * const *ap, | |||
1071 | 1072 | ||
1072 | /** return a STACK of the ciphers available for the SSL and in order of | 1073 | /** return a STACK of the ciphers available for the SSL and in order of |
1073 | * preference */ | 1074 | * preference */ |
1074 | STACK_OF(SSL_CIPHER) *SSL_get_ciphers(SSL *s) | 1075 | STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s) |
1075 | { | 1076 | { |
1076 | if (s != NULL) | 1077 | if (s != NULL) |
1077 | { | 1078 | { |
@@ -1108,7 +1109,7 @@ STACK_OF(SSL_CIPHER) *ssl_get_ciphers_by_id(SSL *s) | |||
1108 | } | 1109 | } |
1109 | 1110 | ||
1110 | /** The old interface to get the same thing as SSL_get_ciphers() */ | 1111 | /** The old interface to get the same thing as SSL_get_ciphers() */ |
1111 | const char *SSL_get_cipher_list(SSL *s,int n) | 1112 | const char *SSL_get_cipher_list(const SSL *s,int n) |
1112 | { | 1113 | { |
1113 | SSL_CIPHER *c; | 1114 | SSL_CIPHER *c; |
1114 | STACK_OF(SSL_CIPHER) *sk; | 1115 | STACK_OF(SSL_CIPHER) *sk; |
@@ -1145,7 +1146,7 @@ int SSL_set_cipher_list(SSL *s,const char *str) | |||
1145 | } | 1146 | } |
1146 | 1147 | ||
1147 | /* works well for SSLv2, not so good for SSLv3 */ | 1148 | /* works well for SSLv2, not so good for SSLv3 */ |
1148 | char *SSL_get_shared_ciphers(SSL *s,char *buf,int len) | 1149 | char *SSL_get_shared_ciphers(const SSL *s,char *buf,int len) |
1149 | { | 1150 | { |
1150 | char *p; | 1151 | char *p; |
1151 | const char *cp; | 1152 | const char *cp; |
@@ -1249,7 +1250,7 @@ err: | |||
1249 | return(NULL); | 1250 | return(NULL); |
1250 | } | 1251 | } |
1251 | 1252 | ||
1252 | unsigned long SSL_SESSION_hash(SSL_SESSION *a) | 1253 | unsigned long SSL_SESSION_hash(const SSL_SESSION *a) |
1253 | { | 1254 | { |
1254 | unsigned long l; | 1255 | unsigned long l; |
1255 | 1256 | ||
@@ -1266,7 +1267,7 @@ unsigned long SSL_SESSION_hash(SSL_SESSION *a) | |||
1266 | * SSL_CTX_has_matching_session_id() is checked accordingly. It relies on being | 1267 | * SSL_CTX_has_matching_session_id() is checked accordingly. It relies on being |
1267 | * able to construct an SSL_SESSION that will collide with any existing session | 1268 | * able to construct an SSL_SESSION that will collide with any existing session |
1268 | * with a matching session ID. */ | 1269 | * with a matching session ID. */ |
1269 | int SSL_SESSION_cmp(SSL_SESSION *a,SSL_SESSION *b) | 1270 | int SSL_SESSION_cmp(const SSL_SESSION *a,const SSL_SESSION *b) |
1270 | { | 1271 | { |
1271 | if (a->ssl_version != b->ssl_version) | 1272 | if (a->ssl_version != b->ssl_version) |
1272 | return(1); | 1273 | return(1); |
@@ -1292,6 +1293,14 @@ SSL_CTX *SSL_CTX_new(SSL_METHOD *meth) | |||
1292 | return(NULL); | 1293 | return(NULL); |
1293 | } | 1294 | } |
1294 | 1295 | ||
1296 | #ifdef OPENSSL_FIPS | ||
1297 | if (FIPS_mode() && (meth->version < TLS1_VERSION)) | ||
1298 | { | ||
1299 | SSLerr(SSL_F_SSL_CTX_NEW, SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE); | ||
1300 | return NULL; | ||
1301 | } | ||
1302 | #endif | ||
1303 | |||
1295 | if (SSL_get_ex_data_X509_STORE_CTX_idx() < 0) | 1304 | if (SSL_get_ex_data_X509_STORE_CTX_idx() < 0) |
1296 | { | 1305 | { |
1297 | SSLerr(SSL_F_SSL_CTX_NEW,SSL_R_X509_VERIFICATION_SETUP_PROBLEMS); | 1306 | SSLerr(SSL_F_SSL_CTX_NEW,SSL_R_X509_VERIFICATION_SETUP_PROBLEMS); |
@@ -1722,7 +1731,7 @@ int SSL_set_ssl_method(SSL *s,SSL_METHOD *meth) | |||
1722 | return(ret); | 1731 | return(ret); |
1723 | } | 1732 | } |
1724 | 1733 | ||
1725 | int SSL_get_error(SSL *s,int i) | 1734 | int SSL_get_error(const SSL *s,int i) |
1726 | { | 1735 | { |
1727 | int reason; | 1736 | int reason; |
1728 | unsigned long l; | 1737 | unsigned long l; |
@@ -1856,13 +1865,19 @@ int ssl_undefined_function(SSL *s) | |||
1856 | return(0); | 1865 | return(0); |
1857 | } | 1866 | } |
1858 | 1867 | ||
1868 | int ssl_undefined_const_function(const SSL *s) | ||
1869 | { | ||
1870 | SSLerr(SSL_F_SSL_UNDEFINED_CONST_FUNCTION,ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | ||
1871 | return(0); | ||
1872 | } | ||
1873 | |||
1859 | SSL_METHOD *ssl_bad_method(int ver) | 1874 | SSL_METHOD *ssl_bad_method(int ver) |
1860 | { | 1875 | { |
1861 | SSLerr(SSL_F_SSL_BAD_METHOD,ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 1876 | SSLerr(SSL_F_SSL_BAD_METHOD,ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
1862 | return(NULL); | 1877 | return(NULL); |
1863 | } | 1878 | } |
1864 | 1879 | ||
1865 | const char *SSL_get_version(SSL *s) | 1880 | const char *SSL_get_version(const SSL *s) |
1866 | { | 1881 | { |
1867 | if (s->version == TLS1_VERSION) | 1882 | if (s->version == TLS1_VERSION) |
1868 | return("TLSv1"); | 1883 | return("TLSv1"); |
@@ -2031,7 +2046,7 @@ void ssl_clear_cipher_ctx(SSL *s) | |||
2031 | } | 2046 | } |
2032 | 2047 | ||
2033 | /* Fix this function so that it takes an optional type parameter */ | 2048 | /* Fix this function so that it takes an optional type parameter */ |
2034 | X509 *SSL_get_certificate(SSL *s) | 2049 | X509 *SSL_get_certificate(const SSL *s) |
2035 | { | 2050 | { |
2036 | if (s->cert != NULL) | 2051 | if (s->cert != NULL) |
2037 | return(s->cert->key->x509); | 2052 | return(s->cert->key->x509); |
@@ -2048,7 +2063,7 @@ EVP_PKEY *SSL_get_privatekey(SSL *s) | |||
2048 | return(NULL); | 2063 | return(NULL); |
2049 | } | 2064 | } |
2050 | 2065 | ||
2051 | SSL_CIPHER *SSL_get_current_cipher(SSL *s) | 2066 | SSL_CIPHER *SSL_get_current_cipher(const SSL *s) |
2052 | { | 2067 | { |
2053 | if ((s->session != NULL) && (s->session->cipher != NULL)) | 2068 | if ((s->session != NULL) && (s->session->cipher != NULL)) |
2054 | return(s->session->cipher); | 2069 | return(s->session->cipher); |
@@ -2112,7 +2127,7 @@ void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx,int mode) | |||
2112 | ctx->quiet_shutdown=mode; | 2127 | ctx->quiet_shutdown=mode; |
2113 | } | 2128 | } |
2114 | 2129 | ||
2115 | int SSL_CTX_get_quiet_shutdown(SSL_CTX *ctx) | 2130 | int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx) |
2116 | { | 2131 | { |
2117 | return(ctx->quiet_shutdown); | 2132 | return(ctx->quiet_shutdown); |
2118 | } | 2133 | } |
@@ -2122,7 +2137,7 @@ void SSL_set_quiet_shutdown(SSL *s,int mode) | |||
2122 | s->quiet_shutdown=mode; | 2137 | s->quiet_shutdown=mode; |
2123 | } | 2138 | } |
2124 | 2139 | ||
2125 | int SSL_get_quiet_shutdown(SSL *s) | 2140 | int SSL_get_quiet_shutdown(const SSL *s) |
2126 | { | 2141 | { |
2127 | return(s->quiet_shutdown); | 2142 | return(s->quiet_shutdown); |
2128 | } | 2143 | } |
@@ -2132,17 +2147,17 @@ void SSL_set_shutdown(SSL *s,int mode) | |||
2132 | s->shutdown=mode; | 2147 | s->shutdown=mode; |
2133 | } | 2148 | } |
2134 | 2149 | ||
2135 | int SSL_get_shutdown(SSL *s) | 2150 | int SSL_get_shutdown(const SSL *s) |
2136 | { | 2151 | { |
2137 | return(s->shutdown); | 2152 | return(s->shutdown); |
2138 | } | 2153 | } |
2139 | 2154 | ||
2140 | int SSL_version(SSL *s) | 2155 | int SSL_version(const SSL *s) |
2141 | { | 2156 | { |
2142 | return(s->version); | 2157 | return(s->version); |
2143 | } | 2158 | } |
2144 | 2159 | ||
2145 | SSL_CTX *SSL_get_SSL_CTX(SSL *ssl) | 2160 | SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl) |
2146 | { | 2161 | { |
2147 | return(ssl->ctx); | 2162 | return(ssl->ctx); |
2148 | } | 2163 | } |
@@ -2156,7 +2171,9 @@ int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx) | |||
2156 | int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, | 2171 | int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, |
2157 | const char *CApath) | 2172 | const char *CApath) |
2158 | { | 2173 | { |
2159 | return(X509_STORE_load_locations(ctx->cert_store,CAfile,CApath)); | 2174 | int r; |
2175 | r=X509_STORE_load_locations(ctx->cert_store,CAfile,CApath); | ||
2176 | return r; | ||
2160 | } | 2177 | } |
2161 | #endif | 2178 | #endif |
2162 | 2179 | ||
@@ -2166,12 +2183,12 @@ void SSL_set_info_callback(SSL *ssl, | |||
2166 | ssl->info_callback=cb; | 2183 | ssl->info_callback=cb; |
2167 | } | 2184 | } |
2168 | 2185 | ||
2169 | void (*SSL_get_info_callback(SSL *ssl))(const SSL *ssl,int type,int val) | 2186 | void (*SSL_get_info_callback(const SSL *ssl))(const SSL *ssl,int type,int val) |
2170 | { | 2187 | { |
2171 | return ssl->info_callback; | 2188 | return ssl->info_callback; |
2172 | } | 2189 | } |
2173 | 2190 | ||
2174 | int SSL_state(SSL *ssl) | 2191 | int SSL_state(const SSL *ssl) |
2175 | { | 2192 | { |
2176 | return(ssl->state); | 2193 | return(ssl->state); |
2177 | } | 2194 | } |
@@ -2181,7 +2198,7 @@ void SSL_set_verify_result(SSL *ssl,long arg) | |||
2181 | ssl->verify_result=arg; | 2198 | ssl->verify_result=arg; |
2182 | } | 2199 | } |
2183 | 2200 | ||
2184 | long SSL_get_verify_result(SSL *ssl) | 2201 | long SSL_get_verify_result(const SSL *ssl) |
2185 | { | 2202 | { |
2186 | return(ssl->verify_result); | 2203 | return(ssl->verify_result); |
2187 | } | 2204 | } |
@@ -2198,7 +2215,7 @@ int SSL_set_ex_data(SSL *s,int idx,void *arg) | |||
2198 | return(CRYPTO_set_ex_data(&s->ex_data,idx,arg)); | 2215 | return(CRYPTO_set_ex_data(&s->ex_data,idx,arg)); |
2199 | } | 2216 | } |
2200 | 2217 | ||
2201 | void *SSL_get_ex_data(SSL *s,int idx) | 2218 | void *SSL_get_ex_data(const SSL *s,int idx) |
2202 | { | 2219 | { |
2203 | return(CRYPTO_get_ex_data(&s->ex_data,idx)); | 2220 | return(CRYPTO_get_ex_data(&s->ex_data,idx)); |
2204 | } | 2221 | } |
@@ -2215,7 +2232,7 @@ int SSL_CTX_set_ex_data(SSL_CTX *s,int idx,void *arg) | |||
2215 | return(CRYPTO_set_ex_data(&s->ex_data,idx,arg)); | 2232 | return(CRYPTO_set_ex_data(&s->ex_data,idx,arg)); |
2216 | } | 2233 | } |
2217 | 2234 | ||
2218 | void *SSL_CTX_get_ex_data(SSL_CTX *s,int idx) | 2235 | void *SSL_CTX_get_ex_data(const SSL_CTX *s,int idx) |
2219 | { | 2236 | { |
2220 | return(CRYPTO_get_ex_data(&s->ex_data,idx)); | 2237 | return(CRYPTO_get_ex_data(&s->ex_data,idx)); |
2221 | } | 2238 | } |
@@ -2225,7 +2242,7 @@ int ssl_ok(SSL *s) | |||
2225 | return(1); | 2242 | return(1); |
2226 | } | 2243 | } |
2227 | 2244 | ||
2228 | X509_STORE *SSL_CTX_get_cert_store(SSL_CTX *ctx) | 2245 | X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *ctx) |
2229 | { | 2246 | { |
2230 | return(ctx->cert_store); | 2247 | return(ctx->cert_store); |
2231 | } | 2248 | } |
@@ -2237,7 +2254,7 @@ void SSL_CTX_set_cert_store(SSL_CTX *ctx,X509_STORE *store) | |||
2237 | ctx->cert_store=store; | 2254 | ctx->cert_store=store; |
2238 | } | 2255 | } |
2239 | 2256 | ||
2240 | int SSL_want(SSL *s) | 2257 | int SSL_want(const SSL *s) |
2241 | { | 2258 | { |
2242 | return(s->rwstate); | 2259 | return(s->rwstate); |
2243 | } | 2260 | } |