Add support for calculating SKS style key hashes
[onak.git] / keystructs.h
index 42f097118341b7a6b3e2e33263629243568c5817..c77e346e419e6ce139b54fa5993ad936ac15aecb 100644 (file)
@@ -4,8 +4,6 @@
  * Jonathan McDowell <noodles@earth.li>
  *
  * Copyright 2002 Project Purple
- *
- * $Id: keystructs.h,v 1.6 2003/06/04 20:57:09 noodles Exp $
  */
 
 #ifndef __KEYSTRUCTS_H__
@@ -67,15 +65,17 @@ struct openpgp_signedpacket_list {
 /**
  *     struct openpgp_publickey - An OpenPGP public key complete with sigs.
  *     @publickey: The OpenPGP packet for the public key.
- *     @revocation: The OpenPGP packet for the revocation [optional]
+ *     @revoked: True if the key is revoked.
+ *     @sigs: Any signatures directly on the publickey packet.
  *     @uids: The list of UIDs with signatures for this key.
  *     @subkeys: The list of subkeys with signatures for this key.
  *     @next: The next public key.
  */
 struct openpgp_publickey {
        struct openpgp_packet                   *publickey;
-       struct openpgp_packet_list              *revocations;
-       struct openpgp_packet_list              *last_revocation;
+       bool                                     revoked;
+       struct openpgp_packet_list              *sigs;
+       struct openpgp_packet_list              *last_sig;
        struct openpgp_signedpacket_list        *uids;
        struct openpgp_signedpacket_list        *last_uid;
        struct openpgp_signedpacket_list        *subkeys;
@@ -90,6 +90,8 @@ struct openpgp_publickey {
  *     @parent: The key that lead us to this one for DFS/BFS.
  *     @sigs: A linked list of the signatures on this key.
  *     @gotsigs: A bool indicating if we've initialized the sigs element yet.
+ *     @disabled: If we shouldn't consider the key in calculations.
+ *     @revoked: If the key is revoked (and shouldn't be considered).
  */
 struct stats_key {
        uint64_t keyid;
@@ -99,6 +101,15 @@ struct stats_key {
        struct ll *signs;
        bool gotsigs;
        bool disabled;
+       bool revoked;
+};
+
+/**
+ *     struct skshash - holds an SKS key hash (md5 over sorted packet list)
+ *     @hash: The 128 bit MD5 hash of the sorted packet list from the key
+ */
+struct skshash {
+       uint8_t hash[16];
 };
 
 #endif /* __KEYSTRUCTS_H__ */