-1

我正在尝试通过 tcp 连接以这种方式发送 rsa 密钥(RSA *myrsa):

send(client, (char *)myrsa, sizeof(RSA), 0);

收件人会:

read_bytes = tcpSocket.read(buffer, sizeof(RSA));
RSA *myrsa = RSA_new();
memcpy((void*)myrsa, (void*)buffer, read_bytes);

然后 RSA_check_key(rsa) 返回 -1 或使程序崩溃。我做错了什么?也许它存在更合适的解决方案?也许行消息被任何转换破坏了?

4

1 回答 1

0

-1 表示数据中有错误。RSA_check_keys 方法仅验证参数是否一致,而不是数据一定有效。崩溃之类的行为也可能与错误数据一致。

几个可能存在问题的地方:你真的为缓冲区分配空间吗?您是否检查 read_bytes 的长度以确保您收到的数据可能是 RSA 密钥?

于 2012-04-23T05:46:41.083 回答