【发布时间】:2017-05-05 02:17:53
【问题描述】:
我想用这个代码做一个 ECDSA 签名:
AsymmetricKeyAlgorithmProvider objAsymmAlgProv = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.EcdsaSha256);
CryptographicKey keypair = objAsymmAlgProv.CreateKeyPairWithCurveName(EccCurveNames.SecP256r1);
BinaryStringEncoding encoding = BinaryStringEncoding.Utf8;
buffMsg = CryptographicBuffer.ConvertStringToBinary("Test Message", encoding);
IBuffer buffSIG = CryptographicEngine.Sign(keypair, buffMsg);
byte [] SignByteArray = buffSIG.ToArray();
bool res = CryptographicEngine.VerifySignature(keypair, buffMsg, buffSIG);
VerifySignature 总是返回 true,这没关系。
但是我的签名有些问题。
为什么签名长度 (SignByteArray) 是固定的? (0x40 字节)。
为什么SignByteArray [0] 和SignByteArray [2] 的值不正确? (我觉得应该是0x30和0x02)
【问题讨论】:
标签: c# cryptography uwp ecdsa