X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=keystructs.h;h=18a9ba4ce12ca29017bafab63e256ed5d3ecc8a4;hb=de18b56efecadc4b5d2473904828db9c08cd2162;hp=efa9a99e6daf4bb1517a12ab69d08d593f8b7421;hpb=d38e1f468376f8b19b208f2da4d20cb2919875dd;p=onak.git diff --git a/keystructs.h b/keystructs.h index efa9a99..18a9ba4 100644 --- a/keystructs.h +++ b/keystructs.h @@ -14,8 +14,7 @@ * 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. + * this program. If not, see . */ #ifndef __KEYSTRUCTS_H__ @@ -27,6 +26,28 @@ #include "ll.h" +/* + * Fingerprint lengths + * + * v3 MD5 fingerprint is 16 bytes + * v4 SHA-1 fingerprint is 20 + * v5 SHA2-256 fingerprint is 32 + */ +#define FINGERPRINT_V3_LEN 16 +#define FINGERPRINT_V4_LEN 20 +#define FINGERPRINT_V5_LEN 32 +#define MAX_FINGERPRINT_LEN 32 + +/** + * @brief Stores the fingerprint of an OpenPGP key + */ +struct openpgp_fingerprint { + /** Length of fingerprint. 16 bytes for v3, 20 for v4 */ + size_t length; + /** Fingerprint data. Only the first length bytes are valid */ + uint8_t fp[MAX_FINGERPRINT_LEN]; +}; + /** * @brief Stores an OpenPGP packet. * @@ -99,28 +120,6 @@ struct openpgp_publickey { struct openpgp_publickey *next; }; -/** - * @brief Holds key details suitable for doing stats on. - */ -struct stats_key { - /** The keyid. */ - uint64_t keyid; - /** Used for marking during DFS/BFS. */ - int colour; - /** The key that lead us to this one for DFS/BFS. */ - uint64_t parent; - /** A linked list of the signatures on this key. */ - struct ll *sigs; - /** A linked list of the keys this key signs. */ - struct ll *signs; - /** A bool indicating if we've initialized the sigs element yet. */ - bool gotsigs; - /** If we shouldn't consider the key in calculations. */ - bool disabled; - /** If the key is revoked (and shouldn't be considered). */ - bool revoked; -}; - /** * @brief Holds an SKS key hash (md5 over sorted packet list) */