Let the TLSv1_method() etc. functions return a const SSL_METHOD
authorNils Larsch <nils@openssl.org>
Sun, 14 Aug 2005 21:48:33 +0000 (21:48 +0000)
committerNils Larsch <nils@openssl.org>
Sun, 14 Aug 2005 21:48:33 +0000 (21:48 +0000)
pointer and make the SSL_METHOD parameter in SSL_CTX_new,
SSL_CTX_set_ssl_version and SSL_set_ssl_method const.

28 files changed:
CHANGES
apps/ciphers.c
apps/s_client.c
apps/s_server.c
apps/s_time.c
doc/ssl/SSL_CTX_new.pod
doc/ssl/SSL_CTX_set_ssl_version.pod
doc/ssl/ssl.pod
ssl/d1_clnt.c
ssl/d1_meth.c
ssl/d1_srvr.c
ssl/s23_clnt.c
ssl/s23_meth.c
ssl/s23_srvr.c
ssl/s2_clnt.c
ssl/s2_meth.c
ssl/s2_srvr.c
ssl/s3_clnt.c
ssl/s3_meth.c
ssl/s3_srvr.c
ssl/ssl.h
ssl/ssl_lib.c
ssl/ssl_locl.h
ssl/ssl_sess.c
ssl/ssltest.c
ssl/t1_clnt.c
ssl/t1_meth.c
ssl/t1_srvr.c

diff --git a/CHANGES b/CHANGES
index bc7e0709e0f2094bee9c393c79f503e1c981db65..1bc6180b3e610c294b8b40e9a5c342bd5126c90d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,11 @@
 
  Changes between 0.9.8 and 0.9.9  [xx XXX xxxx]
 
+  *) Let the TLSv1_method() etc. functions return a 'const' SSL_METHOD
+     pointer and make the SSL_METHOD parameter in SSL_CTX_new,
+     SSL_CTX_set_ssl_version and SSL_set_ssl_method 'const'.
+     [Nils Larsch]
+
   *) Modify CRL distribution points extension code to print out previously
      unsupported fields. Enhance extension setting code to allow setting of
      all fields.
index 43f0ac594ad4b7b0b50683ffbc3986abf27f441d..f5e8700a0103127ced77063ec04650e4b1c80e96 100644 (file)
@@ -90,7 +90,7 @@ int MAIN(int argc, char **argv)
        SSL_CTX *ctx=NULL;
        SSL *ssl=NULL;
        char *ciphers=NULL;
-       SSL_METHOD *meth=NULL;
+       const SSL_METHOD *meth=NULL;
        STACK_OF(SSL_CIPHER) *sk;
        char buf[512];
        BIO *STDout=NULL;
index b22f3196e6de1295fae016093cb8d7aea84e8815..6478ae321a6c35de8a3992ac782d8390a8e9daae 100644 (file)
@@ -262,7 +262,7 @@ int MAIN(int argc, char **argv)
        int ret=1,in_init=1,i,nbio_test=0;
        int starttls_proto = 0;
        int prexit = 0, vflags = 0;
-       SSL_METHOD *meth=NULL;
+       const SSL_METHOD *meth=NULL;
 #ifdef sock_type
 #undef sock_type
 #endif
index f83dd82343c7be13fc7e4932a6451d6f0c6cf9fa..41b9736025b8da01a960882b5defd31054695dc3 100644 (file)
@@ -544,7 +544,7 @@ int MAIN(int argc, char *argv[])
        int off=0;
        int no_tmp_rsa=0,no_dhe=0,no_ecdhe=0,nocert=0;
        int state=0;
-       SSL_METHOD *meth=NULL;
+       const SSL_METHOD *meth=NULL;
 #ifdef sock_type
 #undef sock_type
 #endif
index 904945e1a866a38a778b8f80a852a9e5abfed7da..606de54a864749a9247548735f537104806bdf6b 100644 (file)
@@ -177,7 +177,7 @@ static char *tm_cipher=NULL;
 static int tm_verify = SSL_VERIFY_NONE;
 static int maxTime = SECONDS;
 static SSL_CTX *tm_ctx=NULL;
