介绍 Swift Crypto 库

最近 Apple 官方推出了一个新的 SwiftSwift Crypto 。该库将 Apple 平台的 CryptoKit 库拓展到了其它平台(比如:Linux),这样其它平台上也将可以使用加密相关的 API 了。

使用方法很简单,只需要导入对应库即可:

import Crypto

示例代码

func encrypt(input: [UInt8]) throws -> Data {
    // Don't forget to save your key somewhere!
    let key = SymmetricKey(size: .bits256)
    let sealedBox = try AES.GCM.seal(input, using: key)
    return sealedBox.combined!
}

跨平台

Apple 平台上,Swift Crypto 直接使用已有的 CryptoKit 库,但其它平台上将基于 BoringSSL 库重新实现,最终将在所有平台上提供一套统一且方便使用的 API

虽然支持跨平台,但是 Apple CryptoKit 有些特性是直接基于 Apple 安全处理器(Apple’s Secure Enclave processor)进行存储计算的,像这类非 Apple 硬件支持的平台上,Swift Crypto 将不会提供这些 API

支持 SPM

为了方便使用,Swift Crypto 支持 Swift Package Manager,如果想升级库版本的话,可直接通过如下命令实现:

swift package update

兼容性

兼容性,对于用户来说这一点是非常重要的。Swift CryptoApple CryptoKit 之间应该保持接口层面语义上的一致性,这一点 Apple 通过共享同一套 test suite 来保证结果的正确性。

开源协议

Swift Crypto 支持 Apache 2.0 license 协议 ,大家可以放心使用。

总结

以前关于加密这类工具方法,Swift 社区可能很多都在各自造轮子,现在 Apple 官方推出了 Swift Crypto,也可以统一实现标准,对于 Swift 社区来说,也算是一件好事。

另外,目前 Vapor 团队已经第一时间开始使用上 Swift Crypto 库了,以后可以将更多精力投入到自身业务中。

发表评论

电子邮件地址不会被公开。 必填项已用*标注