❗ 重要提示! 在继续之前,请阅读EUDI 钱包参考实现项目描述
演示交换 v2 是一种规范,它定义了
Verifier(验证者)使用 PresentationDefinition 对象来描述证明要求的方式Holder(持有者)使用 PresentationSubmission 来描述如何根据这些要求提交证明的方式OpenID4VP 强制使用此规范
作为 Verifier(验证者),能够:
PresentationDefinition,以便使用诸如 OpenID4VP 等协议与 Holder(持有者)通信PresentationSubmission 是否满足特定的 PresentationDefinition作为 Holder/Wallet(持有者/钱包),能够:
PresentationDefitionPresentationDefinitionPresentationDefintion 和匹配的 Claim(声明)生成 PresentationSubmission| 功能 | 状态 |
|---|---|
| 提交要求 | ❌ |
| 谓词 | ❌ |
| 关系约束 | ❌ |
| 凭证状态约束 | ❌ |
| JSON-LD 框架 | ❌ |
| 保留 | ❌ |
import PresentationExchange
let matcher = PresentationMatcher()
let presentationDefinition = ...
let claims = ...
let match = matcher.match(
claims: claims,
with: presentationDefinition
)
switch matched {
case .matched(let matches):
...
case .notMatched:
...
}
在 resources 文件夹中,有几个 PresentationDefintion JSON 对象的示例,这些示例直接取自 规范
前提条件
库应提供一个工厂/构建器来生成 PresentationDefinition。 生成的 PresentationDefinition 应该:
为了创建演示定义,只需实例化 PresentationDefinition 数据类,它强制执行规范中定义的语法和条件规则。
持有者应能够验证 JSON 对象是否是语法上有效的 PresentationDefintion