diff options
Diffstat (limited to 'g10/packet.h')
-rw-r--r-- | g10/packet.h | 47 |
1 files changed, 31 insertions, 16 deletions
diff --git a/g10/packet.h b/g10/packet.h index 737c4a586..e80711759 100644 --- a/g10/packet.h +++ b/g10/packet.h @@ -62,6 +62,17 @@ typedef enum { CTRLPKT_PLAINTEXT_MARK =3 } ctrlpkttype_t; +typedef enum { + PREFTYPE_NONE = 0, + PREFTYPE_SYM = 1, + PREFTYPE_HASH = 2, + PREFTYPE_ZIP = 3 +} preftype_t; + +typedef struct { + byte type; + byte value; +} prefitem_t; typedef struct { int mode; @@ -102,6 +113,7 @@ typedef struct { byte data[1]; } subpktarea_t; + typedef struct { ulong local_id; /* internal use, valid if > 0 */ struct { @@ -123,6 +135,21 @@ typedef struct { } PKT_signature; +typedef struct { + int ref; /* reference counter */ + int len; /* length of the name */ + char *photo; /* if this is not NULL, the packet is a photo ID */ + int photolen; /* and the length of the photo */ + int help_key_usage; + u32 help_key_expire; + int is_primary; + int is_revoked; + prefitem_t *prefs; /* list of preferences (may be NULL)*/ + u32 created; /* according to the self-signature */ + char name[1]; +} PKT_user_id; + + /**************** * Note about the pkey/skey elements: We assume that the secret keys * has the same elemts as the public key at the begin of the array, so @@ -144,7 +171,9 @@ typedef struct { 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() */ + prefitem_t *prefs; /* list of preferences (may be NULL) */ byte *namehash; /* if != NULL: found by this name */ + PKT_user_id *user_id; /* if != NULL: found by that uid */ MPI pkey[PUBKEY_MAX_NPKEY]; } PKT_public_key; @@ -184,18 +213,6 @@ typedef struct { } PKT_comment; typedef struct { - int len; /* length of the name */ - char *photo; /* if this is not NULL, the packet is a photo ID */ - int photolen; /* and the length of the photo */ - int help_key_usage; - u32 help_key_expire; - int is_primary; - int is_revoked; - u32 created; /* according to the self-signature */ - char name[1]; -} PKT_user_id; - -typedef struct { u32 len; /* reserved */ byte new_ctb; byte algorithm; @@ -365,14 +382,12 @@ void free_secret_key( PKT_secret_key *sk ); void free_user_id( PKT_user_id *uid ); void free_comment( PKT_comment *rem ); void free_packet( PACKET *pkt ); +prefitem_t *copy_prefs (const prefitem_t *prefs); PKT_public_key *copy_public_key( PKT_public_key *d, PKT_public_key *s ); -PKT_public_key *copy_public_key_new_namehash( PKT_public_key *d, - PKT_public_key *s, - const byte *namehash ); void copy_public_parts_to_secret_key( PKT_public_key *pk, PKT_secret_key *sk ); PKT_secret_key *copy_secret_key( PKT_secret_key *d, PKT_secret_key *s ); PKT_signature *copy_signature( PKT_signature *d, PKT_signature *s ); -PKT_user_id *copy_user_id( PKT_user_id *d, PKT_user_id *s ); +PKT_user_id *scopy_user_id (PKT_user_id *sd ); int cmp_public_keys( PKT_public_key *a, PKT_public_key *b ); int cmp_secret_keys( PKT_secret_key *a, PKT_secret_key *b ); int cmp_signatures( PKT_signature *a, PKT_signature *b ); |