SecureStorage 1.0.0

SecureStorage 1.0.0

Adarsh Rai维护。



  • 作者:
  • Adarsh Rai

SecureStorage

一个轻量级的库,可让您使用AES 256加密存储任何Swift类型。加密密钥在运行时生成并发送到设备钥匙串。

安装

SecureStorage可以通过CocoaPods安装。

target 'ProjectName' do
    pod 'SecureStorage'
end

使用

SecureStorage允许你在UserDefaults、共享默认值或磁盘上存储您的Swift类型。共享默认值允许您在应用程序之间共享数据。加密密钥还可以存储在共享密钥链中,以实现应用程序间密钥的共享。

初始化

SecureStorage的初始化有三部分

存储位置

您可以在初始化过程中选择存储位置。可用值为

  • UserDefaults:这是默认的存储位置。在没有提供存储位置时使用。

    let secureStorage = SecureStorage(keychainAccessGroup: nil)
  • 文件位置:如果在初始化过程中提供了文件夹路径,加密数据将作为该文件夹中的文件存储。密钥将用作文件名。如果提供的位置已存在文件或位置不是目录,将引发初始化失败错误。

    let secureStorage = try! SecureStorage(fileLocation: fileLocation, keychainAccessGroup: nil)
  • 共享默认设置:`SecureStorage`还允许您在共享默认设置中存储加密数据,以实现应用程序间的加密数据共享。您需要在应用程序的功能中启用App Groups,并在初始化`SecureStorage`时提供应用程序组标识符。如果无法初始化共享默认设置,将引发初始化失败错误。

    let secureStorage = try! SecureStorage(sharedDefaultsId: "group.com.your.company.YourApp", keychainAccessGroup: nil)

密钥链组

您可以选择将加密密钥存储在共享密钥链中,以在应用程序间共享密钥。这可以与共享默认设置结合使用,以在应用程序间共享加密对象。要使用此选项,您需要在应用程序功能中启用密钥链共享,并在`SecureStorage`初始化期间提供密钥链组标识符。

// Below initialization stores data in shared defalults
// and encryption keys are stored in shared keychain
let secureStorage = try! SecureStorage(sharedDefaultsId: "group.com.your.company.YourApp", keychainAccessGroup: "your.keychain.sharing.identifier")

密钥链访问控制

`SecureStorage`还允许应用程序设置密钥链访问级别策略。默认值设置为最严格的策略`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`。如果您需要选择不同的策略,您可以在初始化时选择。

let secureStorage = SecureStorage(keychainAccessGroup: nil, keychainAccessControl: kSecAttrAccessibleAlways)

访问对象

初始化后,从`SecureStorage`存储和检索Swift类型非常简单。

// Initialize SecureStorage
let secureStorage = SecureStorage(keychainAccessGroup: nil)
// Store data
try secureStorage.store(textViewToStore.text, for: keyForStorage)
// retrieve data
let text = try secureStorage.fetchObject(for: keyForStorage)
// delete data
secureStorage.removeObject(for: keyForStorage)

许可证

SecureStorage遵循MIT许可证发布。