0

我有一个 C++ 应用程序,它有自己的例程来发送和接收数据。我想使用 OpenSSL 对部分数据应用 AES 加密。不幸的是,我无法像大多数示例那样将整个连接移交给 OpenSSL,我什至无法为 OpenSSL 提供用于从中读取数据的套接字。

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

我已经看到代码会摆弄 OpenSSL 的内部指针和结构,但依赖于某个 OpenSSL 版本,我非常希望避免这种情况。

4

2 回答 2

1

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

于 2012-04-11T16:48:05.020 回答
1

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

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

于 2012-04-11T16:51:39.933 回答