C# создать пару ключей с помощью ecdh prime256v1
Я делаю закрытый / открытый ключ с помощью ecdh
var ecdh = new ECDiffieHellmanCng(CngKey.Create(CngAlgorithm.ECDiffieHellmanP256, null, new CngKeyCreationParameters { ExportPolicy = CngExportPolicies.AllowPlaintextExport }));
var privateKey = ecdh.Key.Export(CngKeyBlobFormat.EccPrivateBlob);
var publickey = ecdh.Key.Export(CngKeyBlobFormat.EccPublicBlob);
Этот код работает нормально, но я хочу использовать алгоритм prime256v1
а также CngAlgorithm
нет такой возможности. Как я могу это сделать?
1 ответ
Решение
Согласно документам, CngAlgorithm.ECDiffieHellmanP256 указывает кривую P-256:
Объект, задающий алгоритм ECDH, использующий кривую P-256.
Этот ответ на сайте crypto.stackexchange.com объясняет, что эти имена происходят из разных источников и что P-256 в нотации NIST соответствуетprime256v1
в "ANSI X9.62: Криптография с открытым ключом для индустрии финансовых услуг".