modules/pa/gpg.h
/* [<][>][^][v][top][bottom][index][help] */
FUNCTIONS
This source file includes following functions.
1 /***************************************
2 $Revision: 1.14 $
3
4 gpg.h - header for gpg.c .
5
6 Status: COMPLETE, REVUED, TESTED
7
8 ******************/ /******************
9 Filename : gpg.h
10 Authors : filippo@ripe.net
11 OSs Tested : Solaris 7
12 ******************/ /******************
13 Copyright (c) 2000 RIPE NCC
14
15 All Rights Reserved
16
17 Permission to use, copy, modify, and distribute this software and its
18 documentation for any purpose and without fee is hereby granted,
19 provided that the above copyright notice appear in all copies and that
20 both that copyright notice and this permission notice appear in
21 supporting documentation, and that the name of the author not be
22 used in advertising or publicity pertaining to distribution of the
23 software without specific, written prior permission.
24
25 THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
26 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
27 AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
28 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
29 AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
30 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
31 ***************************************/
32
33 #ifndef GPG_H
34 #define GPG_H
35
36 #include <netdb.h>
37 #include <unistd.h>
38 #include "mail_parser.h"
39
40 /* FP: interface file for RIPE gnuPG */
41
42 #define INPUT_FD 0
43 #define OUTPUT_FD 1
44 #define ERROR_FD 2
45
46 #define LINE_LENGTH 1024
47 #define STRING_LENGTH 255
48 #define FILENAME_LENGTH 1024
49
50 #define ERRSTRING strerror (errno)
51
52 #define MAX_LINE_BUF 50000
53
54 /* FP : global objects used as and interface with gnuPG */
55
56 struct VerifySignObject {
57 char iDocSigFilename[FILENAME_LENGTH], /* IN */
58 iSigFilename[FILENAME_LENGTH], /* IN */
59 outputPath[FILENAME_LENGTH], /* IN */
60 oStream[FILENAME_LENGTH]; /* OUT */
61
62 char keyRing[FILENAME_LENGTH];
63 int isValid;
64 u32 keyID;
65 struct VerifySignObject *next;
66 struct VerifySignObject *inner;
67 int nMsg;
68 int type;
69 int isMIME;
70 };
71
72 struct ReadCryptedObject {
73 char iFilename[FILENAME_LENGTH],
74 oStream[FILENAME_LENGTH];
75 char keyRing[FILENAME_LENGTH];
76 int isValid;
77 u32 keyID;
78 };
79
80 struct ImportKeyObject {
81 char iFilename[FILENAME_LENGTH];
82 char keyRing[FILENAME_LENGTH];
83 int rc;
84 u32 keyID;
85 char fingerPrint[STRING_LENGTH];
86 };
87
88 struct RemoveKeyObject {
89 char iFilename[FILENAME_LENGTH];
90 char keyRing[FILENAME_LENGTH];
91 int rc;
92 u32 keyID;
93 };
94
95 enum {
96 iKO_OK = 0,
97 iKO_UNCHANGED,
98 iKO_NOUSERID,
99 iKO_GENERAL,
100 iKO_NOTVALIDUSERID,
101 iKO_NOPUBLICKEY,
102 iKO_NODEFAULTPUBLICKEYRING,
103 iKO_CRC_ERROR,
104 iKO_NO_OPENPGP_DATA,
105 iKO_NO_IN_FILES,
106 iKO_SECRET_KEY_PRESENT,
107 iKO_GENERALFAILURE
108 };
109
110 enum {
111 vSO_IS_VALID = 0,
112 vSO_KO,
113 vSO_CRC_ERROR,
114 vSO_NO_PUBLIC_KEY,
115 vSO_NO_OPENPGP_DATA,
116 vSO_NO_IN_FILES,
117 vSO_NO_OUT_FILES
118 };
119
120 enum {
121 vSO_Type_PlainText = 0,
122 vSO_Type_Unparsed,
123 vSO_Type_ToBeGPGVerified,
124 vSO_Type_Signed
125 };
126
127 #ifdef __cplusplus
128 extern "C" {
129 #endif
130
131 void PA_VerifySignature(struct VerifySignObject *vSO);
132 void PA_ImportKey(struct ImportKeyObject *iKO);
133 void PA_RemoveKey(struct ImportKeyObject *iKO);
134 void PA_Decrypt(struct ReadCryptedObject *rDO);
135 EPNodePtr PA_ParseMessage(EPNodePtr ptr);
136
137 #ifdef __cplusplus
138 }
139 #endif
140
141 #endif