存储 OpenSSL BIIGNUM 操作结果



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

BN_add(a, a, b);

这是安全的,您可以在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。

最新更新