.net-core - 如何使用 id-ecc 创建自签名证书以用于 ECDSA 签名和验证?
问题描述
我正在尝试更新本文的代码,以允许我创建(和使用)基于 ECC 的自签名证书,并使用它进行基本的签名和验证(ECDSA)。
- 有什么方法可以通过跨平台 .NET Core API 实现这一点,还是需要 Win32 P/Invoke?
根据这篇文章,我需要使用the more standard id-ecc
类型
解决方案
有什么方法可以通过跨平台 .NET Core API 实现这一点
是的!
X509Certificate2 cert;
using (ECDsa key = ECDsa.Create(ECCurve.NamedCurves.nistP256))
{
CertificateRequest request = new CertificateRequest(
"CN=Self-Signed ECDSA",
key,
HashAlgorithmName.SHA256);
request.CertificateExtensions.Add(
new X509KeyUsageExtension(X509KeyUsageFlags.DigitalSignature, critical: false));
request.CertificateExtensions.Add(
new X509BasicConstraintsExtension(false, false, 0, false));
// If it was for TLS, then Subject Alternative Names and
// Extended (Enhanced) Key Usages would also be useful.
DateTimeOffset start = DateTimeOffset.UtcNow;
cert = request.CreateSelfSigned(notBefore: start, notAfter: start.AddMonths(3));
}
// If you want to save a PFX or something, you can do so now.
推荐阅读
- list - 删除列表的中间元素
- caching - 使用 DefaultMessageListenerContainer.CACHE_NONE 时,ActiveMQConnectionFactory 重新传递延迟和 InitialRedeliveryDelay 不起作用
- html - 随机翻转卡片 HTML JavaScript
- c++ - 不同模板参数的重载运算符
- python - 使用计划模块时参数错误?
- php - Woocommerce 在结帐页面按付款隐藏优惠券字段
- python - 无法加载经过训练的检查点
- android-studio - 如何在 Android Studio 中找到扩展控件按钮?
- javascript - mongoose.populate() 未显示填充内容
- unix - 如何使用 Unix 从一行中删除第二次出现