Невозможно привести объект типа "Org.BouncyCastle.Asn1.DerSequence" к типу "Org.BouncyCastle.Asn1.DerInteger".C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно привести объект типа "Org.BouncyCastle.Asn1.DerSequence" к типу "Org.BouncyCastle.Asn1.DerInteger".

Сообщение Anonymous »

В свой проект на C# я вставил этот фрагмент кода:

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

Код: Выделить всё

 AsymmetricKeyParameter private_RSA = keyPair2.Private;

PrivateKeyInfo k_RSA = PrivateKeyInfoFactory.CreatePrivateKeyInfo(private_RSA);
byte[] serializedKey_priv_RSA = k_RSA.ToAsn1Object().GetDerEncoded();

//  byte[] clé = Org.BouncyCastle.Utilities.Encoders.Hex.Decode(serializedKey);

string data_priv_RSA = Convert.ToBase64String(serializedKey_priv_RSA);

using (fluxInfos2 = new StreamWriter("myprivatekey.pem"))
{
string ligne = " -----BEGIN RSA PRIVATE KEY-----  ";
fluxInfos2.WriteLine(ligne);
fluxInfos2.WriteLine(data_priv_RSA);
string lige2 = "-----END RSA PRIVATE KEY----- ";

fluxInfos2.WriteLine(lige2);

}
fluxInfos2.Close();
мой ключ создан идеально, то есть соответствует тому, что содержится в файле;

Код: Выделить всё

-----BEGIN RSA PRIVATE KEY-----

MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCQBr1EhPxHeVax8QbXQtUwaSyqhZehjxkgVp89Rkn3awfo7f9usQdLSp3tLSwAkHMvqi3UKSwUh8FlzCC0CBZCx1LOY05NS613tU/gaI7r+Zl4Iq+PevetEy8WxViRGoye/A9TU5r+BshT12MWYzVE/BYAb6OcsHZ5QztA+GDXA01YnTpgwOenkJXmrmmkSif80hk+NAWglnCqUzl3apZHhgVLpdkGDJPjhy8l9qOt6lu2gBQVX0AC8MyMt5Uqx9yFcR65+S8v8TV5Bc7Kk+9nkCl503k8Sn1fw4OWc6cMhK9E4/LF5MUIMO/UnIPQKeLbTlY8hAYG0sN0AJT/3IfxAgMBAAECggEAAyACT1BLYQmi9e1y5ozOr2Q40eJgLeM6+lam0d+Kj1HFNCql1jMFI38U+iZ2w/Rea3RX1jimejOP4LOTKhTa1swYYd4JvuebdfN7LjVWlIwv5klqYcSbRygZZ3cUuuFGl9SESJyRyl0/T4Jm5f91EnAd0hiaBjZV+7+Xs4swHrotSDrnSuMZGZ9skwws8Y0lfV6Lzvsh3+VerEq9X1yl8NJeKZrOOkAntu/yfMkcdj0+s+UvM7k8RenTCas1X5gVzv4b+CBNS9DgOmdIUUE4rSvF3ulTyWNXaWVJpvUvcT115ylxFPkyM+g1v/gqTd+L+I+npKVOK5qAtZobRTpMeQKBgQDBEWnu2Km3LxYYSDINbW7E5ytBUxIrNtwjo2IYstPJJ55hF4EQdwe7y10/eUbS/YsIj3xLXnYQGLaF52Mql/y9oCu8WsYE7CtFAhYfR19ibpM0Y2J4XXBc3r4Drg0EI9eqf6iT6vkpTlr7A0t7zPCc6YC6Sbt1o07NWuivdDdjPwKBgQC++Qjk9AmCbwXMBsRfgQMqdoAa+V137rl6dIE1/jHAQg39gKlQeEQ4ZI5+2FNqjMeSUSlkdJTvQhBWlFzeuiMU+uOix5E+aBuf8RVcmlT31rOtrF6DzV3Deg3zzT71SQIlbGp+dyJ8M9IOtZuDgUUu4asByklRNxt9GaqkfsK4zwKBgFPhNe3wMeQFUAsiqqRMzBg9+vv5lGY0AnZ1UHQ8lWjKjrPOG2PE4xZC53NhRFT8lMAWXsD7/D1ID1yjx+DEgaj9AqNlqKyQ0se7fVL/lkBUnB3ho/F5XwzqNRGyN7N5wwQvTFVfe/rnMP3nU48o3cy+YhANYqVcWys6+ObpjfrPAoGBAJd+jPy7TtPm6M1aTOuKN4225ZcAXJJokUDALUQ8uxDOFbUVHLuWPGAT/SpIx5uNxD+hHNnw1bkbSkS0exvAw1XAVVZrRCAijE+L+yszztWwv2a1h2C9SHVqXKkcF6aTXR187NoX/gZTQX6juJNQuCYhpPvNke3YbnkGJGVLnYLnAoGBAL/rT73jvNcr54hhzou8uYlFVGLNbE4IqbBIygTfC4Jd32NSZymcAL1/MLs6RvLj/Cd3DGVikS0y8nH5GGM8qxG0l1n9p96Z9AON+h0Jnen/HJvKPmq/SYkL2NNrg1CUHGL9FMDikMDBqIG/ttGIPCUZHyNAJJsMZJVfZJ9OP7Ru

-----END RSA PRIVATE KEY-----
Теперь я должен сделать обратное, т. е. из ключа данных, содержащегося в файле, у меня должен быть RsaPrivateCrtKeyParameters. для этого я написал небольшой код:

Код: Выделить всё

KeyFile string = @ "C: \ Users \ Me \ Documents \ Visual Studio 2010 \ Projects \ PEM \ PEM \ bin \ Debug \ myprivatekey.pem";

RsaPrivateCrtKeyParameters GetPrivateKey privat = (KeyFile);
например, GetPrivateKey, выглядит следующим образом:

Код: Выделить всё

 public static RsaPrivateCrtKeyParameters GetPrivateKey(String pemFile)
{
if (string.IsNullOrEmpty(pemFile)) throw new ArgumentNullException("pemFile");

string privateKey = File.Exists(pemFile) ? File.ReadAllText(pemFile) : pemFile;

var reader = new PemReader(new StringReader(privateKey));
RsaPrivateCrtKeyParameters privkey = null;
Object obj = reader.ReadObject();
if (obj is AsymmetricCipherKeyPair)
{
privkey = (RsaPrivateCrtKeyParameters)((AsymmetricCipherKeyPair)obj).Private;
} return privkey;
}
проблема в том, что я получаю исключение: Object obj = reader.ReadObject();
:

Код: Выделить всё

 Creating RSA private key problem: System.InvalidCastException:

Unable to cast object of type 'Org.BouncyCastle.Asn1.DerSequence' to type 'Org.BouncyCastle.Asn1.DerInteger'.
to Org.BouncyCastle.Asn1.Pkcs.RsaPrivateKeyStructure .. ctor (Asn1Sequence seq)
to Org.BouncyCastle.OpenSsl.PemReader.ReadKeyPair (String type, String endMarker)
не могли бы вы мне помочь, пожалуйста, спасибо за любую помощь

Подробнее здесь: https://stackoverflow.com/questions/592 ... type-org-b
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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