❗ 重要提示! 在继续之前,请阅读EUDI 钱包参考实现项目描述
演示交换 v2 是一种规范,它定义了
Verifier
(验证者)使用 PresentationDefinition
对象来描述证明要求的方式Holder
(持有者)使用 PresentationSubmission
来描述如何根据这些要求提交证明的方式OpenID4VP 强制使用此规范
作为 Verifier
(验证者),能够:
PresentationDefinition
,以便使用诸如 OpenID4VP
等协议与 Holder
(持有者)通信PresentationSubmission
是否满足特定的 PresentationDefinition
作为 Holder/Wallet
(持有者/钱包),能够:
PresentationDefition
PresentationDefinition
PresentationDefintion
和匹配的 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