2014-05-29 2 views
1

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

Мне нужно проверить сертификат, который они отправляют мне первоначально, с сертификатом, который они используют при отправке подписанного письма мне.

Я просмотрел StackOverflow и на других форумах, и все они, кажется, предлагают или «отпечаток GetEncoded» (который так же, как DEREncoded ?!)

Однако я не смог найти «официальный источник» что это правильно.

Так что мне нужен официальный источник, подтверждающий, что X509Certificate2.GetRawCertData ИЛИ Org.BouncyCastle.X509.X509Certificate уникальны и поэтому могут быть сопоставлены для проверки правильного сертификата.

По официальному источнику я имею в виду книги, стандарты, веб-сайт Microsoft или тому подобное.

Это код, я использую, чтобы верифицировать Org.BouncyCastle.X509.X509Certificate с System.Security.Cryptography.X509Certificates.X509Certificate2:

Org.BouncyCastle.X509.X509Certificate signerCertificate = ((SecureMimeDigitalCertificate)signature.SignerCertificate).Certificate; 
System.Security.Cryptography.X509Certificates.X509Certificate2 localCertificate = new X509Certificate2(@"xxx.crt"); 
bool areEqual = 
    StructuralComparisons.StructuralEqualityComparer.Equals(signerCertificate.GetEncoded(), 
                  localCertificate.GetRawCertData()); 

Можете ли вы помочь мне найти такой источник или пункт в правильном направлении?

ответ

0

Каково ваше точное использование для сравнения сертификатов?

Обычный обычным способом при получении подписанного письма является то, что вы хотите проверить подпись, чтобы убедиться, что сообщение является подлинным. Это не делается путем сравнения сертификатов, полученных с сохраненным сертификатом. Что вам нужно сделать, это проверить цифровую подпись, проверив сертификаты, которые они связывают с доверенным (вами) root. Если у вас есть сертификат отправителей заранее, вы можете, конечно, считать это доверенным, и просто используйте свой сохраненный сертификат, чтобы проверить подпись полученного сообщения. В этом случае вы можете игнорировать сертификат в подписанном письме.

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

+0

Привет primetomas. Помимо проверки подписи, мне также интересно узнать, использует ли отправитель другой сертификат, чем тот, который я ожидаю. Вот почему мне нужно их сравнивать. –

Смежные вопросы