私はこのコードでECDSA署名を作りたい:UWP ECDSP署名
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を返し、これはokです。
しかし、私は署名にいくつかの問題があります。
署名の長さ(SignByteArray
)が固定されているのはなぜですか? (0x40バイト)。
SignByteArray [0]
とSignByteArray [2]
の値が正しくないのはなぜですか? (私は彼らが0x30からすべきだと思いますし、0x02の)
私はECDSAの仕様はペア(r
、s
)が署名されていることを決意して結論https://kjur.github.io/jsrsasign/sample-ecdsa.html
これはまさに私が探していたものです!どうもありがとう! –