Keystore.swift 可以轻松地从 Ethereum 密钥库文件中提取私钥,并从现有的私钥生成密钥库文件。
此库属于我们的 Swift Crypto 套件。 如果需要纯 Swift Ethereum Web3 库,请查看 Web3.swift!
此库还支持 EIP 2335 (BLS/ETH2) 密钥库。
请查看下面的用法或浏览存储库的测试。
我们仅支持 Swift Package Manager。其他任何方式都已过时。
Keystore 兼容 Swift Package Manager v5(Swift 5 及以上版本)。只需将其添加到 Package.swift
中的依赖项即可。
dependencies: [
.package(url: "https://github.com/Boilertalk/Keystore.swift.git", from: "0.3.0")
]
然后将其添加到你的目标依赖项中
targets: [
.target(
name: "MyProject",
dependencies: [
.product(name: "Keystore", package: "Keystore.swift"),
]),
.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
要从现有的密钥库文件中提取私钥,只需执行以下操作。
import Keystore
let decoder = JSONDecoder()
let keystoreData: Data = ... // Load keystore data from file?
let keystore = try decoder.decode(KeystoreETH2.self, from: keystoreData)
let password = "your_super_secret_password"
let privateKey = try keystore.privateKey(password: password)
print(privateKey) // Your decrypted private key
Boilertalk ⚗️ 的优秀团队
...以及来自社区的更出色的成员 💜
查看 贡献者列表 以获取完整列表。
Keystore 在 MIT 许可证下可用。 有关更多信息,请参见 LICENSE 文件。