|
1
|
| iOS-Developer84 · 技术社区 · 8 年前 |
|
1
2
您的输入是一个X9.62签名格式,它是一个包含两个ASN.1/DER编码签名的序列。这些整数是可变大小、有符号、大端数字。它们以最小字节数编码。这意味着编码的大小可以变化。
139字节是常见的,因为它假定
132字节由iso/iec 7816-8/ieee p1363指定,该标准处理智能卡的签名。签名由
字节数的计算
现在开始解码。有多种方法可以处理这个问题:执行一个完整的ASN.1解析,获取整数,然后以ISO7816-8的形式重新编码。
但是,您还可以看到,您可以简单地将字节复制为
警告 C代码代替C++作为我所期望的.NET.NET语言;当我写的主要部分回答问题时没有表示语言。
注意,代码是允许的,因为它不需要 最低限度 序列的长度编码和整数长度编码(它应该这样做)。 它还允许错误编码的整数值不必要地用零字节填充。 这两个问题都不应该破坏算法的安全性,但其他库可能也应该不那么允许。 |
|
2
1
您有一个ASN.1编码的签名(如下所示)。它是由Java、OpenSSL和其他一些库使用的。您需要p1363格式的签名,它是
用于连接
你的格式化
Microsoft.NET 2.0有ASN.1类,允许您操作ASN.1编码的数据。见 AsnEncodedData class .
另一个值得注意的项目是,.net使用了 RFC 3275, XML-Signature Syntax and Processing . 它的格式不同于ASN.1、p1363、OpenPGP、CNG和其他库。 ASN.1到p1363的转换相当简单。您可以在 ECDSA sign with BouncyCastle and verify with Crypto++ . 你可能会发现 Cryptographic Interoperability: Digital Signatures 对代码项目有帮助。 |
|
|
xchrisbradley · 使用Zig签名对功能选择器进行编码 2 年前 |
|
|
Shirin Ebadi · 加载公钥字节作为DH密钥 2 年前 |
|
YoavKlein · 为什么jwt.io会给我私钥部分来填充? 2 年前 |
|
|
birb · RFC-6238 TOTP实现与示例不匹配 2 年前 |
|
|
Stefan N · 如何生成N个字符的所有字母数字组合[重复] 3 年前 |
|
|
xdivayze · 在线和离线客户端之间的打包密钥交换 3 年前 |