SecureSockets

一个使用 openSSL 用 Swift 编写的安全套接字层实用程序集合。

SecureSockets 是 Swiftfire Web 服务器项目的一部分。

Swiftfire 网页

参考手册

不必在意 Github 报告说它主要是 C 语言编写的,该报告具有误导性,因为包含了 openssl 的头文件

OpenSSL

OpenSSL 可从 https://openssl.ac.cn 获取。

为了方便起见,此软件包中包含预编译的 openSSL 发行版。虽然这对于评估和开发目的来说很方便,但不应将其用于应用程序的最终生产版本。您应该只使用完全保证的 openSSL 库,这是您对客户/用户的责任。这些库您必须自己构建。

说明包含在 Installing OpenSSL 中。

功能

关于 iOS 和 tvOS 使用的注意事项:虽然 SecureSockets 确实为这些平台构建,但我们自己并未在这些平台上使用它。此外,我们没有关于如何将其集成到 iOS/tvOS 项目中的指南。此外,还需要为这些平台交叉编译 openSSL,OpenSSL-for-iPhone 中的脚本使这项任务变得更容易。

如果您在 iOS 或 tvOS 上使用过 SecureSockets,并愿意分享如何操作的过程,请通过以下方式告知我们:rien@balancingrock.nl

安装

清单文件 Package.swift 已准备好用于依赖项构建。因此,必须对其进行编辑以构建为独立的 SecureSockets 目标。

作为独立程序

当 SecureSockets 构建为独立产品时,安装如下:

$ git clone https://github.com/balancingrock/SecureSockets.git
$ cd SecureSockets
<<edit Package.swift>>
$ swift build

步骤 <<edit Package.swift>> 是取消注释 openssl linux 库或 openssl macOS 库。

作为命令行上的依赖项

SecureSockets 可以由 Swift Package Manager 使用。只需将其作为依赖项添加到您的软件包清单中即可。

要构建使用 SecureSockets 的项目,请将以下选项添加到构建命令中:

$ swift build -Xswiftc -I/<<path>>/openssl/<<version-platform>>/include -Xlinker -L/<<path>>/openssl/<<version-platform>>/lib

其中 <<path>> 必须设置为正确的值,<<version-make>> 必须设置为 openssl 版本和必要的平台。

或者,可以将这些包含在产品清单中。

使用 Xcode 作为依赖项进行开发

Swiftfire 项目用作示例。

  1. 克隆项目存储库并创建一个 Xcode 项目

     $ git clone https://github.com/Balancingrock/Swiftfire.git
     $ cd Swiftfire
     $ swift package generate-xcodeproj
    
  2. 双击该项目将其打开。

  3. 在导航器中选择 Swiftfire,然后在 Targets 下选择 CopensslGlue,然后选择 Build Settings

    • Linking 中,将值 -lssl -lcrypto 添加到 Other Linker Flags
    • Search Paths 中,将值 $(SRCROOT)/openssl/v1_1_1g-macos_10_15/lib 添加到 Library Search Paths
    • Search Paths 中,将值 $(SRCROOT)/openssl/v1_1_1g-macos_10_15/include 添加到 Header Search Paths (请务必在已存在的内容和附加内容之间保留一个空格)
  4. 在导航器中选择 Swiftfire,然后在 Targets 下选择 SecureSockets,然后选择 Build Settings

构建过程现在应该能够完成。

版本历史

没有计划的新功能。根据需要进行临时更新,以支持 Swiftfire 开发。

1.1.2 - 1.1.8

1.1.1

1.1.0

1.0.1

1.0.0