X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/4b8483ae278577a3adc8d84da81d77019704466f..8d14d66b84cc370cefe54b33de1b95bb49c90bf6:/keystructs.h?ds=sidebyside diff --git a/keystructs.h b/keystructs.h index 33dba65..33c6226 100644 --- a/keystructs.h +++ b/keystructs.h @@ -9,7 +9,11 @@ #ifndef __KEYSTRUCTS_H__ #define __KEYSTRUCTS_H__ +#include #include +#include + +#include "ll.h" /** * struct openpgp_packet - Stores an OpenPGP packet. @@ -61,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; @@ -77,4 +83,25 @@ struct openpgp_publickey { struct openpgp_publickey *next; }; +/** + * struct stats_key - holds key details suitable for doing stats on. + * @keyid: The keyid. + * @colour: Used for marking during DFS/BFS. + * @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; +}; + #endif /* __KEYSTRUCTS_H__ */