- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我安装了过时的 OpenSSL_0_9_6-beta3
版本的 OpenSSL。函数 RSA_generate_key
定义如下:
RSA * RSA_generate_key(int bits, unsigned long e,void (*callback)(int,int,void *),void *cb_arg)
这是我的测试代码:
#include <openssl/rsa.h>
int main(){
unsigned long e = RSA_F4;
RSA *r = RSA_generate_key(512, e, NULL, NULL);
const BIGNUM *n = r->n;
BN_print_fp(stdout, n);
RSA_free(r);
return 0;
}
当我运行它时,它会一直循环下去。在 Valgrind 下运行时,我明白了原因:
Conditional jump or move depends on uninitialized value(s)
我想那是因为我不明白函数签名的真正含义,并且我将不正确的参数传递给它 - 自从在 OpenSSL 中一直以来,当被提供不正确的参数时,方法循环一直存在问题。这就是我来这里问你是否理解函数签名的原因,因为我在互联网上找不到任何指南。
最佳答案
What does cb_arg in old versions of OpenSSL mean?
RSA_generate_key(int bits, unsigned long e,void (*callback)(int,int,void *),void *cb_arg)
它是一个函数回调。它允许您在 RSA key 生成期间实现进度条,因为该操作可能需要很长时间。
RSA_generate_key
已弃用。您应该改用 RSA_generate_key_ex
。
另见 How to generate RSA private key using openssl?在 Stack Overflow 上,RSA_generate_key
man page和 RSA_generate_key_ex
man page .
Conditional jump or move depends on uninitialized value(s)
您应该提供发现的背景。此外,请务必使用 -O1
编译 OpenSSL 和您的程序。如果优化太高,则 Valgrind 会产生误报。另见 The Valgrind Quick Start Guide .
关于c - 旧版本的 OpenSSL 中的 cb_arg 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45432765/
我安装了过时的 OpenSSL_0_9_6-beta3 版本的 OpenSSL。函数 RSA_generate_key 定义如下: RSA * RSA_generate_key(int bits, u
我是一名优秀的程序员,十分优秀!