/*
* keystructs.h - Structures for OpenPGP keys
*
- * Jonathan McDowell <noodles@earth.li>
+ * Copyright 2002 Jonathan McDowell <noodles@earth.li>
*
- * Copyright 2002 Project Purple
+ * 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.
*
- * $Id: keystructs.h,v 1.6 2003/06/04 20:57:09 noodles Exp $
+ * 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.
+ *
+ * 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__
/**
* 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;
* @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;
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__ */