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