Невозможно привести объект типа "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#»