Mercurial > hg > xemacs-beta
annotate src/tls.h @ 5887:6eca500211f4
Prototype for X509_check_host() has changed, detect this in configure.ac
ChangeLog addition:
2015-04-09 Aidan Kehoe <kehoea@parhasard.net>
* configure.ac:
If X509_check_host() is available, check the number of arguments
it takes. Don't use it if it takes any number of arguments other
than five. Also don't use it if <openssl/x509v3.h> does not
declare it, since if that is so there is no portable way to tell
how many arguments it should take, and so we would end up smashing
the stack.
* configure: Regenerate.
src/ChangeLog addition:
2015-04-09 Aidan Kehoe <kehoea@parhasard.net>
* tls.c:
#include <openssl/x509v3.h> for its prototype for
X509_check_host().
* tls.c (tls_open):
Pass the new fifth argument to X509_check_host().
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Thu, 09 Apr 2015 14:27:02 +0100 |
parents | d59bfb050ca8 |
children |
rev | line source |
---|---|
5814
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
1 /* Transport Layer Security implementation -- header file. |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
2 Copyright (C) 2014 Jerry James |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
3 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
4 This file is part of XEmacs. |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
5 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
6 XEmacs is free software: you can redistribute it and/or modify it |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
7 under the terms of the GNU General Public License as published by the |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
8 Free Software Foundation, either version 3 of the License, or (at your |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
9 option) any later version. |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
10 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
14 for more details. |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
15 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
16 You should have received a copy of the GNU General Public License |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
17 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
18 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
19 /* Synched up with: Not in FSF. */ |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
20 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
21 /* Written by Jerry James. */ |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
22 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
23 #ifndef INCLUDED_tls_h_ |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
24 #define INCLUDED_tls_h_ |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
25 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
26 extern Lisp_Object Qtls_error; |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
27 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
28 void syms_of_tls (void); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
29 void vars_of_tls (void); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
30 void init_tls (void); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
31 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
32 #ifdef WITH_TLS |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
33 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
34 #ifdef HAVE_NSS |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
35 #include <prio.h> |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
36 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
37 #define TLS_SETUP_SOCK 0 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
38 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
39 typedef struct tls_state |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
40 { |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
41 PRFileDesc *tls_file_desc; |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
42 int tls_refcount; |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
43 } tls_state_t; |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
44 #endif |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
45 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
46 #ifdef HAVE_GNUTLS |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
47 #include <gnutls/gnutls.h> |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
48 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
49 #define TLS_SETUP_SOCK 1 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
50 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
51 typedef struct tls_state |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
52 { |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
53 gnutls_session_t tls_session; |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
54 int tls_refcount; |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
55 } tls_state_t; |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
56 #endif |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
57 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
58 #ifdef HAVE_OPENSSL |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
59 # include <openssl/ssl.h> |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
60 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
61 #define TLS_SETUP_SOCK 1 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
62 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
63 typedef struct tls_state |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
64 { |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
65 SSL *tls_connection; |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
66 int tls_refcount; |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
67 } tls_state_t; |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
68 #endif |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
69 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
70 tls_state_t *tls_open (int, const Extbyte *); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
71 tls_state_t *tls_negotiate (int, const Extbyte *, Lisp_Object); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
72 void tls_close_connection (tls_state_t *); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
73 Lisp_Object make_tls_output_stream (tls_state_t *); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
74 Lisp_Object make_tls_input_stream (tls_state_t *); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
75 int tls_get_fd (tls_state_t *); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
76 Bytecount tls_read (tls_state_t *, unsigned char *, Bytecount, unsigned int); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
77 Bytecount tls_write (tls_state_t *, const unsigned char *, Bytecount, |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
78 unsigned int); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
79 int tls_close (tls_state_t *); |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
80 #else /* WITH_TLS */ |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
81 typedef int tls_state_t; |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
82 #define TLS_SETUP_SOCK 1 |
5815
d59bfb050ca8
Fix TLS-related build failures. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
5814
diff
changeset
|
83 #define tls_open(x,y) ({ \ |
d59bfb050ca8
Fix TLS-related build failures. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
5814
diff
changeset
|
84 signal_error (Qtls_error, "TLS support unavailable", Qnil); \ |
d59bfb050ca8
Fix TLS-related build failures. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
5814
diff
changeset
|
85 NULL; }) |
5814
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
86 #define tls_negotiate(x,y,z) NULL |
5815
d59bfb050ca8
Fix TLS-related build failures. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
5814
diff
changeset
|
87 #define make_tls_input_stream(x) ({ \ |
d59bfb050ca8
Fix TLS-related build failures. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
5814
diff
changeset
|
88 signal_error (Qtls_error, "TLS support unavailable", Qnil); \ |
d59bfb050ca8
Fix TLS-related build failures. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
5814
diff
changeset
|
89 NULL; }) |
d59bfb050ca8
Fix TLS-related build failures. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
5814
diff
changeset
|
90 #define make_tls_output_stream(x) ({ \ |
d59bfb050ca8
Fix TLS-related build failures. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
5814
diff
changeset
|
91 signal_error (Qtls_error, "TLS support unavailable", Qnil); \ |
d59bfb050ca8
Fix TLS-related build failures. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
5814
diff
changeset
|
92 NULL; }) |
d59bfb050ca8
Fix TLS-related build failures. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
5814
diff
changeset
|
93 #define tls_get_fd(x) -1 |
5814
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
94 #define tls_read(w,x,y,z) -1 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
95 #define tls_write(w,x,y,z) -1 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
96 #define tls_close(x) -1 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
97 #endif /* WITH_TLS */ |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
98 |
a216b3c2b09e
Add TLS support. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents:
diff
changeset
|
99 #endif /* INCLUDED_tls_h_ */ |