var payload = new Dictionary<string, object>()
{
//xxx
};
var privateKey = ???;
// only got a pem file like
//-----BEGIN PRIVATE KEY-----
//xxxxxxxxxxxxxxx
//-----END PRIVATE KEY-----
//how can i get a key for below jwt token generate
string token = Jose.JWT.Encode(payload, privateKey, JwsAlgorithm.ES384, new Dictionary<string, object>()
{
{ "alg", "ES384" },
{ "type", "JWT" },
});
我在网上搜索了几个小时,我得到了一些像这样的c# JWT load ES256 PEM file into CngKey (jose-jwt),但它不能解决我的问题,我想把pem文件转换为p12文件,但我没有证书文件,我只有一个pem文件。我真的需要解决方案,谢谢。
我尝试通过PEMReader从我获得的RSA参数创建ECDSA密钥:
RSAParameters rsaParameters;
using (var stream = File.OpenRead("pem.pem"))
{
using (var reader = new PemReader(stream))
{
rsaParameters = reader.ReadRsaKey();
}
}
var key = ECDsa.Create(ECCurve.NamedCurves.nistP384);
key.ImportParameters(new ECParameters()
{
Q = new ECPoint() {
X = rsaParameters.Q,//???
Y = rsaParameters.Q //???
},
D = rsaParameters.D
});
但参数Q是ECPoint类型,在rsaParameters中Q是字节数组,我不知道如何处理
1条答案
按热度按时间sshcrbum1#
我不知道你是否找到了解决这个问题的方法。但我也曾为此而挣扎,最终找到了一个解决方案。我将在这里分享我的代码。