代码之家  ›  专栏  ›  技术社区  ›  Dimitrios Desyllas

将一个BigNum与一个普通整数相乘

  •  1
  • Dimitrios Desyllas  · 技术社区  · 7 年前

    我有以下功能:

    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 功能,但这会给我想要的功能吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   dbush    7 年前

    你要找的功能是 BN_set_word unsigned long 价值观 BIGNUM .

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

    然后你就可以通过了 bn_val bn BN_mul .