我有一个 C++ 应用程序,它有自己的例程来发送和接收数据。我想使用 OpenSSL 对部分数据应用 AES 加密。不幸的是,我无法像大多数示例那样将整个连接移交给 OpenSSL,我什至无法为 OpenSSL 提供用于从中读取数据的套接字。
我想将我的数据作为内存缓冲区传入和传出,并且我还分别传输了密钥。有没有人有一个例子如何使用 OpenSSL API 来完成?
我已经看到代码会摆弄 OpenSSL 的内部指针和结构,但依赖于某个 OpenSSL 版本,我非常希望避免这种情况。
我有一个 C++ 应用程序,它有自己的例程来发送和接收数据。我想使用 OpenSSL 对部分数据应用 AES 加密。不幸的是,我无法像大多数示例那样将整个连接移交给 OpenSSL,我什至无法为 OpenSSL 提供用于从中读取数据的套接字。
我想将我的数据作为内存缓冲区传入和传出,并且我还分别传输了密钥。有没有人有一个例子如何使用 OpenSSL API 来完成?
我已经看到代码会摆弄 OpenSSL 的内部指针和结构,但依赖于某个 OpenSSL 版本,我非常希望避免这种情况。
我认为你应该看看 cryptlib http://www.cs.auckland.ac.nz/~pgut001/cryptlib/
以下是 cryptlib 网站上示例链接的片段:
CRYPT_SESSION cryptSession;
/* Create the session */
cryptCreateSession( &cryptSession, cryptUser, CRYPT_SESSION_SSL_SERVER );
/* Add the server key/certificate and activate the session */
cryptSetAttribute( cryptSession, CRYPT_SESSINFO_PRIVATEKEY, privateKey );
cryptSetAttribute( cryptSession, CRYPT_SESSINFO_ACTIVE, 1 );
看起来很简单,但对我来说,我花了一些时间(并且仍然需要一些时间)来学习如何使用 cryptlib 做我想做的事情。我想它会解决你的问题!源代码可用并且 DLL 有一个 C API。试试看。(听起来像一个商业广告,但我与 cryptlib 没有任何联系,除非是它的用户)。
我认为您实际上想使用加密库,它是 OpenSSL 的一部分。以下是如何使用它的示例: