⚗️ 密钥库
Keystore.swift使从以太坊密钥库文件中提取私钥和从现有私钥生成密钥库文件变得容易。
此库属于我们的Swift Crypto系列。要获取一个纯Swift以太坊Web3库,请查看Web3.swift!
示例
请查看下面用法示例,或查看存储库的测试。
安装
CocoaPods
密钥库可通过CocoaPods使用。要安装它,只需将以下行添加到您的Podfile
pod 'Keystore'
Carthage
密钥库与Carthage兼容,Carthage是一个去中心化的依赖项管理器,它构建您的依赖项并为您提供二进制框架。要安装它,只需将以下行添加到您的Cartfile
github "Boilertalk/Keystore.swift"
您还必须安装依赖项,这些依赖项可以在我们的Cartfile中找到。
Swift 包管理器
仓库与 Swift 包管理器 v4(Swift 4 及以上版本)兼容。只需将其添加到您的 Package.swift
依赖项中。
dependencies: [
.package(url: "https://github.com/Boilertalk/Keystore.swift.git", from: "0.2.0")
]
然后将其添加到目标依赖项中。
targets: [
.target(
name: "MyProject",
dependencies: ["Keystore"]),
.testTarget(
name: "MyProjectTests",
dependencies: ["MyProject"])
]
安装完成后,您可以在 .swift
文件中导入 Keystore
。
import Keystore
使用方法
要从一个现有的仓库文件中提取私钥,只需按照以下操作。
import Keystore
let decoder = JSONDecoder()
let keystoreData: Data = ... // Load keystore data from file?
let keystore = try decoder.decode(Keystore.self, from: keystoreData)
let password = "your_super_secret_password"
let privateKey = try keystore.privateKey(password: password)
print(privateKey) // Your decrypted private key
要从现有的私钥生成仓库文件,您的代码可能看起来像以下这样。
let privateKey: [UInt8] = ... // Get your private key as a byte array
let password = "your_super_secret_password"
let keystore = try Keystore(privateKey: privateKey, password: password)
let keystoreJson = try JSONEncoder().encode(keystore)
print(String(data: keystoreJson, encoding: .utf8)) // Your encrypted keystore as a json string
作者
Boilertalk 的卓越团队
...以及来自社区的更多极客
查看贡献者列表以获取完整列表。
许可协议
Keystore 可在 MIT 许可下使用。有关更多信息,请参阅 LICENSE 文件。