我有以下功能:
BIGNUM * multiplyWithInt(BIGNUM *bn, int val){
//Logic Here
}我尝试做的是计算乘法bn*val。根据文档(来自命令man bn)的乘法如下所示:
int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx);正如您所看到的,我需要以某种方式将整数val转换为openssl的BIGNUM。我怎么能做到这一点?一种方法是将其转换为unsigned char *字节数组并使用BN_bin2bn函数,但这能提供所需的功能吗?
发布于 2019-02-04 03:54:57
您要查找的函数是BN_set_word。这会将unsigned long值分配给BIGNUM。
BIGNUM *bn_val = BN_new();
BN_set_word(bn_val , val);然后,您可以将bn_val和bn传递给BN_mul。
https://stackoverflow.com/questions/54506788
复制相似问题