diff --git a/pico-keys-sdk b/pico-keys-sdk index a271785..9e2b6ac 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit a271785814583757e493bedaab24635a4f8a6a54 +Subproject commit 9e2b6ac4b6ad7f978b5c28600a007136fc6cb2ce diff --git a/src/openpgp/openpgp.c b/src/openpgp/openpgp.c index 926fbb1..536d922 100644 --- a/src/openpgp/openpgp.c +++ b/src/openpgp/openpgp.c @@ -107,7 +107,7 @@ static int cmd_select() { uint16_t fid = 0x0; if (apdu.nc >= 2) { - fid = get_uint16_t(apdu.data, 0); + fid = get_uint16_t_be(apdu.data); } if (!pe) { @@ -1321,14 +1321,14 @@ void make_rsa_response(mbedtls_rsa_context *rsa) { res_APDU_size = 5; res_APDU[res_APDU_size++] = 0x81; res_APDU[res_APDU_size++] = 0x82; - put_uint16_t(mbedtls_mpi_size(&rsa->N), res_APDU + res_APDU_size); res_APDU_size += 2; + put_uint16_t_be(mbedtls_mpi_size(&rsa->N), res_APDU + res_APDU_size); res_APDU_size += 2; mbedtls_mpi_write_binary(&rsa->N, res_APDU + res_APDU_size, mbedtls_mpi_size(&rsa->N)); res_APDU_size += mbedtls_mpi_size(&rsa->N); res_APDU[res_APDU_size++] = 0x82; res_APDU[res_APDU_size++] = mbedtls_mpi_size(&rsa->E) & 0xff; mbedtls_mpi_write_binary(&rsa->E, res_APDU + res_APDU_size, mbedtls_mpi_size(&rsa->E)); res_APDU_size += mbedtls_mpi_size(&rsa->E); - put_uint16_t(res_APDU_size - 5, res_APDU + 3); + put_uint16_t_be(res_APDU_size - 5, res_APDU + 3); } void make_ecdsa_response(mbedtls_ecdsa_context *ecdsa) { diff --git a/src/openpgp/piv.c b/src/openpgp/piv.c index 6b37772..dc72d99 100644 --- a/src/openpgp/piv.c +++ b/src/openpgp/piv.c @@ -475,7 +475,7 @@ static int cmd_get_metadata() { } res_APDU[res_APDU_size++] = 0x81; res_APDU[res_APDU_size++] = 0x82; - put_uint16_t(mbedtls_mpi_size(&ctx.N), res_APDU + res_APDU_size); res_APDU_size += 2; + put_uint16_t_be(mbedtls_mpi_size(&ctx.N), res_APDU + res_APDU_size); res_APDU_size += 2; mbedtls_mpi_write_binary(&ctx.N, res_APDU + res_APDU_size, mbedtls_mpi_size(&ctx.N)); res_APDU_size += mbedtls_mpi_size(&ctx.N); res_APDU[res_APDU_size++] = 0x82;