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