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 功能,该库包含在库中作为一个依赖项。
想要帮助吗?
许可
重要
请参阅LICENSE文件了解版权和许可条款。Block.one 作为 EOSIO 社区的一员,自愿提供贡献,不负责保证软件或任何相关应用的总体性能。我们对软件或任何相关文档不提供任何表述或暗示性的保证、担保或承诺,包括但不限于商销性、适用于特定用途和非侵权性保证。在任何情况下,我们没有因合同、侵权或其他行为而产生的任何索赔、损害或其他责任。任何测试结果或性能指标仅供参考,并不反映所有条件下的性能。任何提及第三方或第三方产品、服务或其他资源的,并非 Block.one 的推荐或认可。我们对您使用或依赖任何这些资源不负责任,并放弃任何此类责任。第三方资源可能会随时更新、更改或终止,因此此处提供的信息可能过时或不准确。任何使用或提供与此软件相关的软件、商品或服务给第三方的人应根据此许可证条款、弃权和责任排除通知此类第三方。
钱包和相关组件是复杂的软件,需要最高级别的安全性。如果构建或使用不当,可能损害用户的私钥和数字资产。在使用之前,钱包应用程序和相关组件应进行彻底的安全评估。只有经验丰富的开发者才能使用此软件。