1 | /* FP: interface file for RIPE gnuPG */
2 |
3 | #define INPUT_FD 0
4 | #define OUTPUT_FD 1
5 | #define ERROR_FD 2
6 |
7 | #define LINE_LENGTH 1024
8 | #define STRING_LENGTH 255
9 | #define FILENAME_LENGTH 1024
10 |
11 | #define ERRSTRING strerror (errno)
12 |
13 | /* FP : global objects used as and interface with gnuPG */
14 |
15 | typedef unsigned int u32;
16 |
17 | struct VerifySignObject {
18 | char iDocSigFilename[FILENAME_LENGTH], /* IN */
19 | iSigFilename[FILENAME_LENGTH], /* IN */
20 | outputPath[FILENAME_LENGTH], /* IN */
21 | oStream[FILENAME_LENGTH]; /* OUT */
22 |
23 | char keyRing[FILENAME_LENGTH];
24 | int isValid;
25 | u32 keyID;
26 | struct VerifySignObject *next;
27 | };
28 |
29 | struct ReadCryptedObject {
30 | char iFilename[FILENAME_LENGTH],
31 | oStream[FILENAME_LENGTH];
32 | char keyRing[FILENAME_LENGTH];
33 | int isValid;
34 | u32 keyID;
35 | };
36 |
37 | struct ImportKeyObject {
38 | char iFilename[FILENAME_LENGTH];
39 | char keyRing[FILENAME_LENGTH];
40 | int rc;
41 | u32 keyID; /* check if it works */
42 | };
43 |
44 | enum {
45 | iKO_OK = 0,
46 | iKO_UNCHANGED,
47 | iKO_NOUSERID,
48 | iKO_GENERAL,
49 | iKO_NOTVALIDUSERID,
50 | iKO_NOPUBLICKEY,
51 | iKO_NODEFAULTPUBLICKEYRING,
52 | iKO_CRC_ERROR,
53 | iKO_NO_OPENPGP_DATA,
54 | iKO_NO_IN_FILES,
55 | iKO_GENERALFAILURE
56 | };
57 |
58 | enum {
59 | vSO_KO = 0,
60 | vSO_IS_VALID,
61 | vSO_CRC_ERROR,
62 | vSO_NO_PUBLIC_KEY,
63 | vSO_NO_OPENPGP_DATA,
64 | vSO_NO_IN_FILES,
65 | vSO_NO_OUT_FILES
66 | };
67 |
68 | #ifdef __cplusplus
69 | extern "C" {
70 | #endif
71 |
72 | void PA_VerifySignature(struct VerifySignObject *vSO);
73 | void PA_ImportKey(struct ImportKeyObject *iKO);
74 | void PA_Decrypt(struct ReadCryptedObject *rDO);
75 |
76 | #ifdef __cplusplus
77 | }
78 | #endif