現在程式語言Swift多了一個用於加密的開源專案Swift Crypto,Swift Crypto是一個新的套件,讓Swift開發社群也能用到Apple CryptoKit的功能,開發人員可以應用API進行一系列通用的加密操作。Swift Crypto是一個跨平臺的加密解決方案,在所有Swift支援的平臺都可以使用。

Swift Crypto加密套件由兩部分組成,在Apple的平臺上,Swift Crypto依循Apple CryptoKit加密框架,提供Apple CryptoKit的API,而在其他平臺上,Swift Crypto則是以BoringSSL函式庫為基礎重新實作,目標是提供一組簡單易於使用的API,讓開發者用於開發跨平臺程式碼。

官方提到,Swift Crypto需要考量複雜的硬體實作問題,雖然Apple CryptoKit是由公開的加密原語實作,但是其API子集使用Apple的Secure Enclave處理器來儲存並且計算金鑰資訊,但Apple的Secure Enclave處理器無法用於非Apple的硬體,因此Swift Crypto不會提供部分相關API。

而且為了讓開發人員在非Apple平臺上,方便地更新Swift Crypto,開發團隊利用Swift套件管理器發布Swift Crypto,開發者可以簡單快速更新套件,以獲取安全修復程式和API更新。官方強調,從Swift Crypto獲得的結果,與從Apple CryptoKit獲得的結果相同,相同輸入對Swift Crypto和Apple CryptoKit的同一API,將會產生語意上相同的結果,官方釋出了測試套件,開發者可用來進行驗證。

不過,在部分情況下,開發人員需要進行額外的工作,橋接Apple CryptoKit驗證與BoringSSL驗證不相符的情況,甚至在特定的案例,部分演算法有重新實作的需要,官方提到,這些工作將是Swift Crypto專案接下來努力的方向,而且也會盡力在Swift Crypto中提供Apple CryptoKit的所有功能。

Swift Crypto專案的目標是提供跨平臺的解決方案,以便在更廣泛的平臺上使用Apple CryptoKit的API,因此Swift Crypto的發展會跟隨Apple CryptoKit的發展狀況,也由於Swift Crypto是一個開源專案,因此貢獻者有一定程度的自由可以發出API提案,並且根據這些API影響的範圍,Apple會考慮在Apple CryptoKit中實作。

除了需要用到專有硬體的API之外,Apple CryptoKit實作的API都會被Swift Crypto採用,不可用的部分會以Swift Crypto為基礎實作,官方會透過共享的測試套件,確保Swift Crypto和Apple CryptoKit完全相容。而官方也提到,Swift Crypto的重點不在於提供所有加密原語,因為這會使得開發者選擇困難。


Advertisement

更多 iThome相關內容