Как создать самозаверяющий сертификат с id-ecc для использования с ECDSA-подписью и проверкой? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь обновить код этой статьи , чтобы позволить мне создавать (и использовать) самозаверяющий сертификат на основе ECC, а выполнять базовую подпись и проверку с ним ( ECDSA ).

  • Есть ли способ сделать это с помощью кроссплатформенных .NET Core API или требуется Win32 P / Invoke?

Согласно этот пост , мне нужно использовать the more standard id-ecc тип

1 Ответ

0 голосов
/ 19 декабря 2018

Есть ли способ сделать это с помощью кроссплатформенных .NET Core APIs

Да!

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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...