## include/gpg.h

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

## FUNCTIONS

This source file includes following functions.

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

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