Commit | Line | Data |
---|---|---|
8af55556 | 1 | /* GnuTLS glue for GNU Emacs. |
73b0cd50 | 2 | Copyright (C) 2010-2011 Free Software Foundation, Inc. |
8af55556 TZ |
3 | |
4 | This file is part of GNU Emacs. | |
5 | ||
6 | GNU Emacs is free software: you can redistribute it and/or modify | |
7 | it under the terms of the GNU General Public License as published by | |
8 | the Free Software Foundation, either version 3 of the License, or | |
9 | (at your option) any later version. | |
10 | ||
11 | GNU Emacs is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU General Public License | |
17 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |
18 | ||
19 | #ifndef EMACS_GNUTLS_DEFINED | |
20 | #define EMACS_GNUTLS_DEFINED | |
21 | ||
22 | #ifdef HAVE_GNUTLS | |
23 | #include <gnutls/gnutls.h> | |
e061a11b | 24 | #include <gnutls/x509.h> |
8af55556 TZ |
25 | |
26 | typedef enum | |
27 | { | |
28 | /* Initialization stages. */ | |
29 | GNUTLS_STAGE_EMPTY = 0, | |
30 | GNUTLS_STAGE_CRED_ALLOC, | |
31 | GNUTLS_STAGE_FILES, | |
e061a11b | 32 | GNUTLS_STAGE_CALLBACKS, |
8af55556 TZ |
33 | GNUTLS_STAGE_INIT, |
34 | GNUTLS_STAGE_PRIORITY, | |
35 | GNUTLS_STAGE_CRED_SET, | |
36 | ||
37 | /* Handshake stages. */ | |
38 | GNUTLS_STAGE_HANDSHAKE_CANDO = GNUTLS_STAGE_CRED_SET, | |
39 | GNUTLS_STAGE_TRANSPORT_POINTERS_SET, | |
40 | GNUTLS_STAGE_HANDSHAKE_TRIED, | |
41 | ||
42 | GNUTLS_STAGE_READY, | |
43 | } gnutls_initstage_t; | |
44 | ||
45 | #define GNUTLS_EMACS_ERROR_INVALID_TYPE GNUTLS_E_APPLICATION_ERROR_MIN | |
46 | ||
47 | #define GNUTLS_INITSTAGE(proc) (XPROCESS (proc)->gnutls_initstage) | |
48 | ||
49 | #define GNUTLS_PROCESS_USABLE(proc) (GNUTLS_INITSTAGE(proc) >= GNUTLS_STAGE_READY) | |
50 | ||
8ed70bf3 LMI |
51 | #define GNUTLS_LOG(level, max, string) if (level <= max) { gnutls_log_function (level, "(Emacs) " string); } |
52 | ||
c1ae068b LMI |
53 | #define GNUTLS_LOG2(level, max, string, extra) if (level <= max) { gnutls_log_function2 (level, "(Emacs) " string, extra); } |
54 | ||
9587a89d | 55 | EMACS_INT |
368f4090 | 56 | emacs_gnutls_write (int fildes, struct Lisp_Process *proc, const char *buf, |
9587a89d PE |
57 | EMACS_INT nbyte); |
58 | EMACS_INT | |
df7fcaff | 59 | emacs_gnutls_read (int fildes, struct Lisp_Process *proc, char *buf, |
9587a89d | 60 | EMACS_INT nbyte); |
8af55556 TZ |
61 | |
62 | extern void syms_of_gnutls (void); | |
63 | ||
368f4090 | 64 | #endif |
8af55556 TZ |
65 | |
66 | #endif |