Source File include/gpg.h

    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