X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/0f4971d043c38bae1bfb95201622a1405110f899..94ffe75fd3251c74320167cf94604e73fdb99dfc:/keystructs.h diff --git a/keystructs.h b/keystructs.h index 42f0971..fcfed12 100644 --- a/keystructs.h +++ b/keystructs.h @@ -1,11 +1,21 @@ -/* - * keystructs.h - Structures for OpenPGP keys +/** + * @file keystructs.h + * @brief Structures for OpenPGP keys + * + * Copyright 2002 Jonathan McDowell * - * Jonathan McDowell + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; version 2 of the License. * - * Copyright 2002 Project Purple + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. * - * $Id: keystructs.h,v 1.6 2003/06/04 20:57:09 noodles Exp $ + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 51 + * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __KEYSTRUCTS_H__ @@ -18,87 +28,83 @@ #include "ll.h" /** - * struct openpgp_packet - Stores an OpenPGP packet. - * @tag: The packet tag (ie type). - * @newformat: Indicates if this is a new format packet. - * @length: The length of the packet. - * @data: The actual packet + * @brief Stores an OpenPGP packet. * - * This structure holds any form of OpenPGP packet with minimum common - * details decoded out. + * This structure holds any form of OpenPGP packet with minimum common + * details decoded out. */ struct openpgp_packet { + /** The packet tag (i.e. type). */ unsigned int tag; + /** Indicates if this is a new format packet. */ bool newformat; + /** The length of the packet. */ size_t length; + /** The actual packet data. */ unsigned char *data; }; /** - * struct openpgp_packet_list - A linked list of OpenPGP packets. - * @packet: The actual packet structure. - * @next: A pointer to the next packet in the list. + * @brief A linked list of OpenPGP packets. * - * This structure is used to hold a linked list of packets, for example - * all the signatures of a public key's UID. + * This structure is used to hold a linked list of packets, for example + * all the signatures of a public key's UID. */ struct openpgp_packet_list { + /** The actual packet structure. */ struct openpgp_packet *packet; + /** A pointer to the next packet in the list. */ struct openpgp_packet_list *next; }; /** - * struct openpgp_signedpacket_list - A packet with signatures. - * @uid: The OpenPGP packet that's signed. - * @sigs: A list of sigs for the packet. - * @next: A pointer to the next packet with signatures. + * @brief A packet with signatures. * - * This structure holds an OpenPGP packet along with signatures that are - * over this packet. It also links to the next signed packet. It's usually - * used to hold a UID or subkey with their associated signatures. + * This structure holds an OpenPGP packet along with signatures that are + * over this packet. It also links to the next signed packet. It's usually + * used to hold a UID or subkey with their associated signatures. */ struct openpgp_signedpacket_list { + /** The OpenPGP packet that's signed. */ struct openpgp_packet *packet; + /** A linked list of sigs for the packet. */ struct openpgp_packet_list *sigs; + /** Pointer to the last sig in the sigs linked list */ struct openpgp_packet_list *last_sig; + /** A pointer to the next packet with signatures. */ struct openpgp_signedpacket_list *next; }; /** - * 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] - * @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. + * @brief An OpenPGP public key complete with sigs. */ struct openpgp_publickey { + /** The OpenPGP packet for the public key. */ struct openpgp_packet *publickey; - struct openpgp_packet_list *revocations; - struct openpgp_packet_list *last_revocation; + /** True if the key is revoked. */ + bool revoked; + /** Any signatures directly on the @a publickey packet. */ + struct openpgp_packet_list *sigs; + /** Pointer to the end of the @a sigs list */ + struct openpgp_packet_list *last_sig; + /** The list of UIDs with signatures for this key. */ struct openpgp_signedpacket_list *uids; + /** Pointer to the end of the @a uids list */ struct openpgp_signedpacket_list *last_uid; + /** The list of subkeys with signatures for this key. */ struct openpgp_signedpacket_list *subkeys; + /** Pointer to the end of the @a subkey list */ struct openpgp_signedpacket_list *last_subkey; + /** The next public key. */ 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. + * @brief Holds an SKS key hash (md5 over sorted packet list) */ -struct stats_key { - uint64_t keyid; - int colour; - uint64_t parent; - struct ll *sigs; - struct ll *signs; - bool gotsigs; - bool disabled; +struct skshash { + /** The 128 bit MD5 hash of the sorted packet list from the key */ + uint8_t hash[16]; }; #endif /* __KEYSTRUCTS_H__ */