首先,我不确定这是一个特定的平台错误。我正在使用 openssl 库来生成大素数和私钥/公钥。当素数相对较小(128 位)时,它运行良好,但当素数变大(256、512 位)时,我无法编译并出现错误。
DH * params = DH_new();
params = DH_generate_parameters(512, 5, NULL, NULL);
DH_generate_key(params); // can't get through this point when prime bits getting bigger
上面的代码产生了一个错误:
malloc: *** error for object 0x7ffba8403c88: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
我在 MAC OX 10.8.2 上使用 openssl 1.0.1。我很感激任何建议。
更新:产生这种错误的另一种方法是在上述代码之前创建一个线程。无论哪种方式,它总是在子程序 DH_generate_key 处给我错误。