CI Status Telegram

⚗️ Keystore

Keystore.swift 可以轻松地从 Ethereum 密钥库文件中提取私钥,并从现有的私钥生成密钥库文件。
此库属于我们的 Swift Crypto 套件。 如果需要纯 Swift Ethereum Web3 库,请查看 Web3.swift

此库还支持 EIP 2335 (BLS/ETH2) 密钥库。

示例

请查看下面的用法或浏览存储库的测试。

安装

我们仅支持 Swift Package Manager。其他任何方式都已过时。

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

用法

ETH1 / 普通密钥库

要从现有的密钥库文件中提取私钥,只需执行以下操作。

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

ETH2 / BLS 密钥库

要从现有的密钥库文件中提取私钥,只需执行以下操作。

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 文件。