added "prvs" and "prvscheck" expansion items
[exim.git] / src / src / dk.h
1 /* $Cambridge: exim/src/src/dk.h,v 1.1 2005/03/08 15:32:02 tom Exp $ */
2
3 /*************************************************
4 * Exim - an Internet mail transport agent *
5 *************************************************/
6
7 /* Copyright (c) University of Cambridge 1995 - 2005 */
8 /* See the file NOTICE for conditions of use and distribution. */
9
10 /* Code for DomainKeys support. Other DK relevant code is in
11 receive.c, transport.c and transports/smtp.c */
12
13 #ifdef EXPERIMENTAL_DOMAINKEYS
14
15 #include <domainkeys.h>
16
17 #define DK_EXIM_ADDRESS_NONE 0
18 #define DK_EXIM_ADDRESS_FROM_FROM 1
19 #define DK_EXIM_ADDRESS_FROM_SENDER 2
20
21 #define DK_EXIM_RESULT_ERR 0
22 #define DK_EXIM_RESULT_BAD_FORMAT 1
23 #define DK_EXIM_RESULT_NO_KEY 2
24 #define DK_EXIM_RESULT_NO_SIGNATURE 3
25 #define DK_EXIM_RESULT_REVOKED 4
26 #define DK_EXIM_RESULT_NON_PARTICIPANT 5
27 #define DK_EXIM_RESULT_GOOD 6
28 #define DK_EXIM_RESULT_BAD 7
29
30 typedef struct dk_exim_verify_block {
31 int result;
32 int address_source;
33 uschar *result_string;
34 uschar *address;
35 uschar *domain;
36 uschar *local_part;
37 BOOL is_signed;
38 BOOL signsall;
39 BOOL testing;
40 } dk_exim_verify_block;
41
42 int dk_receive_getc(void);
43 int dk_receive_ungetc(int);
44 void dk_exim_verify_init(void);
45 void dk_exim_verify_finish(void);
46 int dk_exim_verify_result(uschar **);
47 uschar *dk_exim_sign(int, uschar *, uschar *, uschar *, uschar *);
48
49 extern dk_exim_verify_block *dk_verify_block;
50
51 #endif