Unity: при попытке загрузить сертификат X509 я получаю исключение аргумента: можно преобразовать только целое число.C#

Место общения программистов C#
Ответить
Anonymous
 Unity: при попытке загрузить сертификат X509 я получаю исключение аргумента: можно преобразовать только целое число.

Сообщение Anonymous »

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

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

sslStream.AuthenticateAsServer(serverCertificate, clientCertificateRequired: false, checkCertificateRevocation: true);
Я пытаюсь загрузить сертификат следующим образом:

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

serverCertificate = new X509Certificate("c:/my/path/server_pfx.pfx");
Однако когда я это делаю, я получаю следующую ошибку:

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

FormatException: Only integer can be converted
Mono.Security.ASN1Convert.ToInt32 (Mono.Security.ASN1 asn1) (at :0)
Mono.Security.X509.PKCS12.Decrypt (Mono.Security.PKCS7+EncryptedData ed) (at :0)
Mono.Security.X509.PKCS12.Decode (System.Byte[] data) (at :0)
Mono.Security.X509.PKCS12..ctor (System.Byte[] data, System.String password) (at :0)
System.Security.Cryptography.X509Certificates.X509Certificate2ImplMono.ImportPkcs12 (System.Byte[] rawData, System.String password) (at :0)
System.Security.Cryptography.X509Certificates.X509Certificate2ImplMono.ImportPkcs12 (System.Byte[] rawData, Microsoft.Win32.SafeHandles.SafePasswordHandle password) (at :0)
System.Security.Cryptography.X509Certificates.X509Certificate2ImplMono..ctor (System.Byte[] rawData, Microsoft.Win32.SafeHandles.SafePasswordHandle password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) (at :0)
Mono.X509PalImpl.ImportFallback (System.Byte[] data, Microsoft.Win32.SafeHandles.SafePasswordHandle password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) (at :0)
Mono.X509PalImplMono.Import (System.Byte[] data, Microsoft.Win32.SafeHandles.SafePasswordHandle password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) (at :0)
Mono.SystemCertificateProvider.Import (System.Byte[] data, Microsoft.Win32.SafeHandles.SafePasswordHandle password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags, Mono.CertificateImportFlags importFlags) (at :0)
Mono.SystemCertificateProvider.Mono.ISystemCertificateProvider.Import (System.Byte[] data, Microsoft.Win32.SafeHandles.SafePasswordHandle password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags, Mono.CertificateImportFlags importFlags) (at :0)
System.Security.Cryptography.X509Certificates.X509Helper.Import (System.Byte[] rawData, Microsoft.Win32.SafeHandles.SafePasswordHandle password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) (at :0)
System.Security.Cryptography.X509Certificates.X509Certificate..ctor (System.String fileName, System.String password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags) (at :0)
System.Security.Cryptography.X509Certificates.X509Certificate..ctor (System.String fileName) (at :0)
Server.Start () (at Assets/Scripts/Server.cs:32)
Сертификат был создан следующим образом:

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

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -sha256 -keyout key.pem -out cert.pem
openssl pkcs12 -export -in cert.pem -inkey key.pem -out server_pfx.pfx -macalg sha1
Есть идеи, что я делаю неправильно? Или гораздо более простая идея: как создать сертификат, который будет работать с функцией AuthenticateAsServer?

Подробнее здесь: https://stackoverflow.com/questions/790 ... epetion-on
Ответить

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

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

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

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

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