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, *inner;
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;
42 | char fingerPrint[STRING_LENGTH];
43 | };
44 |
45 | struct RemoveKeyObject {
46 | char iFilename[FILENAME_LENGTH];
47 | char keyRing[FILENAME_LENGTH];
48 | int rc;
49 | u32 keyID;
50 | };
51 |
52 | enum {
53 | iKO_OK = 0,
54 | iKO_UNCHANGED,
55 | iKO_NOUSERID,
56 | iKO_GENERAL,
57 | iKO_NOTVALIDUSERID,
58 | iKO_NOPUBLICKEY,
59 | iKO_NODEFAULTPUBLICKEYRING,
60 | iKO_CRC_ERROR,
61 | iKO_NO_OPENPGP_DATA,
62 | iKO_NO_IN_FILES,
63 | iKO_SECRET_KEY_PRESENT,
64 | iKO_GENERALFAILURE
65 | };
66 |
67 | enum {
68 | vSO_IS_VALID = 0,
69 | vSO_KO,
70 | vSO_CRC_ERROR,
71 | vSO_NO_PUBLIC_KEY,
72 | vSO_NO_OPENPGP_DATA,
73 | vSO_NO_IN_FILES,
74 | vSO_NO_OUT_FILES
75 | };
76 |
77 | #ifdef __cplusplus
78 | extern "C" {
79 | #endif
80 |
81 | void PA_VerifySignature(struct VerifySignObject *vSO);
82 | void PA_ImportKey(struct ImportKeyObject *iKO);
83 | void PA_RemoveKey(struct ImportKeyObject *iKO);
84 | void PA_Decrypt(struct ReadCryptedObject *rDO);
85 |
86 | #ifdef __cplusplus
87 | }
88 | #endif