-static SSL_METHOD *s_time_meth=NULL;
+static const SSL_METHOD *s_time_meth=NULL;
 static char *s_www_path=NULL;
 static long bytes_read=0; 
 static int st_bugs=0;
index 465220a75c0a8990a6d7166ea13b72712d6f9dab..73e8c47f9a2e261819a30d68aeabbe45cbe942b4 100644 (file)
@@ -8,7 +8,7 @@ SSL_CTX_new - create a new SSL_CTX object as framework for TLS/SSL enabled funct
 
  #include <openssl/ssl.h>
 
- SSL_CTX *SSL_CTX_new(SSL_METHOD *method);
+ SSL_CTX *SSL_CTX_new(const SSL_METHOD *method);
 
 =head1 DESCRIPTION
 
index 002018096551b9eec08269ffcb972d3ab03ac926..254f2b4397fa6594ffed4cf19f471c47780b2088 100644 (file)
@@ -9,9 +9,9 @@ SSL_CTX_set_ssl_version, SSL_set_ssl_method, SSL_get_ssl_method
 
  #include <openssl/ssl.h>
 
- int SSL_CTX_set_ssl_version(SSL_CTX *ctx, SSL_METHOD *method);
- int SSL_set_ssl_method(SSL *s, SSL_METHOD *method);
- SSL_METHOD *SSL_get_ssl_method(SSL *ssl);
+ int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *method);
+ int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method);
const SSL_METHOD *SSL_get_ssl_method(SSL *ssl);
 
 =head1 DESCRIPTION
 
index 266697d2216416f7e2bb7c02dfd5a1dadc9c8e25..8391c66650023c58b788c64d24aa86490de73838 100644 (file)
@@ -130,39 +130,39 @@ protocol methods defined in B<SSL_METHOD> structures.
 
 =over 4
 
-=item SSL_METHOD *B<SSLv2_client_method>(void);
+=item const SSL_METHOD *B<SSLv2_client_method>(void);
 
 Constructor for the SSLv2 SSL_METHOD structure for a dedicated client.
 
-=item SSL_METHOD *B<SSLv2_server_method>(void);
+=item const SSL_METHOD *B<SSLv2_server_method>(void);
 
 Constructor for the SSLv2 SSL_METHOD structure for a dedicated server.
 
-=item SSL_METHOD *B<SSLv2_method>(void);
+=item const SSL_METHOD *B<SSLv2_method>(void);
 
 Constructor for the SSLv2 SSL_METHOD structure for combined client and server.
 
-=item SSL_METHOD *B<SSLv3_client_method>(void);
+=item const SSL_METHOD *B<SSLv3_client_method>(void);
 
 Constructor for the SSLv3 SSL_METHOD structure for a dedicated client.
 
-=item SSL_METHOD *B<SSLv3_server_method>(void);
+=item const SSL_METHOD *B<SSLv3_server_method>(void);
 
 Constructor for the SSLv3 SSL_METHOD structure for a dedicated server.
 
-=item SSL_METHOD *B<SSLv3_method>(void);
+=item const SSL_METHOD *B<SSLv3_method>(void);
 
 Constructor for the SSLv3 SSL_METHOD structure for combined client and server.
 
-=item SSL_METHOD *B<TLSv1_client_method>(void);
+=item const SSL_METHOD *B<TLSv1_client_method>(void);
 
 Constructor for the TLSv1 SSL_METHOD structure for a dedicated client.
 
-=item SSL_METHOD *B<TLSv1_server_method>(void);
+=item cosnt SSL_METHOD *B<TLSv1_server_method>(void);
 
 Constructor for the TLSv1 SSL_METHOD structure for a dedicated server.
 
