首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何知道NFC Passport芯片读取的是哪个DataGroup?

我如何知道NFC Passport芯片读取的是哪个DataGroup?
EN

Stack Overflow用户
提问于 2020-01-23 18:39:21
回答 1查看 553关注 0票数 0

我正在阅读德国的e-Passport,它正在阅读Datagroups 1,2,3 & 14和SOD,COM。现在,我想读取包含其他详细信息的数据组11。但德国护照不读取可选数据。那么,我如何知道哪些护照读取哪些组?我已经浏览了ICAO 9303,但没有任何机会获得这些信息。

EN

回答 1

Stack Overflow用户

发布于 2020-01-23 21:03:08

在我的应用程序中,我读取了DG32、DG33、DG34,但流程是相同的,下面是一些如何使用NFCPassportReader实现DG11文件读取的示例

代码语言:javascript
运行
复制
public class DataGroup {

    public var elements: [String: String] = [:]   

//我添加此字典是为了从文档中按键获取值

代码语言:javascript
运行
复制
class DG11: DataGroup {

        private let tags = [0x5F0E, 0x5F0F, 0x5F10, 0x5F11, 0x5F2B]

        required init(_ data: [UInt8]) throws {
            try super.init(data)
            datagroupType = .DG11
        }

        override func parse(_ data: [UInt8]) throws {
            var tag = try getNextTag()
            if tag != 0x5C { throw TagError.InvalidResponse }
            _ = try getNextValue()
            try tags.forEach { _ in
                tag = try getNextTag()
                parseBody(try getNextValue(), key: String(tag, radix: 16, uppercase: true))
            }
            print(elements)
        }

        private func parseBody(_ data: [UInt8], key: String) {
            elements[key] = String(bytes: data[0...], encoding: .utf8)
        }

    }

希望能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59876577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档