Bouncy Castle (C#) X509Название эквивалентного бота не то же самое?C#

Место общения программистов C#
Ответить
Anonymous
 Bouncy Castle (C#) X509Название эквивалентного бота не то же самое?

Сообщение Anonymous »

Я пытаюсь создать подпись XAdES с помощью Bouncy Castle и C#. Схема для версии 1.3.2 требует подписи имени издателя сертификата на этом XPath:

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

/ds:Signature/ds:Object/xades:QualifyingProperties/xades:SignedProperties/xades:SignedSignatureProperties/xades:SigningCertificate/xades:Cert/xades:IssuerSerial/ds:X509IssuerName. Например:




gRtgfUzWgU8u822zwm9mp2kjwEaEvezlKvNX4v/sosE=


DC=local,DC=test,CN=Test CA
1115037260598308431605600959985753049847038081



Очень важно, чтобы указанная XML-схема не включала элемент xades:SigningCertificateV2, поэтому использование элемента xades:IssuerSerialV2, который может содержать значение в кодировке DER, недоступно. Элемент ds:X509IssuerName получил значение с помощью SigningCert.IssuerDN.ToString() , где SigningCert — это объект Bouncy Castle X509Certificate.
Во время проверки подписи код должен проверить, относится ли содержимое элемента xades:SigningCertificate к тому же сертификату, который находится в части подписи XML. Но когда я сравниваю информацию, считанную из элемента xades:IssuerSerial, с отличительным именем эмитента, считанным из встроенного сертификата, это эквивалентно, но отличается при кодировании DER.

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

X509Name signingCertIssuerDN = new X509Name(_issuerSerial.X509IssuerName);
Byte[] signingCertIssuerBytes = signingCertIssuerDN.GetEncoded();

X509Certificate xmldsigCert = new X509Certificate(Convert.FromBase64String(_keyInfoXml.InnerText));
X509Name dsigIssuerDN = dsigCert.IssuerDN;
Byte[] dsigIssuerBytes = dsigIssuerDN.GetEncoded();

Boolean isEquivalent = dsigIssuerDN.Equivalent(certIssuerDN); // true
Boolean isEncodedSame = dsigIssuerBytes.SequnenceEqual(signingCertIssuerBytes); // false
Что может вызвать эту проблему? Это нормально, что объект X509Name, инициализированный из простой строки, отличается от объекта, прочитанного из объекта X509Certificate?

Подробнее здесь: https://stackoverflow.com/questions/798 ... t-the-same
Ответить

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

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

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

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

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