我正在尝试使用带有 RSA 的 SHA-256 使用 PKCS#8 密钥对字符串进行签名。
该RSACng.SignData()
方法需要一个 RSASignaturePadding,其中的选项是Pkcs1
和Pss
。我找不到任何明确的信息来告诉我哪个可用于 PKCS#8。
// Decode Token (token is Base64 & PKCS8 encoded)
byte[] decodedKey = Convert.FromBase64String(myBase64String);
CngKey key = CngKey.Import(decodedKey, CngKeyBlobFormat.Pkcs8PrivateBlob);
// Build signature
string signature = "123abc";
byte[] bytes = Encoding.UTF8.GetBytes(signature);
// Sign signature using key & SHA256 w RSA
var unsigned = new RSACng(key);
byte[] data = unsigned.SignData(bytes, HashAlgorithmName.SHA256, <??????>);
密码学对我来说是全新的,所以如果我的方法有问题,请告诉我。