diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/s23_lib.c | 158 |
1 files changed, 78 insertions, 80 deletions
diff --git a/src/lib/libssl/s23_lib.c b/src/lib/libssl/s23_lib.c index a6285b767f..3a4d5a6ecb 100644 --- a/src/lib/libssl/s23_lib.c +++ b/src/lib/libssl/s23_lib.c | |||
| @@ -60,128 +60,126 @@ | |||
| 60 | #include <openssl/objects.h> | 60 | #include <openssl/objects.h> |
| 61 | #include "ssl_locl.h" | 61 | #include "ssl_locl.h" |
| 62 | 62 | ||
| 63 | long ssl23_default_timeout(void) | 63 | long |
| 64 | { | 64 | ssl23_default_timeout(void) |
| 65 | return(300); | 65 | { |
| 66 | } | 66 | return (300); |
| 67 | } | ||
| 67 | 68 | ||
| 68 | int ssl23_num_ciphers(void) | 69 | int |
| 69 | { | 70 | ssl23_num_ciphers(void) |
| 71 | { | ||
| 70 | return(ssl3_num_ciphers() | 72 | return(ssl3_num_ciphers() |
| 71 | #ifndef OPENSSL_NO_SSL2 | 73 | #ifndef OPENSSL_NO_SSL2 |
| 72 | + ssl2_num_ciphers() | 74 | + ssl2_num_ciphers() |
| 73 | #endif | 75 | #endif |
| 74 | ); | 76 | ); |
| 75 | } | 77 | } |
| 76 | 78 | ||
| 77 | const SSL_CIPHER *ssl23_get_cipher(unsigned int u) | 79 | const SSL_CIPHER |
| 78 | { | 80 | *ssl23_get_cipher(unsigned int u) |
| 79 | unsigned int uu=ssl3_num_ciphers(); | 81 | { |
| 82 | unsigned int uu = ssl3_num_ciphers(); | ||
| 80 | 83 | ||
| 81 | if (u < uu) | 84 | if (u < uu) |
| 82 | return(ssl3_get_cipher(u)); | 85 | return (ssl3_get_cipher(u)); |
| 83 | else | 86 | else |
| 84 | #ifndef OPENSSL_NO_SSL2 | 87 | #ifndef OPENSSL_NO_SSL2 |
| 85 | return(ssl2_get_cipher(u-uu)); | 88 | return (ssl2_get_cipher(u - uu)); |
| 86 | #else | 89 | #else |
| 87 | return(NULL); | 90 | return (NULL); |
| 88 | #endif | 91 | #endif |
| 89 | } | 92 | } |
| 90 | 93 | ||
| 91 | /* This function needs to check if the ciphers required are actually | 94 | /* This function needs to check if the ciphers required are actually |
| 92 | * available */ | 95 | * available */ |
| 93 | const SSL_CIPHER *ssl23_get_cipher_by_char(const unsigned char *p) | 96 | const SSL_CIPHER |
| 94 | { | 97 | *ssl23_get_cipher_by_char(const unsigned char *p) |
| 98 | { | ||
| 95 | const SSL_CIPHER *cp; | 99 | const SSL_CIPHER *cp; |
| 96 | 100 | ||
| 97 | cp=ssl3_get_cipher_by_char(p); | 101 | cp = ssl3_get_cipher_by_char(p); |
| 98 | #ifndef OPENSSL_NO_SSL2 | 102 | #ifndef OPENSSL_NO_SSL2 |
| 99 | if (cp == NULL) | 103 | if (cp == NULL) |
| 100 | cp=ssl2_get_cipher_by_char(p); | 104 | cp = ssl2_get_cipher_by_char(p); |
| 101 | #endif | 105 | #endif |
| 102 | return(cp); | 106 | return (cp); |
| 103 | } | 107 | } |
| 104 | 108 | ||
| 105 | int ssl23_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p) | 109 | int |
| 106 | { | 110 | ssl23_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p) |
| 111 | { | ||
| 107 | long l; | 112 | long l; |
| 108 | 113 | ||
| 109 | /* We can write SSLv2 and SSLv3 ciphers */ | 114 | /* We can write SSLv2 and SSLv3 ciphers */ |
| 110 | if (p != NULL) | 115 | if (p != NULL) { |
| 111 | { | 116 | l = c->id; |
| 112 | l=c->id; | 117 | p[0] = ((unsigned char)(l >> 16L))&0xFF; |
| 113 | p[0]=((unsigned char)(l>>16L))&0xFF; | 118 | p[1] = ((unsigned char)(l >> 8L))&0xFF; |
| 114 | p[1]=((unsigned char)(l>> 8L))&0xFF; | 119 | p[2] = ((unsigned char)(l ))&0xFF; |
| 115 | p[2]=((unsigned char)(l ))&0xFF; | ||
| 116 | } | ||
| 117 | return(3); | ||
| 118 | } | 120 | } |
| 121 | return (3); | ||
| 122 | } | ||
| 119 | 123 | ||
| 120 | int ssl23_read(SSL *s, void *buf, int len) | 124 | int |
| 121 | { | 125 | ssl23_read(SSL *s, void *buf, int len) |
| 126 | { | ||
| 122 | int n; | 127 | int n; |
| 123 | 128 | ||
| 124 | errno = 0; | 129 | errno = 0; |
| 125 | if (SSL_in_init(s) && (!s->in_handshake)) | 130 | if (SSL_in_init(s) && (!s->in_handshake)) { |
| 126 | { | 131 | n = s->handshake_func(s); |
| 127 | n=s->handshake_func(s); | 132 | if (n < 0) |
| 128 | if (n < 0) return(n); | 133 | return (n); |
| 129 | if (n == 0) | 134 | if (n == 0) { |
| 130 | { | 135 | SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE); |
| 131 | SSLerr(SSL_F_SSL23_READ,SSL_R_SSL_HANDSHAKE_FAILURE); | 136 | return (-1); |
| 132 | return(-1); | ||
| 133 | } | ||
| 134 | return(SSL_read(s,buf,len)); | ||
| 135 | } | 137 | } |
| 136 | else | 138 | return (SSL_read(s, buf, len)); |
| 137 | { | 139 | } else { |
| 138 | ssl_undefined_function(s); | 140 | ssl_undefined_function(s); |
| 139 | return(-1); | 141 | return (-1); |
| 140 | } | ||
| 141 | } | 142 | } |
| 143 | } | ||
| 142 | 144 | ||
| 143 | int ssl23_peek(SSL *s, void *buf, int len) | 145 | int |
| 144 | { | 146 | ssl23_peek(SSL *s, void *buf, int len) |
| 147 | { | ||
| 145 | int n; | 148 | int n; |
| 146 | 149 | ||
| 147 | errno = 0; | 150 | errno = 0; |
| 148 | if (SSL_in_init(s) && (!s->in_handshake)) | 151 | if (SSL_in_init(s) && (!s->in_handshake)) { |
| 149 | { | 152 | n = s->handshake_func(s); |
| 150 | n=s->handshake_func(s); | 153 | if (n < 0) |
| 151 | if (n < 0) return(n); | 154 | return (n); |
| 152 | if (n == 0) | 155 | if (n == 0) { |
| 153 | { | 156 | SSLerr(SSL_F_SSL23_PEEK, SSL_R_SSL_HANDSHAKE_FAILURE); |
| 154 | SSLerr(SSL_F_SSL23_PEEK,SSL_R_SSL_HANDSHAKE_FAILURE); | 157 | return (-1); |
| 155 | return(-1); | ||
| 156 | } | ||
| 157 | return(SSL_peek(s,buf,len)); | ||
| 158 | } | 158 | } |
| 159 | else | 159 | return (SSL_peek(s, buf, len)); |
| 160 | { | 160 | } else { |
| 161 | ssl_undefined_function(s); | 161 | ssl_undefined_function(s); |
| 162 | return(-1); | 162 | return (-1); |
| 163 | } | ||
| 164 | } | 163 | } |
| 164 | } | ||
| 165 | 165 | ||
| 166 | int ssl23_write(SSL *s, const void *buf, int len) | 166 | int |
| 167 | { | 167 | ssl23_write(SSL *s, const void *buf, int len) |
| 168 | { | ||
| 168 | int n; | 169 | int n; |
| 169 | 170 | ||
| 170 | errno = 0; | 171 | errno = 0; |
| 171 | if (SSL_in_init(s) && (!s->in_handshake)) | 172 | if (SSL_in_init(s) && (!s->in_handshake)) { |
| 172 | { | 173 | n = s->handshake_func(s); |
| 173 | n=s->handshake_func(s); | 174 | if (n < 0) |
| 174 | if (n < 0) return(n); | 175 | return (n); |
| 175 | if (n == 0) | 176 | if (n == 0) { |
| 176 | { | 177 | SSLerr(SSL_F_SSL23_WRITE, SSL_R_SSL_HANDSHAKE_FAILURE); |
| 177 | SSLerr(SSL_F_SSL23_WRITE,SSL_R_SSL_HANDSHAKE_FAILURE); | 178 | return (-1); |
| 178 | return(-1); | ||
| 179 | } | ||
| 180 | return(SSL_write(s,buf,len)); | ||
| 181 | } | 179 | } |
| 182 | else | 180 | return (SSL_write(s, buf, len)); |
| 183 | { | 181 | } else { |
| 184 | ssl_undefined_function(s); | 182 | ssl_undefined_function(s); |
| 185 | return(-1); | 183 | return (-1); |
| 186 | } | ||
| 187 | } | 184 | } |
| 185 | } | ||
