适用于 iOS 的 EUDI 钱包数据模型库 ISO/IEC 18013-5

重要提示! 在继续之前,请阅读EUDI 钱包参考实现项目说明


eudi-lib-ios-iso18013-data-model

Swift version Swift Lines of Code Duplicated Lines (%) Reliability Rating Vulnerabilities

根据ISO/IEC 18013-5 标准 (0.9.0) 实现的 mDoc 数据模型

概述

DeviceEngagement (设备连接)

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
...

DeviceRequest (设备请求)

设备检索 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)

DeviceResponse (设备响应)

设备检索 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

除非适用法律要求或以书面形式同意,否则按“原样”分发的软件不作任何形式的担保或条件,无论是明示的还是暗示的。 请参阅许可证,了解有关权限和限制的特定语言。