我正在准备一个微型驱动程序,以使用 Microsoft CNG 的功能执行智能卡登录NCryptSignHash。
当我使用智能卡中的 SECP521R1 EC 密钥执行签名时,它会生成长度为 139 的签名数据作为 ECC 签名数据格式:
ECDSASignature ::= SEQUENCE {
r INTEGER,
s INTEGER
}
Run Code Online (Sandbox Code Playgroud)
签名数据样本是
308188024201A2001E9C0151C55BCA188F201020A84180B339E61EDE61F6EAD0B277321CAB81C87DAFC2AC65D542D0D0B01C3C5E25E9209C47CFDDFD5BBCAFA0D2AF2E7FD86701024200C103E534BD1378D8B6F5652FB058F7D5045615DCD940462ED0F923073076EF581210D0DD95BF2891358F5F743DB2EC009A0608CEFAA9A40AF41718881D0A26A7F4
Run Code Online (Sandbox Code Playgroud)
但是当我使用它执行 Sign 时,MS_KEY_STORAGE_PROVIDER它会生成一个长度为 132 字节的符号。
将符号数据大小从 139 减少到 132 的过程是什么?