EosioSwiftVaultSignatureProvider 0.4.0

EosioSwiftVaultSignatureProvider 0.4.0

Mark JohnsonPaul KimBrandon Fancher 维护。



 
依赖项
EosioSwiftEcc~> 0.4.0
EosioSwift~> 0.4.0
EosioSwiftVault~> 0.4.0
 

  • 作者
  • Todd Bowden,Serguei Vinnitskii,Farid Rahmani,Brandon Fancher,Mark Johnson,Paul Kim,Steve McCoole 和 Ben Martell

Swift Logo

EOSIO SDK for Swift: Vault Signature Provider EOSIO Alpha

Software License Swift 5.0

Vault Signature Provider 是 EOSIO SDK for Swift 的一种可插拔签名提供商。它允许使用存储在 Keychain 或设备的安全区域内密钥来签名交易。

所有产品和公司名称均为其各自持有者的商标™ 或注册® 商标。使用它们并不意味着与它们有任何关联或获得它们的认可。

目录

关于签名提供商

签名提供商抽象可以说是所有 EOSIO SDK for Swift 提供器中最有用的一种。它负责:

  • 确定可用于签名的密钥(getAvailableKeys),和
  • 请求和获取交易签名(使用可用的子集密钥 signTransaction)。

通过简单切换交易中的签名提供者,可以将签名请求路由到任何一种方式。需要平台密钥库或安全区域中的密钥签名吗?使用配置 EosioTransaction 来使用此签名提供者。需要软件签名?请查看Softkey Signature Provider

所有签名提供者都必须遵循EosioSignatureProviderProtocol 协议。

准备工作

  • Xcode 10 或更高版本
  • CocoaPods 1.5.3 或更高版本
  • 对于 iOS,iOS 11.3 或更高

依赖关系

Vault Signature Provider 依赖于 EOSIO Swift: Vault 库。当您使用 CocoaPods 将 Vault Signature Provider 包含在您的应用程序中时,Vault 将自动安装。

要访问更多 Keychain 和/或 Secure Enclave 功能,请直接使用 Vault。有关更多信息,请参阅EOSIO Swift: Vault 文档

安装

Vault Signature Provider 设计为与 EOSIO Swift SDK 一起作为提供者插件使用。

要在您的应用程序中使用 Vault Signature Provider 和 EOSIO SDK for Swift,请将以下 pod 添加到您的 Podfile

use_frameworks!

target "Your Target" do
  pod "EosioSwift", "~> 0.4.0" # EOSIO SDK for Swift core library
  pod "EosioSwiftVaultSignatureProvider", "~> 0.4.0" # pod for this library
  # add other providers for EOSIO SDK for Swift
  pod "EosioSwiftAbieosSerializationProvider", "~> 0.4.0" # serialization provider
end

然后运行 pod install

接下来,您必须将应用程序配置为 App Group 的成员。有关在 Xcode 中启用和配置 App Group 功能的说明,请参阅Apple 的文档

现在 Vault Signature Provider 已根据EOSIO SDK for Swift的基本使用说明准备就绪,可以用于 EOSIO SDK for Swift。

直接使用

通常情况下,签名提供者在签名过程中由 EosioTransaction 调用。(这里有一个示例。)但是,如果您发现需要获取可用密钥或直接请求签名,则可以使用以下方法调用此库:

let signProvider = try? EosioVaultSignatureProvider(accessGroup: "YOUR_ACCESS_GROUP")
let publicKeysArray = signProvider?.getAvailableKeys() // Returns the public keys.

在此处了解有关访问组的更多信息。

要签名一个 EosioTransaction,创建一个 EosioTransactionSignatureRequest 对象,并使用请求调用 EosioVaultSignatureProvider.signTransaction(request:completion:) 方法。

var signRequest = EosioTransactionSignatureRequest()
signRequest.serializedTransaction = serializedTransaction
signRequest.publicKeys = publicKeys
signRequest.chainId = chainId

signProvider.signTransaction(request: signRequest) { (response) in
    ...
}

文档

请参考生成的代码文档 https://eosio.github.io/eosio-swift-vault-signature-provider 或通过克隆这个仓库并在浏览器中打开 docs/index.html 文件。

库方法

此库是 EosioSignatureProviderProtocol 的一个实现。它实现了以下协议方法

  • EosioVaultSignatureProvider.signTransaction(request:completion:) 签署一个 EosioTransaction
  • EosioVaultSignatureProvider.getAvailableKeys(...) 返回一个包含与对象初始化时提供的相关私钥的公钥的数组。

要初始化实现

  • EosioVaultSignatureProvider.init(accessGroup:requireBio:) 初始化签名提供者。
    • accessGroup在此处了解有关访问组的更多信息。
    • requireBio:默认为 false。有些密钥可能无论此标志设置为何都需要生物识别身份验证。对于不需要生物识别身份验证的密钥,此标志可以强制进行生物识别检查。

可以通过直接调用 EOSIO SDK for Swift: Vault 的方法来访问其他 Keychain 和/或 Secure Enclave 功能,该库包含在库中作为一个依赖项。

想要帮助吗?

感兴趣于贡献?太棒了!这里有一些 贡献指南行为准则

许可

MIT

重要

请参阅LICENSE文件了解版权和许可条款。Block.one 作为 EOSIO 社区的一员,自愿提供贡献,不负责保证软件或任何相关应用的总体性能。我们对软件或任何相关文档不提供任何表述或暗示性的保证、担保或承诺,包括但不限于商销性、适用于特定用途和非侵权性保证。在任何情况下,我们没有因合同、侵权或其他行为而产生的任何索赔、损害或其他责任。任何测试结果或性能指标仅供参考,并不反映所有条件下的性能。任何提及第三方或第三方产品、服务或其他资源的,并非 Block.one 的推荐或认可。我们对您使用或依赖任何这些资源不负责任,并放弃任何此类责任。第三方资源可能会随时更新、更改或终止,因此此处提供的信息可能过时或不准确。任何使用或提供与此软件相关的软件、商品或服务给第三方的人应根据此许可证条款、弃权和责任排除通知此类第三方。

钱包和相关组件是复杂的软件,需要最高级别的安全性。如果构建或使用不当,可能损害用户的私钥和数字资产。在使用之前,钱包应用程序和相关组件应进行彻底的安全评估。只有经验丰富的开发者才能使用此软件。