* 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 <https://www.gnu.org/licenses/>.
*/
#ifndef __KEYSTRUCTS_H__
#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.
*
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)
*/