存储OpenSSL BIGNUM操作结果

时间:2016-02-15 13:07:47

标签: openssl bignum

BIGNUM上的OpenSSL函数将第一个参数作为存储结果的变量,例如 int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b);,计算r=a+b; 在以下语句中使用a是否安全,或者我应该声明一个新变量来保存结果?

BN_add(a, a, b);

1 个答案:

答案 0 :(得分:2)

安全,您可以在crypto/bn/bntest.c中查找示例。在那里你可以找到如下代码:

    BN_add(&c, &c, &b);
    BN_sub(&c, &c, &a);

此外,根据https://www.openssl.org/docs/manmaster/crypto/BN_add.html

  

BN_add()添加a和b并将结果放在r(r = a + b)中。可能是   与a或b相同的BIGNUM。