The patch makes njs_bn_bn2binpad() more similar to BN_bn2binpad().
#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
return BN_bn2binpad(bn, to, tolen);
#else
- return BN_bn2bin(bn, &to[tolen - BN_num_bytes(bn)]);
+ int len;
+
+ len = BN_num_bytes(bn);
+
+ if (tolen > len) {
+ memset(to, 0, tolen - len);
+
+ } else if (tolen < len) {
+ return -1;
+ }
+
+ return BN_bn2bin(bn, &to[tolen - len]);
#endif
}
goto fail;
}
-#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
- memset(data, 0, 2 * n);
-#endif
-
if (njs_bn_bn2binpad(ECDSA_SIG_get0_r(ec_sig), data, n) <= 0) {
goto fail;
}