From b6bf4bb389cbb7c7f1c1b4c2c04d309d2d1a9e83 Mon Sep 17 00:00:00 2001 From: Daniel Larimer Date: Fri, 2 Aug 2013 17:14:26 -0400 Subject: [PATCH] fix edge condition in generating ecc key from seed --- src/crypto/elliptic.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/crypto/elliptic.cpp b/src/crypto/elliptic.cpp index d4cf5cb..cedad1d 100644 --- a/src/crypto/elliptic.cpp +++ b/src/crypto/elliptic.cpp @@ -279,8 +279,9 @@ struct ssl_bignum BN_mod(secexp, secexp, order, ctx); fc::sha256 secret; - assert(BN_num_bytes(secexp) == sizeof(secret)); - BN_bn2bin(secexp, (unsigned char*)&secret); + assert(BN_num_bytes(secexp) <= int64_t(sizeof(secret))); + auto shift = sizeof(secret) - BN_num_bytes(secexp); + BN_bn2bin(secexp, ((unsigned char*)&secret)+shift); return regenerate( secret ); }