问题标签 [tlv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 如何防止 SetReadDeadline 超时读取 go 之间的连接?
我正在使用 TCP 编写一个简单的 TLV 样式服务,它应该能够处理多个连接,并允许在同一个连接上发送多个消息。
我需要能够确保长度不正确的消息不会无限期地阻塞连接,但我需要确保后续消息可以在同一连接上发送而不会超时。
我io.ReadFull
用来读取包含类型和长度的固定数量的字节,然后当我收到 时length
,我io.ReadFull
再次调用并读取length
字节数。
如果我读取 4 个字节的类型和长度,但客户端出于某种原因只发送 3 个字节,io.ReadFull
则会挂起。同样,如果客户端发送300
的长度,但长度应该只有200
,io.ReadFull
将挂起,阻塞该通道上的所有通信。
对于这个例子,我已经尝试使用conn.SetReadDeadline()
并将其设置为 5 秒。如果发送的长度不正确,这会导致连接超时,这很好。问题是,如果直到超过 5 秒后才发送下一个请求,则连接将超时。
如果客户端使用正确的 TL 发送一个请求,事情就会按预期工作。但是,如果同一个客户端在 10 秒内没有发送第二条消息,则连接将在此之前超时,并出现错误tls: use of closed connection
Is there a way to ensure that not occur?
我尝试做的一件事是在超时的情况下,它只是继续,而不是中断。我添加了另一个错误检查以查看它是否是EOF
,如果是则中断。
我的第一印象是这可行,但我不确定是否存在连接超时可能意味着连接已死并且不应再使用的情况,或者是否总是会返回EOF
错误。
apdu - 如何编写 TLV[TAG_MAX_ATTEMPTS]?
我正在使用带有 JCOP 4.7 Java 小程序的智能卡。我想创建一个身份验证对象,例如 UserID。writeUserID 命令具有以下参数:CLA、INS、P1、P2、Lc、TLV[TAG_POLICY]、TLV[TAG_MAX_ATTEMPTS]、TLV[TAG_1]、TLV[TAG_2]。
我知道 TLV 接受 TAG、LENGTH 和 VALUE 参数。我的问题是,如果我想将我正在创建的 USERID 的最大尝试次数设置为 3,如何获取 TLV[TAG_MAX_ATTEMPTS] 的字节?
[TAG_MAX_ATTEMPTS] 的值为 0x12,applet 描述文档说它需要 2 字节的最大尝试次数。在这种情况下,TLV[TAG_MAX_ATTEMPTS] 的 APDU 字节是多少?
例如:我知道 TLV[TAG_1] 是一个 4 字节的对象标识符,那么它对应的字节将是“41047FFF0001”,其中“41”是 [TAG_1] 的值,“04”是长度,“7FFF0001”是 4-字节对象标识符。
根据我的理解,我给出“12020003”,其中“12”是 [TAG_MAX_ATTEMPTS] 的值,“02”长度和“0003”2 字节值。
当我在我的 APDU 中传递这个值时,我收到一个错误“6985”,这意味着条件不满足。
有人可以告诉我我哪里出错了吗?
smpp - SMPP TLV 可选参数
我是 SMPP 协议的新手。我正在使用它通过 SMSC 发送 SMS。我在文档中发现可以发送可选的 TLV 参数。
我想发送additional_status_info_text
并submit_sm
接收它deliver_sm.
是否符合 SMPP 的规范?
contactless-smartcard - PDOL 足以在线处理
我已通过满足 ICC (VISA) 要求的 PDOL 要求成功生成 ARQC。我想通过在线 PIN 验证强制所有交易,而不管下限、PIN 尝试限制等。
我还需要执行另一个生成 AC 命令还是以下足以提交在线处理?
c - 如何解析 3 字节长度的 BER-TLV TAG
我正在使用一些 EMV 标签,其中大多数标签的长度为1或2个字节,例如
9F02, 81,..
我知道有一定的位配置可以知道如何确定标签长度以确定标签是否为 2 字节长度或更大, 我在用着:
但是当我有一些比这更大的标签时,我不知道该怎么做。
我正在使用 EMV 数据,我正在使用认证卡进行测试,我收到these tags are: DF8111, DF8119, DF811E, DF812C
它们与 CVM 相关。
cryptography - 无法解析 EMV TAG 颁发者应用程序数据 9F10
我有我需要解析的颁发者应用程序数据
发行人申请数据 = 06001103A020000A0100000000002221DFBB
当我解析我的东西时,密码版本是 0x11 = 17(这是对的吗?)
其次,当我在网上查找文档时,我找不到任何关于 CV17 的应用程序密码数据创建流程?我是否遗漏了任何文件?
php - Onlinecity SMPP - 添加新的 tlv 参数
我正在使用 OnlineCity SMPP 客户端库来发送 SMS。它工作正常。但是根据TRAI的新指南,我们需要在发送短信时添加以下新的TLV参数
我试过这个
我收到了成功响应,但没有收到任何短信。我咨询了我的 smpp 提供商。他们说没有额外的 TLV 参数,这就是不发送 SMS 的原因。
你们有什么想法吗,我们可以在我当前基于 onlinecity 库的代码中做到这一点,还是应该做其他事情?
smartcard - 解码 BER TLV
我在解码此 TLV 时遇到问题
模板标签 (7001) 2 个字节
长度标签 (0020) 2 个字节
价值是另一个 TLV
标签(e101)长度(000f)值(373834313938353338353236313430)
标签(e102)长度(0009)值(0009303931383631393038)
70010020e101000f373834313938353338353236313430e1020009303931383631393038
当我尝试任何 TLV 解码器时,它仅将模板标签读取为 1 个字节,然后其余部分将被遗漏。你能就如何解析它提出建议吗?顺便说一句,我收到的数据是 Base64String 然后我转换为 HEX
c - TLV 宏扩展引发警告:赋值使指针从整数而不进行强制转换
我的 TLV 结构可以保存字符串或整数。我正在尝试创建一个可以同时处理它们的宏。
下面的示例按预期运行,但它编译时带有来自 MACRO 扩展的警告。我知道预编译器无法知道我将在运行时分配什么类型的值,这就是我认为它会发出警告的原因。
如何修复这个小代码片段,使其不产生编译警告?
FWIW,我可以通过不使用 MACRO 来解决这个问题,但如果可能的话,我更愿意使用它。