Что за формат сертификата?
От: nen777w  
Дата: 19.04.18 14:56
Оценка:
Есть у меня один X509.V3 сертификат в формате DER. Взят он из одного документа.
С ним одна непонятная штука.
Библиотеки типа openssl или botan отказываются его читать.
Если даблкликнуть по нему в Windows то та нормально показывает информацию по нему.
А также класс из C# System.Security.Cryptography.X509Certificates.X509Certificate читает его на ура.

Как узнать что за формат такой?
И почему поулрные крипто-библиотеки его не умеют читать?

  "Вот он же в формате PEM"

-----BEGIN CERTIFICATE-----
MIID96ADAgECAgMHIUgwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCREUxFTATBgNVBAoMDEQt
VHJ1c3QgR21iSDEnMCUGA1UEAwweRC1UUlVTVCBRdWFsaWZpZWQgQ0EgMyAyMDA3OlBOMB4XDTA4
MDMwODEyNDYzOFoXDTA5MDMwODEyNDYzOFowczELMAkGA1UEBhMCREUxGTAXBgNVBAMMEFN0ZWZh
biBFbmdlbGJlcnQxFjAUBgNVBCoMDVN0ZWZhbiBBbGZvbnMxEjAQBgNVBAQMCUVuZ2VsYmVydDEd
MBsGA1UEBRMURFRSRVgyMDQ5Nzg3MjgzOTAyMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQCCLz5OOQilG4mDOaeUGzqMCYsg18xHQElu9U33lTKUlws+htxKj1vIo/aqjD+9n3n5+pD+
Fx3U5z4jhnleh6GJ8ewPGalapD4tDE62p8KZjq2UfOD8CzOCTNQ5gp4ZQhGly6+WWPAhAwuDBYMA
RIowMeStGj/OUa0bDE0f9wzepgxpYDrQlLUTdTSAZd1v14kIWjp/o6M2qyFBuxCriknHorIc8R3U
VL5s2tztJyTCiwUFtBfiQ/ZrcYaGyYiuAipVZArq2mcFid6fONaDHBQfci2bUW6w+b+y+h3prV9Q
/vzFN/5cnK7bQu/J5PTVR9aZU27bf4eM1D3cPyIKFg0FAgMA95GjggHQMIIBzDAfBgNVHSMEGDAW
gBSyicwVvPbM0RF/Yk7g6FTzHAyxcjAlBggrBgEFBQcBAwQZMBcwCAYGBACORgEBMAsGBgQAjkYB
AwIBHjA4BggrBgEFBQcBAQQsMCowKAYIKwYBBQUHMAGGHGh0dHA6Ly9xdWFsLm9jc3AuZC10cnVz
dC5uZXQwFwYDVR0gBBAwDjAMBgorBgEEAaU0Ah8BMIHKBgNVHR8EgcIwgb8wgbyggbmggbaGeGxk
YXA6Ly9kaXJlY3RvcnkuZC10cnVzdC5uZXQvQ049RC1UUlVTVCUyMFF1YWxpZmllZCUyMENBJTIw
MyUyMDIwMDclM0FQTixPPUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9u
bGlzdIY6aHR0cDovL3d3dy5kLXRydXN0Lm5ldC9jcmwvZC10cnVzdF9xdWFsaWZpZWRfY2FfM18y
MDA3LmNybDAzBgNVHRIELDAqgRBpbmZvQGQtdHJ1c3QubmV0hhZodHRwOi8vd3d3LmQtdHJ1c3Qu
bmV0MB0GA1UdDgQWBBTyvrlmx9zn42R12XsCxcwlkQ/RuTAOBgNVHQ8BAf8EBAMCBkA=
-----END CERTIFICATE-----



Был получен вот так:
byte[] certd = System.IO.File.ReadAllBytes("t:\\cert_data.der");
X509Certificate cert = new X509Certificate(certd);

StringBuilder builder = new StringBuilder();
builder.AppendLine("-----BEGIN CERTIFICATE-----");
builder.AppendLine(Convert.ToBase64String(cert.Export(X509ContentType.Cert), Base64FormattingOptions.InsertLineBreaks));
builder.AppendLine("-----END CERTIFICATE-----");

string pem = builder.ToString();
Отредактировано 19.04.2018 14:56 nen777w . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.