OpenSSL'的输出错误;s BN_bn2dec?

OpenSSL'的输出错误;s BN_bn2dec?,openssl,Openssl,我正在尝试使用OpenSSL中的BIGNUM工具。我编写了以下测试程序: BIGNUM someSSLInt; BN_init(&someSSLInt); BN_set_word(&someSSLInt, 10); for (unsigned i=0; i<100000; i++) { BN_mul_word(&someSSLInt, 100) } char *sslstr=BN_bn2dec(&someSSLInt); printf("%s

我正在尝试使用OpenSSL中的BIGNUM工具。我编写了以下测试程序:

BIGNUM someSSLInt;

BN_init(&someSSLInt);

BN_set_word(&someSSLInt, 10);

for (unsigned i=0; i<100000; i++) {
    BN_mul_word(&someSSLInt, 100)
}

char *sslstr=BN_bn2dec(&someSSLInt);
printf("%s",sslstr);
BIGNUM someSSLInt;
BN_init(&someSSLInt);
BN_set_word(&someSSLInt,10);

for(unsigned i=0;i结果表明问题不在OpenSSL中,而是在我的输出窗口中,意外地截断了没有标记或其他内容的字符串。

我认为您需要调用:“[BN's]使用动态内存分配来存储其数据结构…”。因此可能类似于
BIGNUM*someSSLInt=BN_new()您也可以考虑检查返回值:“……这些函数所处理的数字的大小没有限制,但是在出现内存分配错误的情况下,必须始终检查返回值。”。我将代码更改为使用“new”函数,但“init”应足以用于堆栈变量。输出相同。我还对“mul”函数添加了检查,但它不返回错误。