* 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"
-/* v3 MD5 fingerprint is 16 characters, v4 SHA-1 fingerprint is 20 */
-#define MAX_FINGERPRINT_LEN 20
+/*
+ * 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.