❗ 重要提示! 在继续之前,请阅读EUDI 钱包参考实现项目说明
根据ISO/IEC 18013-5 标准 (0.9.0) 实现的 mDoc 数据模型
DeviceEngagement
结构包含执行设备连接的信息。目前,可以使用二维码进行设备连接,并使用低功耗蓝牙 (BLE) 进行数据检索。
要初始化 DeviceEngagement
结构的新实例,请提供 BLE 模式,并可选择性地提供 EC 曲线类型。 然后,您可以检索二维码,如下面的代码所示
let de = DeviceEngagement(isBleServer: isBleServer, crv: .p256)
// get a UIKit image
let qrCodeImage = de.getQrCodeImage()
// get a string payload
let qrCodePayload = de.getQrCodePayload()
// to use in SwiftUI, use the Image(uiImage:) initializer
...
设备检索 mdoc 请求 结构。在 mDoc 持有者中,使用传入的 CBOR 字节(解码)初始化 DeviceRequest
let dr = DeviceRequest(data: bytes)
在 mdoc 读取器中,使用要读取的所需元素初始化 DeviceRequest
let isoKeys: [IsoMdlModel.CodingKeys] = [.familyName, .documentNumber, .drivingPrivileges, .issueDate, .expiryDate, .portrait]
let dr3 = DeviceRequest(mdl: isoKeys, agesOver: [18,21], intentToRetain: true)
设备检索 mdoc 响应。它是 CBOR 编码的
在 mdoc 读取器中,从持有者收到的 CBOR 数据进行初始化(数据交换)。在 mdoc 持有者中,从服务器收到的 CBOR 数据进行初始化(注册)
let dr = DeviceResponse(data: bytes)
设备响应具有以下结构
Data = { "documents" : [+Document] }
Document (文档) = { "docType" : DocType, "issuerSigned" : IssuerSigned }
IssuerSigned (颁发者签名) = { "nameSpaces" : IssuerNameSpaces, }
IssuerNameSpaces (颁发者命名空间) = {
IssuerSignedItem (颁发者签名项目) = { "digestID" : uint, "random" : bstr, "elementIdentifier" : DataElementIdentifier, "elementValue" : DataElementValue }
详细文档请参见 此处
发布的软件是初始开发版本
版权所有 (c) 2023 European Commission
根据 Apache License, Version 2.0(“许可证”)获得许可;除非遵守许可证,否则您不得使用此文件。 您可以在以下位置获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或以书面形式同意,否则按“原样”分发的软件不作任何形式的担保或条件,无论是明示的还是暗示的。 请参阅许可证,了解有关权限和限制的特定语言。