Add support for calculating SKS style key hashes
[onak.git] / keystructs.h
index ec1d55556719b1f758c2d660095bdc1506c6a47c..c77e346e419e6ce139b54fa5993ad936ac15aecb 100644 (file)
@@ -65,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;
@@ -88,13 +90,26 @@ 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;
        int colour;
        uint64_t parent;
        struct ll *sigs;
+       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__ */