* plaintext.c (handle_plaintext): Accept 'u' as a plaintext mode that
[gnupg.git] / g10 / packet.h
index c391c53..558a603 100644 (file)
@@ -1,6 +1,6 @@
 /* packet.h - packet definitions
- * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
- *                                             Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003,
+ *               2004 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -122,15 +122,16 @@ struct revocation_key {
 };
 
 typedef struct {
-    ulong   local_id;      /* internal use, valid if > 0 */
     struct {
        unsigned checked:1; /* signature has been checked */
        unsigned valid:1;   /* signature is good (if checked is set) */
+        unsigned chosen_selfsig:1; /* a selfsig that is the chosen one */
        unsigned unknown_critical:1;
         unsigned exportable:1;
         unsigned revocable:1;
-        unsigned policy_url:1; /* Policy URL is present */
+        unsigned policy_url:1; /* At least one policy URL is present */
         unsigned notation:1; /* At least one notation is present */
+        unsigned pref_ks:1;  /* At least one preferred keyserver is present */
         unsigned expired:1;
     } flags;
     u32     keyid[2];      /* 64 bit keyid */
@@ -196,6 +197,7 @@ typedef struct {
     u32     timestamp;     /* key made */
     u32     expiredate;     /* expires at this date or 0 if not at all */
     u32     max_expiredate; /* must not expire past this date */
+    u32     revokedate;     /* revoked at this date */
     byte    hdrbytes;      /* number of header bytes */
     byte    version;
     byte    selfsigversion; /* highest version of all of the self-sigs */
@@ -204,10 +206,12 @@ typedef struct {
     byte    req_usage;      /* hack to pass a request to getkey() */
     byte    req_algo;       /* Ditto */
     u32     has_expired;    /* set to the expiration date if expired */ 
-    int     is_revoked;     /* key has been revoked */
+    int     is_revoked;     /* key has been revoked, 1 if by the
+                              owner, 2 if by a designated revoker */
+    int     maybe_revoked;  /* a designated revocation is present, but
+                              without the key to check it */
     int     is_valid;       /* key (especially subkey) is valid */
     int     dont_cache;     /* do not cache this */
-    ulong   local_id;      /* internal use, valid if > 0 */
     u32     main_keyid[2];  /* keyid of the primary key */
     u32     keyid[2];      /* calculated by keyid_from_pk() */
     byte    is_primary;
@@ -276,6 +280,7 @@ typedef struct {
     u32  len;            /* length of encrypted data */
     int  extralen;        /* this is (blocksize+2) */
     byte new_ctb;        /* uses a new CTB */
+    byte is_partial;      /* partial length encoded */
     byte mdc_method;     /* > 0: integrity protected encrypted data packet */
     IOBUF buf;           /* IOBUF reference */
 } PKT_encrypted;
@@ -359,6 +364,7 @@ typedef enum {
     SIGSUBPKT_SIGNERS_UID  =28, /* signer's user id */
     SIGSUBPKT_REVOC_REASON =29, /* reason for revocation */
     SIGSUBPKT_FEATURES     =30, /* feature flags */
+    SIGSUBPKT_SIGNATURE    =32, /* embedded signature */
 
     SIGSUBPKT_FLAG_CRITICAL=128
 } sigsubpkttype_t;
@@ -423,7 +429,6 @@ PACKET *create_gpg_control ( ctrlpkttype_t type,
 /*-- build-packet.c --*/
 int build_packet( IOBUF inp, PACKET *pkt );
 u32 calc_packet_length( PACKET *pkt );
-void hash_public_key( MD_HANDLE md, PKT_public_key *pk );
 void build_sig_subpkt( PKT_signature *sig, sigsubpkttype_t type,
                        const byte *buffer, size_t buflen );
 void build_sig_subpkt_from_sig( PKT_signature *sig );
@@ -460,8 +465,8 @@ int cmp_user_ids( PKT_user_id *a, PKT_user_id *b );
 
 /*-- sig-check.c --*/
 int signature_check( PKT_signature *sig, MD_HANDLE digest );
-int signature_check2( PKT_signature *sig, MD_HANDLE digest,
-                     u32 *r_expiredate, int *r_expired );
+int signature_check2( PKT_signature *sig, MD_HANDLE digest, u32 *r_expiredate,
+                     int *r_expired, int *r_revoked, PKT_public_key *ret_pk );
 
 /*-- seckey-cert.c --*/
 int is_secret_key_protected( PKT_secret_key *sk );