From 75073d0a8478441cc97a6efa10b566c5fb1dac81 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Fri, 17 Apr 2020 20:57:17 +0100 Subject: New upstream version 1.4.0 --- src/assert.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'src/assert.c') diff --git a/src/assert.c b/src/assert.c index a21b308..b71d00e 100644 --- a/src/assert.c +++ b/src/assert.c @@ -152,8 +152,8 @@ fido_dev_get_assert_tx(fido_dev_t *dev, fido_assert_t *assert, } /* frame and transmit */ - if (cbor_build_frame(CTAP_CBOR_ASSERT, argv, 7, &f) < 0 || - fido_tx(dev, CTAP_FRAME_INIT | CTAP_CMD_CBOR, f.ptr, f.len) < 0) { + if (cbor_build_frame(CTAP_CBOR_ASSERT, argv, nitems(argv), &f) < 0 || + fido_tx(dev, CTAP_CMD_CBOR, f.ptr, f.len) < 0) { fido_log_debug("%s: fido_tx", __func__); r = FIDO_ERR_TX; goto fail; @@ -170,14 +170,14 @@ fail: static int fido_dev_get_assert_rx(fido_dev_t *dev, fido_assert_t *assert, int ms) { - const uint8_t cmd = CTAP_FRAME_INIT | CTAP_CMD_CBOR; - unsigned char reply[2048]; + unsigned char reply[FIDO_MAXMSG]; int reply_len; int r; fido_assert_reset_rx(assert); - if ((reply_len = fido_rx(dev, cmd, &reply, sizeof(reply), ms)) < 0) { + if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), + ms)) < 0) { fido_log_debug("%s: fido_rx", __func__); return (FIDO_ERR_RX); } @@ -211,10 +211,9 @@ fido_dev_get_assert_rx(fido_dev_t *dev, fido_assert_t *assert, int ms) static int fido_get_next_assert_tx(fido_dev_t *dev) { - const unsigned char cbor[] = { CTAP_CBOR_NEXT_ASSERT }; - const uint8_t cmd = CTAP_FRAME_INIT | CTAP_CMD_CBOR; + const unsigned char cbor[] = { CTAP_CBOR_NEXT_ASSERT }; - if (fido_tx(dev, cmd, cbor, sizeof(cbor)) < 0) { + if (fido_tx(dev, CTAP_CMD_CBOR, cbor, sizeof(cbor)) < 0) { fido_log_debug("%s: fido_tx", __func__); return (FIDO_ERR_TX); } @@ -225,12 +224,12 @@ fido_get_next_assert_tx(fido_dev_t *dev) static int fido_get_next_assert_rx(fido_dev_t *dev, fido_assert_t *assert, int ms) { - const uint8_t cmd = CTAP_FRAME_INIT | CTAP_CMD_CBOR; - unsigned char reply[2048]; + unsigned char reply[FIDO_MAXMSG]; int reply_len; int r; - if ((reply_len = fido_rx(dev, cmd, &reply, sizeof(reply), ms)) < 0) { + if ((reply_len = fido_rx(dev, CTAP_CMD_CBOR, &reply, sizeof(reply), + ms)) < 0) { fido_log_debug("%s: fido_rx", __func__); return (FIDO_ERR_RX); } @@ -363,8 +362,8 @@ check_extensions(int authdata_ext, int ext) return (0); } -static int -get_signed_hash(int cose_alg, fido_blob_t *dgst, const fido_blob_t *clientdata, +int +fido_get_signed_hash(int cose_alg, fido_blob_t *dgst, const fido_blob_t *clientdata, const fido_blob_t *authdata_cbor) { cbor_item_t *item = NULL; @@ -534,7 +533,7 @@ int fido_assert_verify(const fido_assert_t *assert, size_t idx, int cose_alg, const void *pk) { - unsigned char buf[1024]; + unsigned char buf[1024]; /* XXX */ fido_blob_t dgst; const fido_assert_stmt *stmt = NULL; int ok = -1; @@ -579,9 +578,9 @@ fido_assert_verify(const fido_assert_t *assert, size_t idx, int cose_alg, goto out; } - if (get_signed_hash(cose_alg, &dgst, &assert->cdh, + if (fido_get_signed_hash(cose_alg, &dgst, &assert->cdh, &stmt->authdata_cbor) < 0) { - fido_log_debug("%s: get_signed_hash", __func__); + fido_log_debug("%s: fido_get_signed_hash", __func__); r = FIDO_ERR_INTERNAL; goto out; } -- cgit v1.2.3