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 ); }