如何使用OpenSSL编码/解码任意数据

Howto encode/decode arbitrary data with OpenSSL?

本文关键字:解码 任意 数据 编码 何使用 OpenSSL      更新时间:2023-10-16

我有一个C++应用程序,它有自己的例程来发送和接收数据。我想使用 OpenSSL 将 AES 加密应用于这些数据的一部分。不幸的是,我不能像大多数例子那样移交与OpenSSL的整个连接,我甚至不能给OpenSSL套接字来读取数据。

我想将我的数据作为内存缓冲区传入和传出,并且我还单独传输密钥。有没有人有一个例子如何使用OpenSSL API完成此操作?

见过一些摆弄OpenSSL内部指针和结构的代码,但依赖于某个OpenSSL版本,我非常想避免这种情况。

我认为您实际上想使用加密库,这是OpenSSL的一部分。下面是如何使用它的示例:

http://saju.net.in/code/misc/openssl_aes.c.txt

我认为

你应该看看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没有任何联系,除了是它的用户)。