From e3c5c26f54910c90c460df4dc150a99a21fb7fa6 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Fri, 24 May 2013 05:32:53 +0200 Subject: [PATCH] Allow private keys with less-than-32-byte secrets --- src/impl/ecdsa.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/impl/ecdsa.h b/src/impl/ecdsa.h index f299b5cdcc0..1d45e211584 100644 --- a/src/impl/ecdsa.h +++ b/src/impl/ecdsa.h @@ -239,10 +239,10 @@ int static secp256k1_ecdsa_privkey_parse(secp256k1_num_t *key, const unsigned ch if (end < privkey+3 || privkey[0] != 0x02 || privkey[1] != 0x01 || privkey[2] != 0x01) return 0; privkey += 3; - // sequence element 1: octet string, 32 bytes - if (end < privkey+34 || privkey[0] != 0x04 || privkey[1] != 0x20) + // sequence element 1: octet string, up to 32 bytes + if (end < privkey+2 || privkey[0] != 0x04 || privkey[1] > 0x20 || end < privkey+2+privkey[1]) return 0; - secp256k1_num_set_bin(key, privkey+2, 32); + secp256k1_num_set_bin(key, privkey+2, privkey[1]); return 1; }