Как сгенерировать пару ключей ECDSA?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как сгенерировать пару ключей ECDSA?

Сообщение Anonymous »


How to generate an ECSDA key pair using the SecP256r1 curve in C# ??

Currently, I am using Bouncy Castle

Below is the code, that I am using to generate the ECSDA private key.

// Create ECDSA key pair generator var ecKeyPairGenerator = new ECKeyPairGenerator(); var genParam = new ECKeyGenerationParameters(SecObjectIdentifiers.SecP256r1, new SecureRandom()); ecKeyPairGenerator.Init(genParam); AsymmetricCipherKeyPair ecKeyPair = ecKeyPairGenerator.GenerateKeyPair(); // Convert Private Key to PEM format string privateKeyPem = ConvertToPem(ecKeyPair.Private); public string ConvertToPem(AsymmetricKeyParameter privateKey) { StringWriter stringWriter = new StringWriter(); // Manually construct PEM format for EC private key PemWriter pemWriter = new PemWriter(stringWriter); PemObject pemObject = new PemObject("EC PRIVATE KEY", EncodeEcPrivateKey(privateKey)); pemWriter.WriteObject(pemObject); return stringWriter.ToString(); } private byte[] EncodeEcPrivateKey(AsymmetricKeyParameter privateKey) { PrivateKeyInfo privateKeyInfo = PrivateKeyInfoFactory.CreatePrivateKeyInfo(privateKey); return privateKeyInfo.ToAsn1Object().GetEncoded(); } when I go to read the private key which I generated, I am getting an error
string privateKeyContent = File.ReadAllText(@"C:\ZatcaKeys\privatekey.txt"); byte[] inArray = null; using (TextReader reader = new StringReader(privateKeyContent)) { Org.BouncyCastle.OpenSsl.PemReader pemReader = new Org.BouncyCastle.OpenSsl.PemReader(reader); PemObject pemObject = pemReader.ReadPemObject(); if (pemObject != null) { AsymmetricKeyParameter privateKey = (AsymmetricKeyParameter) PrivateKeyFactory.CreateKey(pemObject.Content); ISigner signer = SignerUtilities.GetSigner("SHA-256withECDSA"); signer.Init(forSigning: true, privateKey); signer.BlockUpdate((byte[])(object)array, 0, array.Length); inArray = signer.GenerateSignature(); } } Org.BouncyCastle.OpenSsl.PemException: 'problem creating EC private key: System.NullReferenceException: Object reference not set to an instance of an object. at Org.BouncyCastle.Security.PrivateKeyFactory.CreateKey(PrivateKeyInfo keyInfo) at Org.BouncyCastle.OpenSsl.PemReader.ReadPrivateKey(PemObject pemObject)'

Источник: https://stackoverflow.com/questions/780 ... a-key-pair
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Zatca — создать пару ключей ECDSA
    Гость » » в форуме C#
    0 Ответы
    100 Просмотры
    Последнее сообщение Гость
  • Как создать дочернюю пару ключей из главной пары ключей с помощью модуля Pycryptodome?
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Создайте пару ключей в HSM с помощью Java
    Anonymous » » в форуме JAVA
    0 Ответы
    66 Просмотры
    Последнее сообщение Anonymous
  • Создать устаревшую пару ключей Старка в Python (неизменяемый)
    Anonymous » » в форуме Python
    0 Ответы
    78 Просмотры
    Последнее сообщение Anonymous
  • Не удалось создать новую пару закрытых ключей: ошибка: FFFFFFFF80000002: системная библиотека:: Нет такого файла или кат
    Anonymous » » в форуме Php
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»