commit: db57e3849760fe7a9de6db220a11a4669db7edb1
parent 5af895d0820c2bf793bb9c61b0cda3b848d1780a
Author: Michael Forney <mforney@mforney.org>
Date: Fri, 21 Feb 2020 12:00:31 -0800
libfido2: Update to 1.3.1
Diffstat:
3 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/pkg/libfido2/patch/0004-iso7816-avoid-use-of-packed-struct.patch b/pkg/libfido2/patch/0004-iso7816-avoid-use-of-packed-struct.patch
@@ -1,4 +1,4 @@
-From b688eb258efa9c07c1deb807ed441bd04cb4e30a Mon Sep 17 00:00:00 2001
+From 690f731a76b027e1bd4009620524e4c4810b3a28 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Tue, 26 Nov 2019 18:58:05 -0800
Subject: [PATCH] iso7816: avoid use of packed struct
@@ -9,7 +9,7 @@ Subject: [PATCH] iso7816: avoid use of packed struct
2 files changed, 33 insertions(+), 39 deletions(-)
diff --git a/src/iso7816.c b/src/iso7816.c
-index e2ea281..3453df0 100644
+index a3fd280..dac5733 100644
--- a/src/iso7816.c
+++ b/src/iso7816.c
@@ -7,24 +7,40 @@
@@ -40,8 +40,8 @@ index e2ea281..3453df0 100644
- size_t alloc_len;
+ size_t max_len;
-- alloc_len = sizeof(iso7816_apdu_t) + payload_len;
-+ max_len = DATA + payload_len;
+- alloc_len = sizeof(iso7816_apdu_t) + payload_len + 2; /* le1 le2 */
++ max_len = DATA + payload_len + 2; /* le1 le2 */;
- if ((apdu = calloc(1, alloc_len)) == NULL)
+ if ((apdu = calloc(1, sizeof(*apdu) + max_len)) == NULL)
@@ -137,5 +137,5 @@ index 426cd97..fecfecc 100644
const unsigned char *iso7816_ptr(const iso7816_apdu_t *);
int iso7816_add(iso7816_apdu_t *, const void *, size_t);
--
-2.24.0
+2.25.1
diff --git a/pkg/libfido2/patch/0006-cbor-u2f-avoid-use-of-packed-struct.patch b/pkg/libfido2/patch/0006-cbor-u2f-avoid-use-of-packed-struct.patch
@@ -1,10 +1,8 @@
-From d95bfdbcaadd92fbe04df8b3134be1886377e7a2 Mon Sep 17 00:00:00 2001
+From fa78eaaf9629f94fbe26bc9cc1ad49d3a4afb6c8 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Tue, 26 Nov 2019 19:30:10 -0800
Subject: [PATCH] cbor, u2f: avoid use of packed struct
-This also fixes a bug on big-endian systems where the credential
-ID length is placed in the wrong byte.
---
src/cbor.c | 14 +++++++++--
src/types.h | 14 ++---------
@@ -80,7 +78,7 @@ index af72710..af1874a 100644
typedef struct fido_attcred {
unsigned char aaguid[16]; /* credential's aaguid */
diff --git a/src/u2f.c b/src/u2f.c
-index 22c6ac9..6db32c5 100644
+index 1512986..6db32c5 100644
--- a/src/u2f.c
+++ b/src/u2f.c
@@ -15,6 +15,29 @@
@@ -193,12 +191,12 @@ index 22c6ac9..6db32c5 100644
+ CTAP_AUTHDATA_USER_PRESENT);
- memset(&attcred_raw.aaguid, 0, sizeof(attcred_raw.aaguid));
-- attcred_raw.id_len = (uint16_t)(kh_len << 8); /* XXX */
+- attcred_raw.id_len = htobe16(kh_len);
+ /* big-endian, so second byte is LSB */
+ attcred_raw[ATTCRED_CREDENTIAL_ID_LENGTH + 1] = kh_len;
len = authdata_blob.len = sizeof(authdata) + sizeof(attcred_raw) +
kh_len + pk_blob.len;
--
-2.24.0
+2.25.1
diff --git a/pkg/libfido2/ver b/pkg/libfido2/ver
@@ -1 +1 @@
-1.3.0 r0
+1.3.1 r0