From d9c5bf2ea16e314dfe40574f5d1ca7b1abfafdc4 Mon Sep 17 00:00:00 2001 From: Conor Patrick Date: Thu, 24 May 2018 21:29:44 -0400 Subject: [PATCH] wrong order --- ctap.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ctap.c b/ctap.c index 13793e3..1124086 100644 --- a/ctap.c +++ b/ctap.c @@ -354,11 +354,7 @@ int ctap_calculate_signature(uint8_t * data, int datalen, uint8_t * clientDataHa printf1(TAG_GREEN, "sha256: "); dump_hex1(TAG_DUMP,hashbuf,32); crypto_ecc256_sign(hashbuf, 32, sigbuf); - // Need to caress into dumb der format .. - int8_t pad_s = ((sigbuf[32 + lead_s] & 0x80) == 0x80); // Is MSBit a 1? - int8_t pad_r = ((sigbuf[0 + lead_r] & 0x80) == 0x80); - int8_t lead_s = 0; // leading zeros int8_t lead_r = 0; for (i=0; i < 32; i++) @@ -369,6 +365,9 @@ int ctap_calculate_signature(uint8_t * data, int datalen, uint8_t * clientDataHa if (sigbuf[i+32] == 0) lead_s++; else break; + int8_t pad_s = ((sigbuf[32 + lead_s] & 0x80) == 0x80); + int8_t pad_r = ((sigbuf[0 + lead_r] & 0x80) == 0x80); + sigder[0] = 0x30; sigder[1] = 0x44 + pad_s + pad_r - lead_s - lead_r;