Mercurial > hg > xemacs-beta
annotate src/tls.h @ 5927:b58b74274fa2 cygwin
changes from long ago, never committed...
author | Henry Thompson <ht@markup.co.uk> |
---|---|
date | Wed, 15 Dec 2021 19:02:33 +0000 |
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_ */ |