问题描述
我正在尝试从使用 https://mkjwk.org/ 生成的 pem 文件中读取 x、y 和 d 参数值,其中 P 256 曲线、加密、ECDH-ES+A128KW 以及 X509 设置为 true。 x,y,d 的值使用以下方法检索:
using (var reader = new StringReader(privateKeyString))
{
var param = (ECPrivateKeyParameters)new PemReader(reader).Readobject();
x = param.Parameters.G.AffineXCoord.GetEncoded();
y = param.Parameters.G.AffineYCoord.GetEncoded();
d = param.D.ToByteArrayUnsigned();
}
但是下面的语句在使用 Windows Server 2012 的远程服务器中执行时抛出异常,但在运行在 Windows 10 上的本地系统中运行良好:
var privateKey = EccKey.New(x,d,CngKeyUsages.KeyAgreement);
在远程中发现的异常如下:
不支持请求的操作 在 System.Security.Cryptography.NCryptNative.ImportKey(SafeNCryptProviderHandle provider,Byte[] keyBlob,String format) 在 System.Security.Cryptography.CngKey.Import(Byte[] keyBlob,String curveName,CngKeyBlobFormat 格式,CngProvider provider) 在 Jose.keys.EccKey.New(Byte[] x,Byte[] y,Byte[] d,CngKeyUsages 用法)...
我正在使用以下库来实现我的目的: https://github.com/dvsekhvalnov/jose-jwt
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)