-=item SSL_METHOD *B<TLSv1_method>(void);
+=item const SSL_METHOD *B<TLSv1_method>(void);
 
 Constructor for the TLSv1 SSL_METHOD structure for combined client and server.
 
@@ -249,7 +249,7 @@ protocol context defined in the B<SSL_CTX> structure.
 
 =item long B<SSL_CTX_need_tmp_RSA>(SSL_CTX *ctx);
 
-=item SSL_CTX *B<SSL_CTX_new>(SSL_METHOD *meth);
+=item SSL_CTX *B<SSL_CTX_new>(const SSL_METHOD *meth);
 
 =item int B<SSL_CTX_remove_session>(SSL_CTX *ctx, SSL_SESSION *c);
 
@@ -327,7 +327,7 @@ protocol context defined in the B<SSL_CTX> structure.
 
 =item void B<SSL_CTX_set_session_cache_mode>(SSL_CTX *ctx, int mode);
 
-=item int B<SSL_CTX_set_ssl_version>(SSL_CTX *ctx, SSL_METHOD *meth);
+=item int B<SSL_CTX_set_ssl_version>(SSL_CTX *ctx, const SSL_METHOD *meth);
 
 =item void B<SSL_CTX_set_timeout>(SSL_CTX *ctx, long t);
 
@@ -512,7 +512,7 @@ connection defined in the B<SSL> structure.
 
 =item int B<SSL_get_shutdown>(const SSL *ssl);
 
-=item SSL_METHOD *B<SSL_get_ssl_method>(SSL *ssl);
+=item const SSL_METHOD *B<SSL_get_ssl_method>(SSL *ssl);
 
 =item int B<SSL_get_state>(const SSL *ssl);
 
@@ -596,7 +596,7 @@ connection defined in the B<SSL> structure.
 
 =item void B<SSL_set_shutdown>(SSL *ssl, int mode);
 
-=item int B<SSL_set_ssl_method>(SSL *ssl, SSL_METHOD *meth);
+=item int B<SSL_set_ssl_method>(SSL *ssl, const SSL_METHOD *meth);
 
 =item void B<SSL_set_time>(SSL *ssl, long t);
 
index 15ccf435fc65865796b8507456214cfaf3747182..7b38da0b7c94100a7d7e9e40f8fb54628236f325 100644 (file)
 #include <openssl/dh.h>
 #endif
 
-static SSL_METHOD *dtls1_get_client_method(int ver);
+static const SSL_METHOD *dtls1_get_client_method(int ver);
 static int dtls1_get_hello_verify(SSL *s);
 
