modules/pa/gpg.h

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following functions.

   1 /***************************************
   2   $Revision: 1.20 $
   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,2001,2002                    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]; /* Deprecated */
  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   char keyOwner[STRING_LENGTH];
  87 };
  88 
  89 struct RemoveKeyObject {
  90   char iFilename[FILENAME_LENGTH];
  91   char keyRing[FILENAME_LENGTH];
  92   int rc;
  93   u32 keyID; 
  94 };
  95 
  96 enum {
  97    iKO_OK  = 0,
  98    iKO_UNCHANGED,
  99    iKO_NOUSERID,
 100    iKO_GENERAL,
 101    iKO_NOTVALIDUSERID,
 102    iKO_NOPUBLICKEY,
 103    iKO_NODEFAULTPUBLICKEYRING,
 104    iKO_CRC_ERROR,
 105    iKO_NO_OPENPGP_DATA,
 106    iKO_NO_IN_FILES,
 107    iKO_SECRET_KEY_PRESENT,
 108    iKO_INVALID_ARMOR_HEADER,
 109    iKO_MULTIPLE_KEYS,
 110    iKO_GENERALFAILURE
 111 };
 112 
 113 enum {
 114    vSO_IS_VALID  = 0,
 115    vSO_KO,
 116    vSO_CRC_ERROR,
 117    vSO_NO_PUBLIC_KEY,
 118    vSO_NO_OPENPGP_DATA,
 119    vSO_NO_IN_FILES,
 120    vSO_NO_OUT_FILES
 121 };
 122 
 123 enum {
 124   vSO_Type_PlainText = 0,
 125   vSO_Type_Unparsed,
 126   vSO_Type_ToBeGPGVerified,
 127   vSO_Type_Signed
 128 };
 129 
 130 #ifdef __cplusplus
 131 extern "C" {
 132 #endif
 133 
 134 void PA_SetGPGCmd(char* path);
 135 void PA_SetKeyRing(char* path);
 136 void PA_SetOutputPrefix(char* path);
 137 void PA_VerifySignature(struct VerifySignObject *vSO);
 138 void PA_ImportKey(struct ImportKeyObject *iKO);
 139 void PA_RemoveKey_withKeyID(struct ImportKeyObject *iKO);
 140 void PA_RemoveKey(struct ImportKeyObject *iKO);
 141 void PA_Decrypt(struct ReadCryptedObject *rDO);
 142 EPNodePtr PA_ParseMessage(EPNodePtr ptr);
 143 void GetFingerPrint(struct ImportKeyObject *iKO);
 144 void GetKeyOwner(struct ImportKeyObject *iKO);
 145 
 146 #ifdef __cplusplus
 147  }
 148 #endif
 149 
 150 #endif

/* [<][>][^][v][top][bottom][index][help] */