我目前正在编写一个.NET API,用于使用PC / SC与智能卡设备进行交互。我有大部分的API工作,但我真的被挂在卡可以支持的常规身份验证命令上。我正在尝试遵循sp800-73-3_Part_2的附录A.2(第25页)中描述的过程。
我遇到的问题是我不明白PKCS#1 v1.5签名填充的含义,或者建议的方法是产生符合格式指南的挑战。任何有关生成此类数据的指导都将受到赞赏(使用现有的.NET API将非常棒)。
此外,挑战甚至需要这种格式吗?我试过发送几个随机生成的字节,但我收到了一个0x6A80的SW1 / SW2(不正确的参考数据),所以我意识到数据有一些结构要求。
答案 0 :(得分:0)
PKCS#1版本1.5以RFC 2313的形式提供。该文件对MD2或MD5的限制显然已经过时。格式从8.1节开始描述。块类型(BT)是01,因此填充字符串(PS)是常量0xff字节的序列。 .NET类S ystem.Security.Cryptography.RSAPKCS1SignatureFormatter可用于生成此类签名。至于PIV卡的其他标准,你可以自己动手。