Разница между фабричным методом ECDiffieHellman.Create и ECDsa.Create - PullRequest
0 голосов
/ 25 февраля 2020

Есть ли разница в генерации пары ключей между

  • ECDiffieHellman.Create Method
    Создает новый экземпляр реализации Ellipti c Curve Diff ie -Hellman (ECDH) алгоритм
  • ECDsa.Create Method
    Создает новый экземпляр реализации алгоритма цифровой подписи Ellipti c Curve (ECDSA)

в пространстве имен System.Security.Cryptography?

Технические созданные пары ключей E C могут использоваться взаимозаменяемо для получения или подписи эфирных ключей.

{
    var ecDsa = ECDsa.Create(ECCurve.NamedCurves.brainpoolP512r1);
    var ecdh = ECDiffieHellman.Create();
    ecdh.ImportECPrivateKey(ecDsa.ExportECPrivateKey(), out _);

    ecDsa.ExportPkcs8PrivateKey().Should().BeEquivalentTo(ecdh.ExportPkcs8PrivateKey());
}
{
    var ecdh = ECDiffieHellman.Create(ECCurve.NamedCurves.brainpoolP512r1);
    var ecDsa = ECDsa.Create();
    ecDsa.ImportECPrivateKey(ecdh.ExportECPrivateKey(), out _);

    ecdh.ExportPkcs8PrivateKey().Should().BeEquivalentTo(ecDsa.ExportPkcs8PrivateKey());
}
...