一个使用 openSSL 用 Swift 编写的安全套接字层实用程序集合。
SecureSockets 是 Swiftfire Web 服务器项目的一部分。
(不必在意 Github 报告说它主要是 C 语言编写的,该报告具有误导性,因为包含了 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 版本和必要的平台。
或者,可以将这些包含在产品清单中。
Swiftfire 项目用作示例。
克隆项目存储库并创建一个 Xcode 项目
$ git clone https://github.com/Balancingrock/Swiftfire.git
$ cd Swiftfire
$ swift package generate-xcodeproj
双击该项目将其打开。
在导航器中选择 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
(请务必在已存在的内容和附加内容之间保留一个空格)在导航器中选择 Swiftfire
,然后在 Targets
下选择 SecureSockets
,然后选择 Build Settings
Search Paths
中,将值 $(SRCROOT)/openssl/v1_1_1g-macos_10_15/include
添加到 Header Search Paths
(请务必在已存在的内容和附加内容之间保留一个空格)构建过程现在应该能够完成。
没有计划的新功能。根据需要进行临时更新,以支持 Swiftfire 开发。