Apple SSL安全传输

时间:2017-02-07 19:58:30

标签: macos ssl secure-transport

我刚刚开始使用os x并且根本没有使用它的经验。但我现在要做的就是用Apple Security API替换旧的OpenSSL代码。我正在使用Secure Transport,我对这些功能感到困惑:SSLSetIOFuncsSSLWriteSSLRead

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

  1. 首先,我只是不明白为什么要实现它(在OpenSSL中它已经实现了)。但好吧,我必须这样做。
  2. 此实施是否应加密?我觉得不是。
  3. 还有以下两个功能:

    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);
    

    它们是“正常的应用程序级读/写”。根据代码评论。那么为什么我需要定义那两个用于读写的回调呢?如果第一个两个回调函数我应该调用我的代码中的读/写(当我真的需要从服务器读取一些数据时)?

    没有好的文档,我全都陷入困境。可能是我太过倾倒但是无论如何都没有什么帮助。请帮忙!

1 个答案:

答案 0 :(得分:0)

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