Как создать самозаверяющий сертификат с id-ecc для использования с ECDSA-подписью и проверкой?
Я пытаюсь обновить код этой статьи, чтобы позволить мне создавать (и использовать) самозаверяющий сертификат на основе ECC, а также выполнять базовую подпись и проверку с его помощью ( ECDSA).
- Есть ли способ сделать это с помощью кроссплатформенных.NET Core API, или требуется Win32 P/Invoke?
Согласно этому посту, мне нужно использовать the more standard id-ecc
тип
1 ответ
Решение
Есть ли способ сделать это с помощью кроссплатформенных.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.