gpt4 book ai didi

c - 不确定在 char 中存储 BIGNUM 的参数 - BN_bn2bin()

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:27 24 4
gpt4 key购买 nike

我有以下代码:

/*
* Special note about BN_bn2bin():
* OpenSSL's BN_bn2bin() will truncate numbers at the front, but ISAKMP
* wants leading zero's instead.
*/
void _BN_encode(BIGNUM *bn, unsigned char *p, int len)
{
int pad;

assert(bn);
if ((pad = len - BN_num_bytes(bn))) {
if (pad < 0) {
assert(1);
return;
}
memset(p, '\0', 1);
BN_bn2bin(bn, p + pad);
} else {
BN_bn2bin(bn, p);
}
}

我发现 *bn 是我想要转换的 BIGNUM,*p 是我想要存储它的地方,但是参数 len 应该是什么?

我也在看 this似乎相关的问题。任何建议将不胜感激!

编辑

这是否正确?

_BN_encode(bignum, bin_bignum, sizeof(char));

最佳答案

lenp 指向的缓冲区的长度。该函数将转换后的 bignum 填充到 len 字节(带有零,这不会改变表示的数字的数学值)。

顺便说一句,该函数似乎有一个错误 - 我强烈怀疑 memset() 调用应该是 memset(p, 0, pad);

关于c - 不确定在 char 中存储 BIGNUM 的参数 - BN_bn2bin(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19003264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com