乘以BIGNUM与普通整数

问题描述 投票:1回答:1

我有以下功能:

BIGNUM * multiplyWithInt(BIGNUM *bn, int val){
  //Logic Here
}

我尝试做的是计算乘法bn*val。根据文档(从命令man bn给出)乘法如下:

int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx);

正如你可以看到我需要以某种方式TOI转换整数val到OpenSSL的BIGNUM。我该怎么办呢?一种方法是将其转换为unsigned char *字节数组,并使用BN_bin2bn功能,但将是给我所需的功能?

c openssl bignum
1个回答
1
投票

你要找的功能是BN_set_word。此分配一个unsigned long值到BIGNUM

BIGNUM *bn_val = BN_new();
BN_set_word(bn_val , val);

然后,您可以通过bn_valbnBN_mul

© www.soinside.com 2019 - 2024. All rights reserved.