0

我刚开始使用 os x,完全没有经验。但我现在要做的就是用 Apple Security API 替换旧的 OpenSSL 代码。我正在使用安全传输,我对这些功能有点困惑:SSLSetIOFuncsSSLWriteSSLRead.

所以SSLSetIOFuncs设置执行写/读操作的回调(我应该实现)。而此时出现了很多问题:

  1. 首先,我只是不明白为什么要实现它(在 OpenSSL 中它已经实现了)。但是,好吧,我只需要。
  2. 这个实现应该加密吗?我觉得不是。

还有以下2个功能:

OSStatus
SSLWrite                    (SSLContextRef      context,
                             const void *       __nullable data,
                             size_t             dataLength,
                             size_t             *processed);

OSStatus
SSLRead                    (SSLContextRef       context,
                            void *              data,           
                            size_t              dataLength,
                            size_t          *processed);

它们是“普通应用程序级读/写”。根据代码注释。那么为什么我需要定义这两个回调来读写呢?如果前两个是回调,我应该调用哪些函数来读取/写入我的代码(当我真的需要从服务器读取一些数据时)?

没有好的文档,我被这一切困住了。可能是我太垃圾了,但无论如何,一点帮助都是完美的。请帮忙!

4

1 回答 1

0

SecureTransport 是基于回调的,与 OpenSSL 的SSL_read()SSL_write()函数不同。这可能需要对您的代码进行重大更改。如果您想要一个可以使用 SecureTransport 进行加密的read/ write-style API,请查看CFNetwork,特别是CFStream

于 2017-02-08T00:57:33.640 回答