-static SSL_METHOD *dtls1_get_client_method(int ver)
+static const SSL_METHOD *dtls1_get_client_method(int ver)
        {
        if (ver == DTLS1_VERSION)
                return(DTLSv1_client_method());
index 8a6cf31947aba86e65e2f58e0db93cb91804a188..5c4004bfe3c7ddf97e2c32127c833e6fe04fb3df 100644 (file)
@@ -61,8 +61,8 @@
 #include <openssl/objects.h>
 #include "ssl_locl.h"
 
-static SSL_METHOD *dtls1_get_method(int ver);
-static SSL_METHOD *dtls1_get_method(int ver)
+static const SSL_METHOD *dtls1_get_method(int ver);
+static const SSL_METHOD *dtls1_get_method(int ver)
        {
        if (ver == DTLS1_VERSION)
                return(DTLSv1_method());
index 6057c1088de9c91f26bcbe3d211f0ff065c03c30..4847a866b5d9340e777096f855631a07d45806ad 100644 (file)
 #include <openssl/dh.h>
 #endif
 
-static SSL_METHOD *dtls1_get_server_method(int ver);
+static const SSL_METHOD *dtls1_get_server_method(int ver);
 static int dtls1_send_hello_verify_request(SSL *s);
 
-static SSL_METHOD *dtls1_get_server_method(int ver)
+static const SSL_METHOD *dtls1_get_server_method(int ver)
        {
        if (ver == DTLS1_VERSION)
                return(DTLSv1_server_method());
index 8bac26c5ac10dc33f9bc6d8ca0a9f2345d895dfb..045a953ce4e0148d70bb37c95e80d69eeb737292 100644 (file)
 #include <openssl/objects.h>
 #include <openssl/evp.h>
 
-static SSL_METHOD *ssl23_get_client_method(int ver);
+static const SSL_METHOD *ssl23_get_client_method(int ver);
 static int ssl23_client_hello(SSL *s);
 static int ssl23_get_server_hello(SSL *s);
-static SSL_METHOD *ssl23_get_client_method(int ver)
+static const SSL_METHOD *ssl23_get_client_method(int ver)
        {
 #ifndef OPENSSL_NO_SSL2
        if (ver == SSL2_VERSION)
index c88569d32ceb9fa16912c8f28ac18c6a314afd25..115dc11a7e49bd5fc89456a1d970196a3e1a55a4 100644 (file)
@@ -60,8 +60,8 @@
 #include <openssl/objects.h>
 #include "ssl_locl.h"
 
-static SSL_METHOD *ssl23_get_method(int ver);
-static SSL_METHOD *ssl23_get_method(int ver)
+static const SSL_METHOD *ssl23_get_method(int ver);
+static const SSL_METHOD *ssl23_get_method(int ver)
        {
        if (ver == SSL2_VERSION)
                return(SSLv2_method());
index 945a2c987255958880dee30849f374c17c071227..7168385659441bf1b7a5bb991fea10a9592bdf41 100644 (file)
 #include <openssl/objects.h>
 #include <openssl/evp.h>
 
-static SSL_METHOD *ssl23_get_server_method(int ver);
+static const SSL_METHOD *ssl23_get_server_method(int ver);
 int ssl23_get_client_hello(SSL *s);
-static SSL_METHOD *ssl23_get_server_method(int ver)
+static const SSL_METHOD *ssl23_get_server_method(int ver)
        {
 #ifndef OPENSSL_NO_SSL2
        if (ver == SSL2_VERSION)
index 0c9e24d5c47f3f17ac4c7cf0779e393d935e5d0c..d5eefbdc2a09427854112f1c585ca22ca94e6596 100644 (file)
 #include <openssl/objects.h>
 #include <openssl/evp.h>
 
-static SSL_METHOD *ssl2_get_client_method(int ver);
+static const SSL_METHOD *ssl2_get_client_method(int ver);
 static int get_server_finished(SSL *s);
 static int get_server_verify(SSL *s);
 static int get_server_hello(SSL *s);
@@ -129,7 +129,7 @@ static int ssl_rsa_public_encrypt(SESS_CERT *sc, int len, unsigned char *from,
        unsigned char *to,int padding);
 #define BREAK  break
 
-static SSL_METHOD *ssl2_get_client_method(int ver)
+static const SSL_METHOD *ssl2_get_client_method(int ver)
        {
        if (ver == SSL2_VERSION)
                return(SSLv2_client_method());
index a35e435b71379c3d61b89deccf12232df862e1e4..2bffa78ff4ca35b5eb0b64b9e8c1fa8edf9b202e 100644 (file)
@@ -61,8 +61,8 @@
 #include <stdio.h>
 #include <openssl/objects.h>
 
-static SSL_METHOD *ssl2_get_method(int ver);
-static SSL_METHOD *ssl2_get_method(int ver)
+static const SSL_METHOD *ssl2_get_method(int ver);
+static const SSL_METHOD *ssl2_get_method(int ver)
        {
        if (ver == SSL2_VERSION)
                return(SSLv2_method());
index 247cc89155d4b92e893b33d0403a8b607d35268e..f0a1d4c3a94795246cebd6565aa079ad13433c59 100644 (file)
 #include <openssl/objects.h>
 #include <openssl/evp.h>
 
-static SSL_METHOD *ssl2_get_server_method(int ver);
+static const SSL_METHOD *ssl2_get_server_method(int ver);
 static int get_client_master_key(SSL *s);
 static int get_client_hello(SSL *s);
 static int server_hello(SSL *s); 
@@ -129,7 +129,7 @@ static int ssl_rsa_private_decrypt(CERT *c, int len, unsigned char *from,
        unsigned char *to,int padding);
 #define BREAK  break
 
-static SSL_METHOD *ssl2_get_server_method(int ver)
+static const SSL_METHOD *ssl2_get_server_method(int ver)
        {
        if (ver == SSL2_VERSION)
                return(SSLv2_server_method());
index 51d4c487247bf04c79ac66549bdb70f7a482d4a4..34d0f345a577bddda1dcc79f50ed1c43a3a124bb 100644 (file)
 #endif
 #include <openssl/bn.h>
 
-static SSL_METHOD *ssl3_get_client_method(int ver);
+static const SSL_METHOD *ssl3_get_client_method(int ver);
 static int ca_dn_cmp(const X509_NAME * const *a,const X509_NAME * const *b);
 
 #ifndef OPENSSL_NO_ECDH
@@ -143,7 +143,7 @@ static int curve_id2nid(int curve_id);
 int check_srvr_ecc_cert_and_alg(X509 *x, SSL_CIPHER *cs);
 #endif
 
-static SSL_METHOD *ssl3_get_client_method(int ver)
+static const SSL_METHOD *ssl3_get_client_method(int ver)
        {
        if (ver == SSL3_VERSION)
                return(SSLv3_client_method());
index 6a6eb1c58f80cbb8e1b9fda9ff8ad35c201047ba..6b39ce89f60e8a6ab916d30f04980793c828f43a 100644 (file)
@@ -60,8 +60,8 @@
 #include <openssl/objects.h>
 #include "ssl_locl.h"
 
-static SSL_METHOD *ssl3_get_method(int ver);
-static SSL_METHOD *ssl3_get_method(int ver)
+static const SSL_METHOD *ssl3_get_method(int ver);
+static const SSL_METHOD *ssl3_get_method(int ver)
        {
        if (ver == SSL3_VERSION)
                return(SSLv3_method());
index 7cc7634bb362cbf9ef9ace70c0a16efad0f5de31..3e11cc4e84fc8eceebf8d026347f6e0430d665d3 100644 (file)
 #endif
 #include <openssl/md5.h>
 
-static SSL_METHOD *ssl3_get_server_method(int ver);
+static const SSL_METHOD *ssl3_get_server_method(int ver);
 
 #ifndef OPENSSL_NO_ECDH
 static int nid2curve_id(int nid);
 #endif
 
-static SSL_METHOD *ssl3_get_server_method(int ver)
+static const SSL_METHOD *ssl3_get_server_method(int ver)
        {
        if (ver == SSL3_VERSION)
                return(SSLv3_server_method());
index ab4626b2e701c30bbbeb37f871ad09574287a427..f06b06994f29401c92ac7840e52cefe58f650b79 100644 (file)
--- a/ssl/ssl.h
+++ b/ssl/ssl.h
@@ -389,7 +389,7 @@ typedef struct ssl_method_st
        int (*ssl_pending)(const SSL *s);
        int (*num_ciphers)(void);
        SSL_CIPHER *(*get_cipher)(unsigned ncipher);
-       struct ssl_method_st *(*get_ssl_method)(int version);
+       const struct ssl_method_st *(*get_ssl_method)(int version);
        long (*get_timeout)(void);
        struct ssl3_enc_method *ssl3_enc; /* Extra SSLv3/TLS stuff */
        int (*ssl_version)(void);
@@ -616,7 +616,7 @@ DECLARE_STACK_OF(SSL_COMP)
 
 struct ssl_ctx_st
        {
-       SSL_METHOD *method;
+       const SSL_METHOD *method;
 
        STACK_OF(SSL_CIPHER) *cipher_list;
        /* same as above but sorted for lookup */
@@ -818,7 +818,7 @@ struct ssl_st
        int version;
        int type; /* SSL_ST_CONNECT or SSL_ST_ACCEPT */
 
-       SSL_METHOD *method; /* SSLv3 */
+       const SSL_METHOD *method; /* SSLv3 */
 
        /* There are 2 BIO's even though they are normally both the
         * same.  This is so data can be read and written to different
@@ -1212,7 +1212,7 @@ void BIO_ssl_shutdown(BIO *ssl_bio);
 #endif
 
 int    SSL_CTX_set_cipher_list(SSL_CTX *,const char *str);
-SSL_CTX *SSL_CTX_new(SSL_METHOD *meth);
+SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
 void   SSL_CTX_free(SSL_CTX *);
 long SSL_CTX_set_timeout(SSL_CTX *ctx,long t);
 long SSL_CTX_get_timeout(const SSL_CTX *ctx);
@@ -1371,27 +1371,27 @@ int     SSL_get_error(const SSL *s,int ret_code);
 const char *SSL_get_version(const SSL *s);
 
 /* This sets the 'default' SSL version that SSL_new() will create */
-int SSL_CTX_set_ssl_version(SSL_CTX *ctx,SSL_METHOD *meth);
+int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth);
 
-SSL_METHOD *SSLv2_method(void);                /* SSLv2 */
-SSL_METHOD *SSLv2_server_method(void); /* SSLv2 */
-SSL_METHOD *SSLv2_client_method(void); /* SSLv2 */
+const SSL_METHOD *SSLv2_method(void);          /* SSLv2 */
+const SSL_METHOD *SSLv2_server_method(void);   /* SSLv2 */
+const SSL_METHOD *SSLv2_client_method(void);   /* SSLv2 */
 
-SSL_METHOD *SSLv3_method(void);                /* SSLv3 */
-SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */
-SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */
+const SSL_METHOD *SSLv3_method(void);          /* SSLv3 */
+const SSL_METHOD *SSLv3_server_method(void);   /* SSLv3 */
+const SSL_METHOD *SSLv3_client_method(void);   /* SSLv3 */
 
-SSL_METHOD *SSLv23_method(void);       /* SSLv3 but can rollback to v2 */
-SSL_METHOD *SSLv23_server_method(void);        /* SSLv3 but can rollback to v2 */
-SSL_METHOD *SSLv23_client_method(void);        /* SSLv3 but can rollback to v2 */
+const SSL_METHOD *SSLv23_method(void); /* SSLv3 but can rollback to v2 */
+const SSL_METHOD *SSLv23_server_method(void);  /* SSLv3 but can rollback to v2 */
+const SSL_METHOD *SSLv23_client_method(void);  /* SSLv3 but can rollback to v2 */
 
-SSL_METHOD *TLSv1_method(void);                /* TLSv1.0 */
-SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */
-SSL_METHOD *TLSv1_client_method(void); /* TLSv1.0 */
+const SSL_METHOD *TLSv1_method(void);          /* TLSv1.0 */
+const SSL_METHOD *TLSv1_server_method(void);   /* TLSv1.0 */
+const SSL_METHOD *TLSv1_client_method(void);   /* TLSv1.0 */
 
-SSL_METHOD *DTLSv1_method(void);               /* DTLSv1.0 */
-SSL_METHOD *DTLSv1_server_method(void);        /* DTLSv1.0 */
-SSL_METHOD *DTLSv1_client_method(void);        /* DTLSv1.0 */
+const SSL_METHOD *DTLSv1_method(void);         /* DTLSv1.0 */
+const SSL_METHOD *DTLSv1_server_method(void);  /* DTLSv1.0 */
+const SSL_METHOD *DTLSv1_client_method(void);  /* DTLSv1.0 */
 
 STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s);
 
@@ -1400,8 +1400,8 @@ int SSL_renegotiate(SSL *s);
 int SSL_renegotiate_pending(SSL *s);
 int SSL_shutdown(SSL *s);
 
-SSL_METHOD *SSL_get_ssl_method(SSL *s);
-int SSL_set_ssl_method(SSL *s,SSL_METHOD *method);
+const SSL_METHOD *SSL_get_ssl_method(SSL *s);
+int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method);
 const char *SSL_alert_type_string_long(int value);
 const char *SSL_alert_type_string(int value);
 const char *SSL_alert_desc_string_long(int value);
index f8c8e1d8ac565fac6f925cd8dc0c2fd9647b6af6..6955215c1f6b21ffabb533a20162318471bbd99c 100644 (file)
@@ -212,7 +212,7 @@ int SSL_clear(SSL *s)
        }
 
 /** Used to change an SSL_CTXs default SSL method type */
-int SSL_CTX_set_ssl_version(SSL_CTX *ctx,SSL_METHOD *meth)
+int SSL_CTX_set_ssl_version(SSL_CTX *ctx,const SSL_METHOD *meth)
        {
        STACK_OF(SSL_CIPHER) *sk;
 
@@ -1330,7 +1330,7 @@ int SSL_SESSION_cmp(const SSL_SESSION *a,const SSL_SESSION *b)
 static IMPLEMENT_LHASH_HASH_FN(SSL_SESSION_hash, SSL_SESSION *)
 static IMPLEMENT_LHASH_COMP_FN(SSL_SESSION_cmp, SSL_SESSION *)
 
-SSL_CTX *SSL_CTX_new(SSL_METHOD *meth)
+SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth)
        {
        SSL_CTX *ret=NULL;
        
@@ -1899,12 +1899,12 @@ void ssl_update_cache(SSL *s,int mode)
                }
        }
 
-SSL_METHOD *SSL_get_ssl_method(SSL *s)
+const SSL_METHOD *SSL_get_ssl_method(SSL *s)
        {
        return(s->method);
        }
 
-int SSL_set_ssl_method(SSL *s,SSL_METHOD *meth)
+int SSL_set_ssl_method(SSL *s, const SSL_METHOD *meth)
        {
        int conn= -1;
        int ret=1;
index fb2cbfdd6852e95ea7ac0af06a57f9c095196cf2..0b81e09091c516339a1c34a01ff40932e1c236a2 100644 (file)
@@ -517,9 +517,9 @@ extern SSL3_ENC_METHOD SSLv3_enc_data;
 extern SSL3_ENC_METHOD DTLSv1_enc_data;
 
 #define IMPLEMENT_tls1_meth_func(func_name, s_accept, s_connect, s_get_meth) \
-SSL_METHOD *func_name(void)  \
+const SSL_METHOD *func_name(void)  \
        { \
-       static SSL_METHOD func_name##_data= { \
+       static const SSL_METHOD func_name##_data= { \
                TLS1_VERSION, \
                tls1_new, \
                tls1_clear, \
@@ -554,9 +554,9 @@ SSL_METHOD *func_name(void)  \
        }
 
 #define IMPLEMENT_ssl3_meth_func(func_name, s_accept, s_connect, s_get_meth) \
-SSL_METHOD *func_name(void)  \
+const SSL_METHOD *func_name(void)  \
        { \
-       static SSL_METHOD func_name##_data= { \
+       static const SSL_METHOD func_name##_data= { \
                SSL3_VERSION, \
                ssl3_new, \
                ssl3_clear, \
@@ -591,9 +591,9 @@ SSL_METHOD *func_name(void)  \
        }
 
 #define IMPLEMENT_ssl23_meth_func(func_name, s_accept, s_connect, s_get_meth) \
-SSL_METHOD *func_name(void)  \
+const SSL_METHOD *func_name(void)  \
        { \
-       static SSL_METHOD func_name##_data= { \
+       static const SSL_METHOD func_name##_data= { \
        TLS1_VERSION, \
        tls1_new, \
        tls1_clear, \
@@ -628,9 +628,9 @@ SSL_METHOD *func_name(void)  \
        }
 
 #define IMPLEMENT_ssl2_meth_func(func_name, s_accept, s_connect, s_get_meth) \
-SSL_METHOD *func_name(void)  \
+const SSL_METHOD *func_name(void)  \
        { \
-       static SSL_METHOD func_name##_data= { \
+       static const SSL_METHOD func_name##_data= { \
                SSL2_VERSION, \
                ssl2_new,       /* local */ \
                ssl2_clear,     /* local */ \
@@ -665,9 +665,9 @@ SSL_METHOD *func_name(void)  \
        }
 
 #define IMPLEMENT_dtls1_meth_func(func_name, s_accept, s_connect, s_get_meth) \
-SSL_METHOD *func_name(void)  \
+const SSL_METHOD *func_name(void)  \
        { \
-       static SSL_METHOD func_name##_data= { \
+       static const SSL_METHOD func_name##_data= { \
                DTLS1_VERSION, \
                dtls1_new, \
                dtls1_clear, \
index 5d00a98a7404567efbe11fef423173eef85dbe0d..1da69cf787e1815e5cfbf01e3ffde9c7be12eb62 100644 (file)
@@ -553,7 +553,7 @@ void SSL_SESSION_free(SSL_SESSION *ss)
 int SSL_set_session(SSL *s, SSL_SESSION *session)
        {
        int ret=0;
-       SSL_METHOD *meth;
+       const SSL_METHOD *meth;
 
        if (session != NULL)
                {
index 8c04e7434d3fcf59c7bc8fa5630a63beea5e9024..ee4e99af6446add197661da5967977a30c9f730b 100644 (file)
@@ -401,7 +401,7 @@ int main(int argc, char *argv[])
 #endif
        SSL_CTX *s_ctx=NULL;
        SSL_CTX *c_ctx=NULL;
-       SSL_METHOD *meth=NULL;
+       const SSL_METHOD *meth=NULL;
        SSL *c_ssl,*s_ssl;
        int number=1,reuse=0;
        long bytes=256L;
index 4d1e198cdcde1ec6c04eb47e9a76d9b11d567d93..c87af17712f49ffd6ac815c85c8323c409c79669 100644 (file)
@@ -63,8 +63,8 @@
 #include <openssl/objects.h>
 #include <openssl/evp.h>
 
-static SSL_METHOD *tls1_get_client_method(int ver);
-static SSL_METHOD *tls1_get_client_method(int ver)
+static const SSL_METHOD *tls1_get_client_method(int ver);
+static const SSL_METHOD *tls1_get_client_method(int ver)
        {
        if (ver == TLS1_VERSION)
                return(TLSv1_client_method());
index f5d8df634ee1dbfce815a07d3cdee968fb02ee2e..6ce7c0bbf5856f6bcf0fd56a9c2dbeafded4f0cc 100644 (file)
@@ -60,8 +60,8 @@
 #include <openssl/objects.h>
 #include "ssl_locl.h"
 
-static SSL_METHOD *tls1_get_method(int ver);
-static SSL_METHOD *tls1_get_method(int ver)
+static const SSL_METHOD *tls1_get_method(int ver);
+static const SSL_METHOD *tls1_get_method(int ver)
        {
        if (ver == TLS1_VERSION)
                return(TLSv1_method());
index b75636abba91718132dfa3b0a176078f5b90d865..42525e9e89ff08f8dd28ff65d1888f6b482352cb 100644 (file)
@@ -64,8 +64,8 @@
 #include <openssl/evp.h>
 #include <openssl/x509.h>
 
-static SSL_METHOD *tls1_get_server_method(int ver);
-static SSL_METHOD *tls1_get_server_method(int ver)
+static const SSL_METHOD *tls1_get_server_method(int ver);
+static const SSL_METHOD *tls1_get_server_method(int ver)
        {
        if (ver == TLS1_VERSION)
                return(TLSv1_server_method());